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 #include "interfaces/include/ws_common.h"
17 #include "session/container/include/zidl/session_stage_interface.h"
18 #include "session/host/include/session.h"
19 #include <gmock/gmock.h>
20 
21 namespace OHOS {
22 namespace Rosen {
23 class SessionMocker : public Session {
24 public:
SessionMocker(const SessionInfo & info)25     SessionMocker(const SessionInfo& info) : Session(info) {}
~SessionMocker()26     ~SessionMocker() {}
27     MOCK_METHOD7(Connect, WSError(const sptr<ISessionStage>& sessionStage,
28         const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
29         SystemSessionConfig& systemConfig, sptr<WindowSessionProperty> property, sptr<IRemoteObject> token,
30         const std::string& identityToken));
31     MOCK_METHOD7(CreateAndConnectSpecificSession, WSError(const sptr<ISessionStage>& sessionStage,
32         const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
33         sptr<WindowSessionProperty> property, int32_t& persistentId, sptr<ISession>& session,
34         sptr<IRemoteObject> token));
35 
36     MOCK_METHOD3(
37         Foreground, WSError(sptr<WindowSessionProperty> property, bool isFromClient, const std::string& identityToken));
38     MOCK_METHOD2(Background, WSError(bool isFromClient, const std::string& identityToken));
39     MOCK_METHOD2(Disconnect, WSError(bool isFromClient, const std::string& identityToken));
40 
41     MOCK_METHOD4(UpdateSessionRect, WSError(const WSRect& rect, const SizeChangeReason reason,
42         bool isGlobal, bool isFromMoveToGlobal));
43     MOCK_METHOD1(UpdateClientRect, WSError(const WSRect& rect));
44 
45     MOCK_METHOD0(Recover, WSError(void));
46     MOCK_METHOD0(Maximize, WSError(void));
47     MOCK_METHOD1(PendingSessionActivation, WSError(const sptr<AAFwk::SessionInfo> info));
48     MOCK_METHOD1(UpdateActiveStatus, WSError(bool isActive));
49     MOCK_METHOD1(OnSessionEvent, WSError(SessionEvent event));
50     MOCK_METHOD1(RequestSessionBack, WSError(bool needMoveToBackground));
51     MOCK_METHOD0(RaiseToAppTop, WSError(void));
52     MOCK_METHOD1(GetAvoidAreaByType, AvoidArea(AvoidAreaType type));
53     MOCK_METHOD1(SetAspectRatio, WSError(float ratio));
54     MOCK_METHOD1(ResetAspectRatio, WSError(float ratio));
55     MOCK_METHOD1(OnNeedAvoid, WSError(bool status));
56     MOCK_METHOD1(SetGlobalMaximizeMode, WSError(MaximizeMode mode));
57     MOCK_METHOD1(NotifyExtensionTimeout, void(int32_t errorCode));
58     MOCK_METHOD1(SetDialogSessionBackGestureEnabled, WSError(bool isEnabled));
59     MOCK_METHOD1(SetActive, WSError(bool active));
60     MOCK_METHOD1(GetAppForceLandscapeConfig, WMError(AppForceLandscapeConfig& config));
61 };
62 } // namespace Rosen
63 } // namespace OHOS
64