1e0dac50fSopenharmony_ci/*
2e0dac50fSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License.
5e0dac50fSopenharmony_ci * You may obtain a copy of the License at
6e0dac50fSopenharmony_ci *
7e0dac50fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e0dac50fSopenharmony_ci *
9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and
13e0dac50fSopenharmony_ci * limitations under the License.
14e0dac50fSopenharmony_ci */
15e0dac50fSopenharmony_ci
16e0dac50fSopenharmony_ci#include "interfaces/include/ws_common.h"
17e0dac50fSopenharmony_ci#include "session/container/include/zidl/session_stage_interface.h"
18e0dac50fSopenharmony_ci#include "session/host/include/session.h"
19e0dac50fSopenharmony_ci#include <gmock/gmock.h>
20e0dac50fSopenharmony_ci
21e0dac50fSopenharmony_cinamespace OHOS {
22e0dac50fSopenharmony_cinamespace Rosen {
23e0dac50fSopenharmony_ciclass SessionMocker : public Session {
24e0dac50fSopenharmony_cipublic:
25e0dac50fSopenharmony_ci    SessionMocker(const SessionInfo& info) : Session(info) {}
26e0dac50fSopenharmony_ci    ~SessionMocker() {}
27e0dac50fSopenharmony_ci    MOCK_METHOD7(Connect, WSError(const sptr<ISessionStage>& sessionStage,
28e0dac50fSopenharmony_ci        const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
29e0dac50fSopenharmony_ci        SystemSessionConfig& systemConfig, sptr<WindowSessionProperty> property, sptr<IRemoteObject> token,
30e0dac50fSopenharmony_ci        const std::string& identityToken));
31e0dac50fSopenharmony_ci    MOCK_METHOD7(CreateAndConnectSpecificSession, WSError(const sptr<ISessionStage>& sessionStage,
32e0dac50fSopenharmony_ci        const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
33e0dac50fSopenharmony_ci        sptr<WindowSessionProperty> property, int32_t& persistentId, sptr<ISession>& session,
34e0dac50fSopenharmony_ci        sptr<IRemoteObject> token));
35e0dac50fSopenharmony_ci
36e0dac50fSopenharmony_ci    MOCK_METHOD3(
37e0dac50fSopenharmony_ci        Foreground, WSError(sptr<WindowSessionProperty> property, bool isFromClient, const std::string& identityToken));
38e0dac50fSopenharmony_ci    MOCK_METHOD2(Background, WSError(bool isFromClient, const std::string& identityToken));
39e0dac50fSopenharmony_ci    MOCK_METHOD2(Disconnect, WSError(bool isFromClient, const std::string& identityToken));
40e0dac50fSopenharmony_ci
41e0dac50fSopenharmony_ci    MOCK_METHOD3(UpdateSessionRect, WSError(const WSRect& rect, const SizeChangeReason reason, bool isGlobal));
42e0dac50fSopenharmony_ci    MOCK_METHOD1(UpdateClientRect, WSError(const WSRect& rect));
43e0dac50fSopenharmony_ci
44e0dac50fSopenharmony_ci    MOCK_METHOD0(Recover, WSError(void));
45e0dac50fSopenharmony_ci    MOCK_METHOD0(Maximize, WSError(void));
46e0dac50fSopenharmony_ci    MOCK_METHOD1(PendingSessionActivation, WSError(const sptr<AAFwk::SessionInfo> info));
47e0dac50fSopenharmony_ci    MOCK_METHOD1(UpdateActiveStatus, WSError(bool isActive));
48e0dac50fSopenharmony_ci    MOCK_METHOD1(OnSessionEvent, WSError(SessionEvent event));
49e0dac50fSopenharmony_ci    MOCK_METHOD1(RequestSessionBack, WSError(bool needMoveToBackground));
50e0dac50fSopenharmony_ci    MOCK_METHOD0(RaiseToAppTop, WSError(void));
51e0dac50fSopenharmony_ci    MOCK_METHOD1(GetAvoidAreaByType, AvoidArea(AvoidAreaType type));
52e0dac50fSopenharmony_ci    MOCK_METHOD1(SetAspectRatio, WSError(float ratio));
53e0dac50fSopenharmony_ci    MOCK_METHOD1(ResetAspectRatio, WSError(float ratio));
54e0dac50fSopenharmony_ci    MOCK_METHOD1(OnNeedAvoid, WSError(bool status));
55e0dac50fSopenharmony_ci    MOCK_METHOD1(SetGlobalMaximizeMode, WSError(MaximizeMode mode));
56e0dac50fSopenharmony_ci    MOCK_METHOD1(NotifyExtensionTimeout, void(int32_t errorCode));
57e0dac50fSopenharmony_ci    MOCK_METHOD1(GetAppForceLandscapeConfig, WMError(AppForceLandscapeConfig& config));
58e0dac50fSopenharmony_ci    MOCK_METHOD1(SetDialogSessionBackGestureEnabled, WSError(bool isEnabled));
59e0dac50fSopenharmony_ci    MOCK_METHOD1(SetActive, WSError(bool active));
60e0dac50fSopenharmony_ci};
61e0dac50fSopenharmony_ci} // namespace Rosen
62e0dac50fSopenharmony_ci} // namespace OHOS
63