1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MOCK_PIPELINE_BASE_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MOCK_PIPELINE_BASE_H 18 19 #include "gmock/gmock.h" 20 21 #include "core/pipeline_ng/pipeline_context.h" 22 23 namespace OHOS::Ace::NG { 24 class MockPipelineBase : public PipelineContext { 25 DECLARE_ACE_TYPE(MockPipelineBase, PipelineContext); 26 27 public: 28 MockPipelineBase() = default; 29 ~MockPipelineBase() override = default; 30 31 static void SetUp(); 32 static void TearDown(); 33 static RefPtr<MockPipelineBase> GetCurrent(); 34 void SetRootSize(double rootWidth, double rootHeight); 35 36 MOCK_METHOD0(SetupRootElement, void()); 37 MOCK_METHOD3( 38 AddKeyFrame, void(float fraction, const RefPtr<Curve>& curve, const std::function<void()>& propertyCallback)); 39 MOCK_METHOD2(AddKeyFrame, void(float fraction, const std::function<void()>& propertyCallback)); 40 MOCK_METHOD1(AddScheduleTask, uint32_t(const RefPtr<ScheduleTask>& task)); 41 MOCK_METHOD1(RemoveScheduleTask, void(uint32_t id)); 42 MOCK_METHOD2(OnTouchEvent, void(const TouchEvent& point, bool isSubPipe)); 43 MOCK_METHOD1(OnKeyEvent, bool(const KeyEvent& event)); 44 MOCK_METHOD1(OnMouseEvent, void(const MouseEvent& event)); 45 MOCK_METHOD1(OnAxisEvent, void(const AxisEvent& event)); 46 MOCK_CONST_METHOD1(OnRotationEvent, bool(const RotationEvent& event)); 47 MOCK_METHOD3(OnDragEvent, void(int32_t x, int32_t y, DragEventAction action)); 48 MOCK_METHOD1(OnIdle, void(int64_t deadline)); 49 MOCK_METHOD1(SetBuildAfterCallback, void(const std::function<void()>& callback)); 50 MOCK_METHOD1(FlushAnimation, void(uint64_t nanoTimestamp)); 51 MOCK_METHOD1(SaveExplicitAnimationOption, void(const AnimationOption& option)); 52 MOCK_METHOD1(CreateExplicitAnimator, void(const std::function<void()>& onFinishEvent)); 53 MOCK_METHOD0(ClearExplicitAnimationOption, void()); 54 MOCK_CONST_METHOD0(GetExplicitAnimationOption, AnimationOption()); 55 MOCK_METHOD0(Destroy, void()); 56 MOCK_METHOD0(OnShow, void()); 57 MOCK_METHOD0(OnHide, void()); 58 MOCK_METHOD1(WindowFocus, void(bool isFocus)); 59 MOCK_METHOD2(ShowContainerTitle, void(bool isShow, bool hasDeco)); 60 MOCK_METHOD4(OnSurfaceChanged, void(int32_t width, int32_t height, WindowSizeChangeReason type, 61 const std::shared_ptr<Rosen::RSTransaction>& rsTransaction)); 62 MOCK_METHOD1(OnLayoutCompleted, void(const std::string& componentId)); 63 MOCK_METHOD1(OnDrawCompleted, void(const std::string& componentId)); 64 MOCK_METHOD1(SetNeedRenderNode, void(const RefPtr<FrameNode>& node)); 65 MOCK_METHOD2(OnSurfacePositionChanged, void(int32_t posX, int32_t posY)); 66 MOCK_METHOD1(OnSurfaceDensityChanged, void(double density)); 67 MOCK_METHOD2(OnSystemBarHeightChanged, void(double statusBar, double navigationBar)); 68 MOCK_METHOD0(OnSurfaceDestroyed, void()); 69 MOCK_METHOD0(NotifyOnPreDraw, void()); 70 MOCK_METHOD0(CallRouterBackToPopPage, bool()); 71 MOCK_METHOD0(OnPageShow, void()); 72 MOCK_CONST_METHOD1(Finish, void(bool autoFinish)); 73 MOCK_METHOD1(RequestFullWindow, void(int32_t duration)); 74 MOCK_METHOD1(RequestFocus, bool(const std::string& targetNodeId)); 75 MOCK_METHOD0(IsLastPage, bool()); 76 MOCK_CONST_METHOD0(GetIsDeclarative, bool()); 77 MOCK_METHOD1(SetAppBgColor, void(const Color& color)); 78 MOCK_METHOD1(SetAppTitle, void(const std::string& title)); 79 MOCK_METHOD1(SetAppIcon, void(const RefPtr<PixelMap>& icon)); 80 MOCK_CONST_METHOD0(RefreshRootBgColor, void()); 81 MOCK_METHOD0(PostponePageTransition, void()); 82 MOCK_METHOD0(LaunchPageTransition, void()); 83 MOCK_METHOD2(GetBoundingRectData, void(int32_t nodeId, Rect& rect)); 84 MOCK_METHOD0(FlushReload, void()); 85 MOCK_METHOD0(FlushBuild, void()); 86 MOCK_METHOD0(FlushReloadTransition, void()); 87 MOCK_METHOD1(NotifyMemoryLevel, void(int32_t level)); 88 MOCK_METHOD0(FlushMessages, void()); 89 MOCK_METHOD1(AddAnimationClosure, void(std::function<void()>&& animation)); 90 MOCK_CONST_METHOD1(OnDumpInfo, bool(const std::vector<std::string>& params)); 91 MOCK_METHOD2(FlushVsync, void(uint64_t nanoTimestamp, uint32_t frameCount)); 92 MOCK_METHOD3(SetRootRect, void(double width, double height, double offset)); 93 MOCK_METHOD0(FlushPipelineWithoutAnimation, void()); 94 MOCK_METHOD0(FlushPipelineImmediately, void()); 95 MOCK_METHOD2(OnVirtualKeyboardHeightChange, 96 void(float keyboardHeight, const std::shared_ptr<Rosen::RSTransaction>& rsTransaction)); 97 MOCK_METHOD1(SetContainerWindow, void(bool isShow)); 98 MOCK_METHOD1(SetTouchPipeline, void(const WeakPtr<PipelineBase>& context)); 99 MOCK_METHOD2(AddEtsCardTouchEventCallback, void(int32_t ponitId, EtsCardTouchEventCallback&& callback)); 100 MOCK_METHOD1(RestoreNodeInfo, void(std::unique_ptr<JsonValue> nodeInfo)); 101 MOCK_METHOD0(GetStoredNodeInfo, std::unique_ptr<JsonValue>()); 102 MOCK_METHOD1(UpdateSystemSafeArea, void(const SafeAreaInsets& systemSafeArea)); 103 MOCK_METHOD1(UpdateCutoutSafeArea, void(const SafeAreaInsets& cutoutSafeArea)); 104 static RefPtr<MockPipelineBase> pipeline_; 105 FlushUITasks()106 void FlushUITasks() {} 107 108 protected: 109 double dipScale_ = 1.0; 110 }; 111 } // namespace OHOS::Ace::NG 112 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_NG_MOCK_PIPELINE_BASE_H 113