1 /*
2  * Copyright (c) 2024 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 #ifndef MOCK_WINDOW_H
16 #define MOCK_WINDOW_H
17 
18 #include "window.h"
19 #include <gmock/gmock.h>
20 
21 namespace OHOS {
22 namespace Rosen {
23 class MockWindowChangeListener : public IWindowChangeListener {
24 public:
25     MOCK_METHOD3(OnSizeChange, void(Rect rect, WindowSizeChangeReason reason,
26         const std::shared_ptr<RSTransaction>& rsTransaction));
27     MOCK_METHOD2(OnModeChange, void(WindowMode, bool));
28 };
29 
30 class MockWindowLifeCycleListener : public IWindowLifeCycle {
31 public:
32     MOCK_METHOD0(AfterForeground, void(void));
33     MOCK_METHOD0(AfterBackground, void(void));
34     MOCK_METHOD0(AfterFocused, void(void));
35     MOCK_METHOD0(AfterUnfocused, void(void));
36     MOCK_METHOD1(ForegroundFailed, void(int32_t));
37     MOCK_METHOD1(BackgroundFailed, void(int32_t));
38     MOCK_METHOD0(AfterActive, void(void));
39     MOCK_METHOD0(AfterInactive, void(void));
40     MOCK_METHOD0(AfterResumed, void(void));
41     MOCK_METHOD0(AfterPaused, void(void));
42     MOCK_METHOD0(AfterDestroyed, void(void));
43 };
44 
45 class MockAvoidAreaChangedListener : public IAvoidAreaChangedListener {
46 public:
47     MOCK_METHOD2(OnAvoidAreaChanged, void(const AvoidArea avoidArea, AvoidAreaType type));
48 };
49 
50 class MockTouchOutsideListener : public ITouchOutsideListener {
51 public:
52     MOCK_CONST_METHOD0(OnTouchOutside, void());
53 };
54 
55 class MockWindowStatusChangeListener : public IWindowStatusChangeListener {
56 public:
57     MOCK_METHOD1(OnWindowStatusChange, void(WindowStatus status));
58 };
59 
60 class MockIOccupiedAreaChangeListener : public IOccupiedAreaChangeListener {
61 public:
62     MOCK_METHOD2(OnSizeChange, void(const sptr<OccupiedAreaChangeInfo>& info,
63         const std::shared_ptr<RSTransaction>& rsTransaction));
64 };
65 
66 class MockInputEventConsumer : public IInputEventConsumer {
67 public:
68     MOCK_CONST_METHOD1(OnInputEvent, bool(const std::shared_ptr<MMI::KeyEvent>&));
69     MOCK_CONST_METHOD1(OnInputEvent, bool(const std::shared_ptr<MMI::PointerEvent>&));
70     MOCK_CONST_METHOD1(OnInputEvent, bool(const std::shared_ptr<MMI::AxisEvent>&));
71 };
72 
73 class MockWindowNoInteractionListener : public IWindowNoInteractionListener {
74 public:
75     MOCK_METHOD0(OnWindowNoInteractionCallback, void());
76     MOCK_METHOD1(SetTimeout, void(int64_t));
77     MOCK_CONST_METHOD0(GetTimeout, int64_t());
78 };
79 
80 class MockWindowTitleButtonRectChangedListener : public IWindowTitleButtonRectChangedListener {
81 public:
82     MOCK_METHOD1(OnWindowTitleButtonRectChanged, void(const TitleButtonRect&));
83 };
84 
85 class MockWindowRectChangeListener : public IWindowRectChangeListener {
86 public:
87     MOCK_METHOD2(OnRectChange, void(Rect rect, WindowSizeChangeReason reason));
88 };
89 } // Rosen
90 } // OHOS
91 
92 #endif