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
16#include <string>
17#include <vector>
18#include "gtest/gtest.h"
19#define private public
20#define protected public
21#include "MouseInputImpl.h"
22#include "MockGlobalResult.h"
23
24namespace {
25    TEST(MouseInputImplTest, SetMouseStatusTest)
26    {
27        int status = 1;
28        MouseInputImpl::GetInstance().SetMouseStatus(status);
29        EXPECT_EQ(MouseInputImpl::GetInstance().touchAction, status);
30    }
31
32    TEST(MouseInputImplTest, SetMousePositionTest)
33    {
34        double x = 100;
35        double y = 200;
36        MouseInputImpl::GetInstance().SetMousePosition(x, y);
37        EXPECT_EQ(MouseInputImpl::GetInstance().mouseXPosition, x);
38        EXPECT_EQ(MouseInputImpl::GetInstance().mouseYPosition, y);
39        EXPECT_EQ(MouseInputImpl::GetInstance().GetMouseXPosition(), x);
40        EXPECT_EQ(MouseInputImpl::GetInstance().GetMouseYPosition(), y);
41    }
42
43    TEST(MouseInputImplTest, SetMouseButtonTest)
44    {
45        int btn = 1;
46        MouseInputImpl::GetInstance().SetMouseButton(btn);
47        EXPECT_EQ(MouseInputImpl::GetInstance().pointButton, btn);
48    }
49
50    TEST(MouseInputImplTest, SetMouseActionTest)
51    {
52        int action = 1;
53        MouseInputImpl::GetInstance().SetMouseAction(action);
54        EXPECT_EQ(MouseInputImpl::GetInstance().pointAction, action);
55    }
56
57    TEST(MouseInputImplTest, SetSourceTypeTest)
58    {
59        int type = 1;
60        MouseInputImpl::GetInstance().SetSourceType(type);
61        EXPECT_EQ(MouseInputImpl::GetInstance().sourceType, type);
62    }
63
64    TEST(MouseInputImplTest, SetSourceToolTest)
65    {
66        int tool = 1;
67        MouseInputImpl::GetInstance().SetSourceTool(tool);
68        EXPECT_EQ(MouseInputImpl::GetInstance().sourceTool, tool);
69    }
70
71    TEST(MouseInputImplTest, SetPressedBtnsTest)
72    {
73        std::set<int> pressedBtns;
74        MouseInputImpl::GetInstance().SetPressedBtns(pressedBtns);
75        EXPECT_EQ(MouseInputImpl::GetInstance().pressedBtnsVec, pressedBtns);
76    }
77
78    TEST(MouseInputImplTest, SetAxisValuesTest)
79    {
80        std::vector<double> axisValues;
81        MouseInputImpl::GetInstance().SetAxisValues(axisValues);
82        EXPECT_EQ(MouseInputImpl::GetInstance().axisValuesArr, axisValues);
83    }
84
85    TEST(MouseInputImplTest, DispatchOsTouchEventTest)
86    {
87        g_dispatchPointerEvent = false;
88        MouseInputImpl::GetInstance().DispatchOsTouchEvent();
89        EXPECT_TRUE(g_dispatchPointerEvent);
90    }
91
92    TEST(MouseInputImplTest, DispatchOsBackEventTest)
93    {
94        g_dispatchBackPressedEvent = false;
95        MouseInputImpl::GetInstance().DispatchOsBackEvent();
96        EXPECT_TRUE(g_dispatchBackPressedEvent);
97    }
98
99    TEST(MouseInputImplTest, ConvertToOsTypeTest)
100    {
101        int typeNum = -1;
102        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UNKNOWN);
103
104        typeNum = 10;
105        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UNKNOWN);
106
107        typeNum = 0;
108        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::DOWN);
109
110        typeNum = 1;
111        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UP);
112
113        typeNum = 2;
114        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::MOVE);
115
116        typeNum = 3;
117        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::CANCEL);
118
119        typeNum = 4;
120        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_DOWN);
121
122        typeNum = 5;
123        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_UP);
124
125        typeNum = 6;
126        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_MOVE);
127
128        typeNum = 7;
129        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_IN_WINDOW);
130
131        typeNum = 8;
132        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::PULL_OUT_WINDOW);
133
134        typeNum = 9;
135        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsType(typeNum), OHOS::MMI::TouchType::UNKNOWN);
136    }
137
138    TEST(MouseInputImplTest, ConvertToOsToolTest)
139    {
140        int typeNum = -1;
141        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::UNKNOWN);
142
143        typeNum = 10;
144        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::UNKNOWN);
145
146        typeNum = 0;
147        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::UNKNOWN);
148
149        typeNum = 1;
150        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::FINGER);
151
152        typeNum = 2;
153        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::PEN);
154
155        typeNum = 3;
156        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::RUBBER);
157
158        typeNum = 4;
159        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::BRUSH);
160
161        typeNum = 5;
162        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::PENCIL);
163
164        typeNum = 6;
165        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::AIRBRUSH);
166
167        typeNum = 7;
168        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::MOUSE);
169
170        typeNum = 8;
171        EXPECT_EQ(MouseInputImpl::GetInstance().ConvertToOsTool(typeNum), OHOS::MMI::SourceTool::LENS);
172    }
173}