1 
2 /*
3  * Copyright (c) 2023 Huawei Device Co., Ltd.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_TEST_MOCK_MOCK_UICONTENT_H
18 #define FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_TEST_MOCK_MOCK_UICONTENT_H
19 
20 #include "gmock/gmock.h"
21 #include "native_engine/native_engine.h"
22 #include "native_engine/native_value.h"
23 #include "ui_content.h"
24 #include "iremote_object.h"
25 #include "accessibility_element_info.h"
26 #include "serialized_gesture.h"
27 
28 namespace OHOS {
29 namespace Ace {
30 class MockUIContent : public UIContent {
31 public:
32     MockUIContent() = default;
33     ~MockUIContent() override = default;
34 
35     MOCK_METHOD3(Initialize, UIContentErrorCode(OHOS::Rosen::Window* window, const std::string& url,
36         napi_value storage));
37     MOCK_METHOD3(Initialize, UIContentErrorCode(OHOS::Rosen::Window* window,
38         const std::shared_ptr<std::vector<uint8_t>>& content, napi_value storage));
39     MOCK_METHOD3(InitializeByName, UIContentErrorCode(OHOS::Rosen::Window *window,
40         const std::string &name, napi_value storage));
41     MOCK_METHOD4(Initialize,
42         void(OHOS::Rosen::Window* window, const std::string& url, napi_value storage, uint32_t focusWindowID));
43     MOCK_METHOD0(Foreground, void());
44     MOCK_METHOD0(Background, void());
45     MOCK_METHOD0(Focus, void());
46     MOCK_METHOD0(UnFocus, void());
47     MOCK_METHOD0(Destroy, void());
48     MOCK_METHOD1(OnNewWant, void(const OHOS::AAFwk::Want& want));
49     MOCK_METHOD4(Restore, UIContentErrorCode(OHOS::Rosen::Window* window, const std::string& contentInfo,
50         napi_value storage, ContentInfoType type));
51     MOCK_CONST_METHOD1(GetContentInfo, std::string(ContentInfoType type));
52     MOCK_METHOD0(DestroyUIDirector, void());
53     MOCK_METHOD0(ProcessBackPressed, bool());
54     MOCK_METHOD1(ProcessPointerEvent, bool(const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent));
55     MOCK_METHOD2(ProcessPointerEventWithCallback,
56         bool(const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent, const std::function<void()>& callback));
57     MOCK_METHOD2(ProcessKeyEvent, bool(const std::shared_ptr<OHOS::MMI::KeyEvent>& keyEvent, bool isPreIme));
58     MOCK_METHOD1(ProcessAxisEvent, bool(const std::shared_ptr<OHOS::MMI::AxisEvent>& axisEvent));
59     MOCK_METHOD1(ProcessVsyncEvent, bool(uint64_t timeStampNanos));
60     MOCK_METHOD1(UpdateConfiguration, void(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config));
61     MOCK_METHOD2(UpdateWindowMode, void(OHOS::Rosen::WindowMode mode, bool hasDeco));
62     MOCK_METHOD2(UpdateTitleInTargetPos, void(bool isShow, int32_t height));
63     MOCK_METHOD2(UpdateDecorVisible, void(bool visible, bool hasDeco));
64     MOCK_METHOD4(HideWindowTitleButton, void(bool hideSplit, bool hideMaximize, bool hideMinimize, bool hideClose));
65     MOCK_METHOD1(SetIgnoreViewSafeArea, void(bool ignoreViewSafeArea));
66     MOCK_METHOD0(GetBackgroundColor, uint32_t());
67     MOCK_METHOD1(SetBackgroundColor, void(uint32_t color));
68     MOCK_METHOD2(DumpInfo, void(const std::vector<std::string>& params, std::vector<std::string>& info));
69     MOCK_METHOD1(SetNextFrameLayoutCallback, void(std::function<void()>&& callback));
70     MOCK_METHOD1(NotifyMemoryLevel, void(int32_t level));
71     MOCK_METHOD1(SetAppWindowTitle, void(const std::string& title));
72     MOCK_METHOD1(SetAppWindowIcon, void(const std::shared_ptr<Media::PixelMap>& pixelMap));
73     MOCK_METHOD3(PreInitializeForm, void(OHOS::Rosen::Window* window, const std::string& url, napi_value storage));
74     MOCK_METHOD0(RunFormPage, void());
75     MOCK_METHOD0(GetFormRootNode, std::shared_ptr<Rosen::RSSurfaceNode>());
76     MOCK_METHOD1(UpdateFormData, void(const std::string& data));
77     MOCK_METHOD1(
78         UpdateFormSharedImage, void(const std::map<std::string, sptr<OHOS::AppExecFwk::FormAshmem>>& imageDataMap));
79     MOCK_METHOD1(SetFormWidth, void(const float width));
80     MOCK_METHOD1(SetFormHeight, void(const float height));
81     MOCK_METHOD0(GetFormWidth, float());
82     MOCK_METHOD0(GetFormHeight, float());
83     MOCK_METHOD4(OnFormSurfaceChange, void(float width, float height, OHOS::Rosen::WindowSizeChangeReason reason,
84         const std::shared_ptr<OHOS::Rosen::RSTransaction> &rsTransaction));
85     MOCK_METHOD1(SetActionEventHandler, void(std::function<void(const std::string& action)>&& actionCallback));
86     MOCK_METHOD1(SetFormLinkInfoUpdateHandler, void(std::function<void(const std::vector<std::string>&)>&& callback));
87     MOCK_METHOD1(SetErrorEventHandler,
88         void(std::function<void(const std::string& code, const std::string& msg)>&& actionCallback));
89     MOCK_METHOD1(ReloadForm, void(const std::string& url));
90     MOCK_METHOD1(SetIsFocusActive, void(bool isFocusActive));
91 
92     MOCK_METHOD3(CreateModalUIExtension, int32_t(const AAFwk::Want& want,
93         const ModalUIExtensionCallbacks& callbacks, const ModalUIExtensionConfig& config));
94     MOCK_METHOD1(CloseModalUIExtension, void(int32_t sessionId));
95     MOCK_METHOD1(SetParentToken, void(sptr<IRemoteObject> token));
96     MOCK_METHOD0(GetParentToken, sptr<IRemoteObject>());
97 
98     MOCK_METHOD2(SetContainerModalTitleVisible, void(bool customTitleSettedShow, bool floatingTitleSettedShow));
99     MOCK_METHOD1(SetContainerModalTitleHeight, void(int height));
100     MOCK_METHOD0(GetContainerModalTitleHeight, int());
101     MOCK_METHOD2(GetContainerModalButtonsRect, bool(Rosen::Rect& containerModal, Rosen::Rect& buttons));
102     MOCK_METHOD1(SubscribeContainerModalButtonsRectChange, void(
103         std::function<void(Rosen::Rect& containerModal, Rosen::Rect& buttons)>&& callback));
104     MOCK_METHOD0(GetFormSerializedGesture, SerializedGesture());
105     MOCK_METHOD1(SetUIExtensionSubWindow, void(bool isUIExtensionSubWindow));
106     MOCK_METHOD1(SetUIExtensionAbilityProcess, void(bool isUIExtensionAbilityProcess));
107     MOCK_METHOD1(SetUIExtensionAbilityHost, void(bool isUIExtensionAbilityHost));
108     MOCK_METHOD0(IsUIExtensionSubWindow, bool());
109     MOCK_METHOD0(IsUIExtensionAbilityProcess, bool());
110     MOCK_METHOD0(IsUIExtensionAbilityHost, bool());
111     MOCK_METHOD2(SetForceSplitEnable, void(bool isForceSplit, const std::string& homePage));
112 
113 #ifndef PREVIEW
114     MOCK_METHOD4(
115         SearchElementInfoByAccessibilityId, void(int64_t elementId,
116         int32_t mode, int64_t baseParent, std::list<Accessibility::AccessibilityElementInfo>& output));
117     MOCK_METHOD4(
118         SearchElementInfosByText, void(int64_t elementId,
119         const std::string& text, int64_t baseParent, std::list<Accessibility::AccessibilityElementInfo>& output));
120     MOCK_METHOD4(
121         FindFocusedElementInfo, void(int64_t elementId,
122         int32_t focusType, int64_t baseParent, Accessibility::AccessibilityElementInfo& output));
123     MOCK_METHOD4(
124         FocusMoveSearch, void(int64_t elementId, int32_t direction,
125         int64_t baseParent, Accessibility::AccessibilityElementInfo& output));
126 #endif
127     MOCK_METHOD1(GetAppPaintSize, void(OHOS::Rosen::Rect&));
128     MOCK_METHOD1(GetWindowPaintSize, void(OHOS::Rosen::Rect&));
129     MOCK_METHOD3(CreateCustomPopupUIExtension, int32_t(const AAFwk::Want& want,
130         const ModalUIExtensionCallbacks& callbacks, const CustomPopupUIExtensionConfig& config));
131     MOCK_METHOD1(DestroyCustomPopupUIExtension, void(int32_t nodeId));
132     MOCK_METHOD1(UpdateTransform, void(const OHOS::Rosen::Transform& transform));
133     MOCK_METHOD1(SetContentNodeGrayScale, void(float grayscale));
134     MOCK_METHOD1(EnableContainerModalGesture, void(bool isEnable));
135     MOCK_METHOD1(UpdateConfigurationSyncForAll, void(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config));
136 };
137 } // namespace Ace
138 } // namespace OHOS
139 
140 #endif // FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_TEST_MOCK_MOCK_UICONTENT_H
141