1/*
2 * Copyright (c) 2023 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_TEST_MOCK_BASE_MOCK_SUBWINDOW_H
17#define FOUNDATION_ACE_TEST_MOCK_BASE_MOCK_SUBWINDOW_H
18
19#include "gmock/gmock.h"
20
21#include "base/subwindow/subwindow.h"
22
23namespace OHOS::Ace {
24class ACE_EXPORT MockSubwindow : public Subwindow {
25    DECLARE_ACE_TYPE(MockSubwindow, Subwindow)
26
27public:
28    MOCK_METHOD0(InitContainer, bool());
29    MOCK_METHOD0(ResizeWindow, void());
30    MOCK_METHOD0(GetRect, NG::RectF());
31    MOCK_METHOD0(UpdatePreviewPosition, void());
32    MOCK_METHOD1(GetMenuPreviewCenter, bool(NG::OffsetF& offset));
33    MOCK_METHOD1(ShowMenu, void(const RefPtr<Component>& newComponent));
34    MOCK_METHOD4(ShowMenuNG, void(const RefPtr<NG::FrameNode> menuNode, const NG::MenuParam& menuParam,
35                                 const RefPtr<NG::FrameNode>& targetNode, const NG::OffsetF& offset));
36    MOCK_METHOD5(ShowMenuNG,
37        void(std::function<void()>&& buildFunc, std::function<void()>&& previewBuildFunc,
38            const NG::MenuParam& menuParam, const RefPtr<NG::FrameNode>& targetNode, const NG::OffsetF& offset));
39    MOCK_METHOD1(ShowPreviewNG, bool(bool isStartDraggingFromSubWindow));
40    MOCK_METHOD0(HidePreviewNG, void());
41    MOCK_METHOD2(HideMenuNG, void(const RefPtr<NG::FrameNode>& menu, int32_t targetId));
42    MOCK_METHOD2(HideMenuNG, void(bool showPreviewAnimation, bool startDrag));
43    MOCK_METHOD4(UpdateHideMenuOffsetNG,
44        void(const NG::OffsetF& offset, float meunuScale, bool isRedragStart, int32_t menuWrapperId));
45    MOCK_METHOD2(ContextMenuSwitchDragPreviewAnimationtNG, void(const RefPtr<NG::FrameNode>& dragPreviewNode,
46        const NG::OffsetF& offset));
47    MOCK_METHOD2(ShowPopup, void(const RefPtr<Component>& newComponent, bool disableTouchEvent));
48    MOCK_METHOD4(ShowPopupNG, void(int32_t targetId, const NG::PopupInfo& popupInfo,
49                                  const std::function<void(int32_t)>&& onWillDismiss, bool interactiveDismiss));
50    MOCK_METHOD1(HidePopupNG, void(int32_t targetId));
51    MOCK_METHOD0(ClearPopupNG, void());
52    MOCK_METHOD2(GetPopupInfoNG, void(int32_t targetId, NG::PopupInfo& popupInfo));
53    MOCK_METHOD1(CancelPopup, bool(const std::string& id));
54    MOCK_METHOD0(CloseMenu, void());
55    MOCK_METHOD0(ClearMenu, void());
56    MOCK_METHOD3(ClearMenuNG, void(int32_t targetId, bool inWindow, bool showAnimation));
57    MOCK_METHOD2(
58        ShowDialogNG, RefPtr<NG::FrameNode>(const DialogProperties& dialogProps, std::function<void()>&& buildFunc));
59    MOCK_METHOD2(ShowDialogNGWithNode, RefPtr<NG::FrameNode>(const DialogProperties&, const RefPtr<NG::UINode>&));
60    MOCK_METHOD1(CloseDialogNG, void(const RefPtr<NG::FrameNode>& dialogNode));
61    MOCK_METHOD0(HideSubWindowNG, void());
62    MOCK_CONST_METHOD0(GetChildContainerId, int32_t());
63    MOCK_METHOD0(GetShown, bool());
64    MOCK_METHOD2(SetHotAreas, void(const std::vector<Rect>& rects, int32_t overlayId));
65    MOCK_CONST_METHOD0(GetParentWindowRect, Rect());
66    MOCK_CONST_METHOD0(GetUIExtensionHostWindowRect, Rect());
67    MOCK_METHOD0(ClearToast, void());
68    MOCK_METHOD2(ShowToast, void(const NG::ToastInfo& toastInfo, std::function<void(int32_t)>&& callback));
69    MOCK_METHOD2(CloseToast, void(int32_t toastId, std::function<void(int32_t)>&& callback));
70    MOCK_METHOD6(ShowDialog,
71        void(const std::string& title, const std::string& message, const std::vector<ButtonInfo>& buttons,
72            bool autoCancel, std::function<void(int32_t, int32_t)>&& callback, const std::set<std::string>& callbacks));
73    MOCK_METHOD4(ShowDialog,
74        void(const PromptDialogAttr& dialogAttr, const std::vector<ButtonInfo>& buttons,
75            std::function<void(int32_t, int32_t)>&& callback, const std::set<std::string>& callbacks));
76    MOCK_METHOD3(ShowActionMenu, void(const std::string& title, const std::vector<ButtonInfo>& button,
77                                     std::function<void(int32_t, int32_t)>&& callback));
78    MOCK_METHOD1(CloseDialog, void(int32_t instanceId));
79    MOCK_METHOD0(GetOverlayManager, const RefPtr<NG::OverlayManager>());
80    MOCK_METHOD0(RequestFocus, void());
81    MOCK_METHOD0(IsFocused, bool());
82    MOCK_METHOD2(OpenCustomDialog, void(const PromptDialogAttr& dialogAttr, std::function<void(int32_t)>&& callback));
83    MOCK_METHOD1(CloseCustomDialog, void(const int32_t dialogId));
84    MOCK_METHOD2(CloseCustomDialog, void(const WeakPtr<NG::UINode>& node, std::function<void(int32_t)> &&callback));
85    MOCK_METHOD2(
86        OpenCustomDialogNG, void(const DialogProperties& dialogProps, std::function<void(int32_t)>&& callback));
87    MOCK_METHOD1(CloseCustomDialogNG, void(int32_t dialogId));
88    MOCK_METHOD2(CloseCustomDialogNG, void(const WeakPtr<NG::UINode>& node, std::function<void(int32_t)>&& callback));
89    MOCK_METHOD3(UpdateCustomDialogNG, void(const WeakPtr<NG::UINode>& node, const DialogProperties& dialogProps,
90        std::function<void(int32_t)>&& callback));
91    MOCK_METHOD0(ResizeWindowForFoldStatus, void());
92    MOCK_METHOD1(ResizeWindowForFoldStatus, void(int32_t parentContainerId));
93    MOCK_METHOD0(MarkDirtyDialogSafeArea, void());
94    MOCK_METHOD0(Close, bool());
95    MOCK_CONST_METHOD0(IsFreeMultiWindow, bool());
96    MOCK_METHOD1(OnFreeMultiWindowSwitch, void(bool enable));
97    MOCK_METHOD1(RegisterFreeMultiWindowSwitchCallback, int32_t(std::function<void(bool)>&& callback));
98    MOCK_METHOD1(UnRegisterFreeMultiWindowSwitchCallback, void(int32_t callbackId));
99    MOCK_METHOD1(SetRect, void(const NG::RectF& rect));
100    MOCK_METHOD0(IsToastSubWindow, bool());
101    MOCK_METHOD0(DestroyWindow, void());
102};
103} // namespace OHOS::Ace
104#endif // FOUNDATION_ACE_TEST_MOCK_BASE_MOCK_SUBWINDOW_H
105