17c804472Sopenharmony_ci/*
27c804472Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
37c804472Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47c804472Sopenharmony_ci * you may not use this file except in compliance with the License.
57c804472Sopenharmony_ci * You may obtain a copy of the License at
67c804472Sopenharmony_ci *
77c804472Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87c804472Sopenharmony_ci *
97c804472Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107c804472Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117c804472Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127c804472Sopenharmony_ci * See the License for the specific language governing permissions and
137c804472Sopenharmony_ci * limitations under the License.
147c804472Sopenharmony_ci */
157c804472Sopenharmony_ci
167c804472Sopenharmony_ci#include <string>
177c804472Sopenharmony_ci#include <vector>
187c804472Sopenharmony_ci#include "gtest/gtest.h"
197c804472Sopenharmony_ci#define private public
207c804472Sopenharmony_ci#define protected public
217c804472Sopenharmony_ci#include "MouseInputImpl.h"
227c804472Sopenharmony_ci#include "MockGlobalResult.h"
237c804472Sopenharmony_ci
247c804472Sopenharmony_cinamespace {
257c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetMouseStatusTest)
267c804472Sopenharmony_ci    {
277c804472Sopenharmony_ci        int status = 1;
287c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetMouseStatus(status);
297c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().touchAction, status);
307c804472Sopenharmony_ci    }
317c804472Sopenharmony_ci
327c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetMousePositionTest)
337c804472Sopenharmony_ci    {
347c804472Sopenharmony_ci        double x = 100;
357c804472Sopenharmony_ci        double y = 200;
367c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetMousePosition(x, y);
377c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().mouseXPosition, x);
387c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().mouseYPosition, y);
397c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().GetMouseXPosition(), x);
407c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().GetMouseYPosition(), y);
417c804472Sopenharmony_ci    }
427c804472Sopenharmony_ci
437c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetMouseButtonTest)
447c804472Sopenharmony_ci    {
457c804472Sopenharmony_ci        int btn = 1;
467c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetMouseButton(btn);
477c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().pointButton, btn);
487c804472Sopenharmony_ci    }
497c804472Sopenharmony_ci
507c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetMouseActionTest)
517c804472Sopenharmony_ci    {
527c804472Sopenharmony_ci        int action = 1;
537c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetMouseAction(action);
547c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().pointAction, action);
557c804472Sopenharmony_ci    }
567c804472Sopenharmony_ci
577c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetSourceTypeTest)
587c804472Sopenharmony_ci    {
597c804472Sopenharmony_ci        int type = 1;
607c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetSourceType(type);
617c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().sourceType, type);
627c804472Sopenharmony_ci    }
637c804472Sopenharmony_ci
647c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetSourceToolTest)
657c804472Sopenharmony_ci    {
667c804472Sopenharmony_ci        int tool = 1;
677c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetSourceTool(tool);
687c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().sourceTool, tool);
697c804472Sopenharmony_ci    }
707c804472Sopenharmony_ci
717c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetPressedBtnsTest)
727c804472Sopenharmony_ci    {
737c804472Sopenharmony_ci        std::set<int> pressedBtns;
747c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetPressedBtns(pressedBtns);
757c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().pressedBtnsVec, pressedBtns);
767c804472Sopenharmony_ci    }
777c804472Sopenharmony_ci
787c804472Sopenharmony_ci    TEST(MouseInputImplTest, SetAxisValuesTest)
797c804472Sopenharmony_ci    {
807c804472Sopenharmony_ci        std::vector<double> axisValues;
817c804472Sopenharmony_ci        MouseInputImpl::GetInstance().SetAxisValues(axisValues);
827c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().axisValuesArr, axisValues);
837c804472Sopenharmony_ci    }
847c804472Sopenharmony_ci
857c804472Sopenharmony_ci    TEST(MouseInputImplTest, DispatchOsTouchEventTest)
867c804472Sopenharmony_ci    {
877c804472Sopenharmony_ci        g_dispatchPointerEvent = false;
887c804472Sopenharmony_ci        MouseInputImpl::GetInstance().DispatchOsTouchEvent();
897c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchPointerEvent);
907c804472Sopenharmony_ci    }
917c804472Sopenharmony_ci
927c804472Sopenharmony_ci    TEST(MouseInputImplTest, DispatchOsBackEventTest)
937c804472Sopenharmony_ci    {
947c804472Sopenharmony_ci        g_dispatchBackPressedEvent = false;
957c804472Sopenharmony_ci        MouseInputImpl::GetInstance().DispatchOsBackEvent();
967c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchBackPressedEvent);
977c804472Sopenharmony_ci    }
987c804472Sopenharmony_ci
997c804472Sopenharmony_ci    TEST(MouseInputImplTest, ConvertToOsTypeTest)
1007c804472Sopenharmony_ci    {
1017c804472Sopenharmony_ci        int typeNum = -1;
1027c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UNKNOWN);
1037c804472Sopenharmony_ci
1047c804472Sopenharmony_ci        typeNum = 10;
1057c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UNKNOWN);
1067c804472Sopenharmony_ci
1077c804472Sopenharmony_ci        typeNum = 0;
1087c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::DOWN);
1097c804472Sopenharmony_ci
1107c804472Sopenharmony_ci        typeNum = 1;
1117c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UP);
1127c804472Sopenharmony_ci
1137c804472Sopenharmony_ci        typeNum = 2;
1147c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::MOVE);
1157c804472Sopenharmony_ci
1167c804472Sopenharmony_ci        typeNum = 3;
1177c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::CANCEL);
1187c804472Sopenharmony_ci
1197c804472Sopenharmony_ci        typeNum = 4;
1207c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_DOWN);
1217c804472Sopenharmony_ci
1227c804472Sopenharmony_ci        typeNum = 5;
1237c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_UP);
1247c804472Sopenharmony_ci
1257c804472Sopenharmony_ci        typeNum = 6;
1267c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_MOVE);
1277c804472Sopenharmony_ci
1287c804472Sopenharmony_ci        typeNum = 7;
1297c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_IN_WINDOW);
1307c804472Sopenharmony_ci
1317c804472Sopenharmony_ci        typeNum = 8;
1327c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_OUT_WINDOW);
1337c804472Sopenharmony_ci
1347c804472Sopenharmony_ci        typeNum = 9;
1357c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UNKNOWN);
1367c804472Sopenharmony_ci    }
1377c804472Sopenharmony_ci
1387c804472Sopenharmony_ci    TEST(MouseInputImplTest, ConvertToOsToolTest)
1397c804472Sopenharmony_ci    {
1407c804472Sopenharmony_ci        int typeNum = -1;
1417c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::UNKNOWN);
1427c804472Sopenharmony_ci
1437c804472Sopenharmony_ci        typeNum = 10;
1447c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::UNKNOWN);
1457c804472Sopenharmony_ci
1467c804472Sopenharmony_ci        typeNum = 0;
1477c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::UNKNOWN);
1487c804472Sopenharmony_ci
1497c804472Sopenharmony_ci        typeNum = 1;
1507c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::FINGER);
1517c804472Sopenharmony_ci
1527c804472Sopenharmony_ci        typeNum = 2;
1537c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::PEN);
1547c804472Sopenharmony_ci
1557c804472Sopenharmony_ci        typeNum = 3;
1567c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::RUBBER);
1577c804472Sopenharmony_ci
1587c804472Sopenharmony_ci        typeNum = 4;
1597c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::BRUSH);
1607c804472Sopenharmony_ci
1617c804472Sopenharmony_ci        typeNum = 5;
1627c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::PENCIL);
1637c804472Sopenharmony_ci
1647c804472Sopenharmony_ci        typeNum = 6;
1657c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::AIRBRUSH);
1667c804472Sopenharmony_ci
1677c804472Sopenharmony_ci        typeNum = 7;
1687c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::MOUSE);
1697c804472Sopenharmony_ci
1707c804472Sopenharmony_ci        typeNum = 8;
1717c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::LENS);
1727c804472Sopenharmony_ci    }
1737c804472Sopenharmony_ci}