1c29fa5a6Sopenharmony_ci/* 2c29fa5a6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at 6c29fa5a6Sopenharmony_ci * 7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c29fa5a6Sopenharmony_ci * 9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and 13c29fa5a6Sopenharmony_ci * limitations under the License. 14c29fa5a6Sopenharmony_ci */ 15c29fa5a6Sopenharmony_ci 16c29fa5a6Sopenharmony_ci#ifndef TEST_CONTEXT_H 17c29fa5a6Sopenharmony_ci#define TEST_CONTEXT_H 18c29fa5a6Sopenharmony_ci 19c29fa5a6Sopenharmony_ci#include "device_manager.h" 20c29fa5a6Sopenharmony_ci#include "drag_manager.h" 21c29fa5a6Sopenharmony_ci#include "i_context.h" 22c29fa5a6Sopenharmony_ci#include "timer_manager.h" 23c29fa5a6Sopenharmony_ci 24c29fa5a6Sopenharmony_ci#include "socket_session_manager.h" 25c29fa5a6Sopenharmony_ci 26c29fa5a6Sopenharmony_cinamespace OHOS { 27c29fa5a6Sopenharmony_cinamespace Msdp { 28c29fa5a6Sopenharmony_cinamespace DeviceStatus { 29c29fa5a6Sopenharmony_ciclass MockDelegateTasks : public IDelegateTasks { 30c29fa5a6Sopenharmony_cipublic: 31c29fa5a6Sopenharmony_ci int32_t PostSyncTask(DTaskCallback callback) override; 32c29fa5a6Sopenharmony_ci int32_t PostAsyncTask(DTaskCallback callback) override; 33c29fa5a6Sopenharmony_ci}; 34c29fa5a6Sopenharmony_ci 35c29fa5a6Sopenharmony_ciclass MockInputAdapter : public IInputAdapter { 36c29fa5a6Sopenharmony_cipublic: 37c29fa5a6Sopenharmony_ci int32_t AddMonitor(std::function<void(std::shared_ptr<MMI::PointerEvent>)> callback) override; 38c29fa5a6Sopenharmony_ci int32_t AddMonitor(std::function<void(std::shared_ptr<MMI::KeyEvent>)> callback) override; 39c29fa5a6Sopenharmony_ci void RemoveMonitor(int32_t monitorId) override; 40c29fa5a6Sopenharmony_ci 41c29fa5a6Sopenharmony_ci int32_t AddInterceptor(std::function<void(std::shared_ptr<MMI::PointerEvent>)> pointerCb) override; 42c29fa5a6Sopenharmony_ci int32_t AddInterceptor(std::function<void(std::shared_ptr<MMI::KeyEvent>)> keyCb) override; 43c29fa5a6Sopenharmony_ci int32_t AddInterceptor(std::function<void(std::shared_ptr<MMI::PointerEvent>)> pointerCb, 44c29fa5a6Sopenharmony_ci std::function<void(std::shared_ptr<MMI::KeyEvent>)> keyCb) override; 45c29fa5a6Sopenharmony_ci void RemoveInterceptor(int32_t interceptorId) override; 46c29fa5a6Sopenharmony_ci 47c29fa5a6Sopenharmony_ci int32_t AddFilter(std::function<bool(std::shared_ptr<MMI::PointerEvent>)> callback) override; 48c29fa5a6Sopenharmony_ci void RemoveFilter(int32_t filterId) override; 49c29fa5a6Sopenharmony_ci 50c29fa5a6Sopenharmony_ci int32_t SetPointerVisibility(bool visible, int32_t priority = 0) override; 51c29fa5a6Sopenharmony_ci int32_t SetPointerLocation(int32_t x, int32_t y) override; 52c29fa5a6Sopenharmony_ci int32_t EnableInputDevice(bool enable) override; 53c29fa5a6Sopenharmony_ci 54c29fa5a6Sopenharmony_ci void SimulateInputEvent(std::shared_ptr<MMI::PointerEvent> pointerEvent) override; 55c29fa5a6Sopenharmony_ci void SimulateInputEvent(std::shared_ptr<MMI::KeyEvent> keyEvent) override; 56c29fa5a6Sopenharmony_ci int32_t AddVirtualInputDevice(std::shared_ptr<MMI::InputDevice> device, int32_t &deviceId) override; 57c29fa5a6Sopenharmony_ci int32_t RemoveVirtualInputDevice(int32_t deviceId) override; 58c29fa5a6Sopenharmony_ci}; 59c29fa5a6Sopenharmony_ci 60c29fa5a6Sopenharmony_ciclass MockPluginManager : public IPluginManager { 61c29fa5a6Sopenharmony_cipublic: 62c29fa5a6Sopenharmony_ci MockPluginManager(IContext *context); 63c29fa5a6Sopenharmony_ci ICooperate* LoadCooperate() override; 64c29fa5a6Sopenharmony_ci void UnloadCooperate() override; 65c29fa5a6Sopenharmony_ci IMotionDrag* LoadMotionDrag() override; 66c29fa5a6Sopenharmony_ci void UnloadMotionDrag() override; 67c29fa5a6Sopenharmony_ciprivate: 68c29fa5a6Sopenharmony_ci std::unique_ptr<IPluginManager> pluginMgr_; 69c29fa5a6Sopenharmony_ci}; 70c29fa5a6Sopenharmony_ci 71c29fa5a6Sopenharmony_ciclass TestContext final : public IContext { 72c29fa5a6Sopenharmony_cipublic: 73c29fa5a6Sopenharmony_ci TestContext(); 74c29fa5a6Sopenharmony_ci ~TestContext() = default; 75c29fa5a6Sopenharmony_ci DISALLOW_COPY_AND_MOVE(TestContext); 76c29fa5a6Sopenharmony_ci 77c29fa5a6Sopenharmony_ci IDelegateTasks& GetDelegateTasks() override; 78c29fa5a6Sopenharmony_ci IDeviceManager& GetDeviceManager() override; 79c29fa5a6Sopenharmony_ci ITimerManager& GetTimerManager() override; 80c29fa5a6Sopenharmony_ci IDragManager& GetDragManager() override; 81c29fa5a6Sopenharmony_ci IPluginManager& GetPluginManager() override; 82c29fa5a6Sopenharmony_ci ISocketSessionManager& GetSocketSessionManager() override; 83c29fa5a6Sopenharmony_ci IInputAdapter& GetInput() override; 84c29fa5a6Sopenharmony_ci IDSoftbusAdapter& GetDSoftbus() override; 85c29fa5a6Sopenharmony_ci 86c29fa5a6Sopenharmony_ciprivate: 87c29fa5a6Sopenharmony_ci MockDelegateTasks delegateTasks_; 88c29fa5a6Sopenharmony_ci DeviceManager devMgr_; 89c29fa5a6Sopenharmony_ci TimerManager timerMgr_; 90c29fa5a6Sopenharmony_ci DragManager dragMgr_; 91c29fa5a6Sopenharmony_ci SocketSessionManager socketSessionMgr_; 92c29fa5a6Sopenharmony_ci std::unique_ptr<IInputAdapter> input_ { nullptr }; 93c29fa5a6Sopenharmony_ci std::unique_ptr<IPluginManager> pluginMgr_ { nullptr }; 94c29fa5a6Sopenharmony_ci std::unique_ptr<IDSoftbusAdapter> dsoftbus_ { nullptr }; 95c29fa5a6Sopenharmony_ci}; 96c29fa5a6Sopenharmony_ci} // namespace DeviceStatus 97c29fa5a6Sopenharmony_ci} // namespace Msdp 98c29fa5a6Sopenharmony_ci} // namespace OHOS 99c29fa5a6Sopenharmony_ci#endif // TEST_CONTEXT_H