• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 <gtest/gtest.h>
17 
18 #include "device.h"
19 #include "device_manager.h"
20 #include "devicestatus_define.h"
21 #include "fi_log.h"
22 
23 #undef LOG_TAG
24 #define LOG_TAG "DeviceTest"
25 
26 namespace OHOS {
27 namespace Msdp {
28 namespace DeviceStatus {
29 using namespace testing::ext;
30 
31 DeviceManager devmg_;
32 const std::string devNode_ = { "event0" };
33 const std::string devPath_ = { "/dev/input/event0" };
34 constexpr int32_t INDEX_TWO { 2 };
35 constexpr int32_t INDEX_THREE { 3 };
36 constexpr int32_t INDEX_NINE { 9 };
37 constexpr int32_t INDEX_TWELVE { 12 };
38 constexpr int32_t INDEX_TWENTY_THREE { 23 };
39 constexpr int32_t NUM_ONE { 1 };
40 constexpr int32_t NUM_SIXTY_FOUR { 64 };
41 constexpr int32_t NUM_HUNDRED_TWENTY_EIGHT { 128 };
42 constexpr int32_t NUM_THIRTY_TWO { 32 };
43 constexpr int32_t NUM_TWO { 2 };
44 int32_t deviceId_ = devmg_.ParseDeviceId(devNode_);
45 
46 class DeviceTest : public testing::Test {
47 public:
SetUpTestCase()48     static void SetUpTestCase() {};
TearDownTestCase()49     static void TearDownTestCase() {};
SetUp()50     void SetUp() {};
TearDown()51     void TearDown() {};
52 };
53 
54 /**
55  * @tc.name: OpenTest001
56  * @tc.desc: Test func named open device
57  * @tc.type: FUNC
58  */
59 HWTEST_F(DeviceTest, OpenTest001, TestSize.Level0)
60 {
61     CALL_TEST_DEBUG;
62     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
63     Device *dev = new Device(deviceId);
64     CHKPV(dev);
65     dev->SetDevPath(devPath_);
66     int32_t ret = dev->Open();
67     EXPECT_EQ(ret, RET_OK);
68     dev->Close();
69 }
70 
71 /**
72  * @tc.name: OpenTest002
73  * @tc.desc: Test func named open device
74  * @tc.type: FUNC
75  */
76 HWTEST_F(DeviceTest, OpenTest002, TestSize.Level0)
77 {
78     CALL_TEST_DEBUG;
79     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
80     Device *dev = new Device(deviceId);
81     CHKPV(dev);
82     int32_t ret = dev->Open();
83     EXPECT_EQ(ret, RET_ERR);
84 }
85 
86 /**
87  * @tc.name: CloseTest001
88  * @tc.desc: Test func named close device
89  * @tc.type: FUNC
90  */
91 HWTEST_F(DeviceTest, CloseTest001, TestSize.Level0)
92 {
93     CALL_TEST_DEBUG;
94     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
95     Device *dev = new Device(deviceId);
96     CHKPV(dev);
97     ASSERT_NO_FATAL_FAILURE(dev->Close());
98 }
99 
100 /**
101  * @tc.name: QueryDeviceInfoTest001
102  * @tc.desc: Test func named QueryDeviceInfo
103  * @tc.type: FUNC
104  */
105 HWTEST_F(DeviceTest, QueryDeviceInfoTest001, TestSize.Level0)
106 {
107     CALL_TEST_DEBUG;
108     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
109     Device *dev = new Device(deviceId);
110     CHKPV(dev);
111     ASSERT_NO_FATAL_FAILURE(dev->QueryDeviceInfo());
112     delete dev;
113     dev = nullptr;
114 }
115 
116 /**
117  * @tc.name: CheckAbsTest001
118  * @tc.desc: Test func named CheckAbs
119  * @tc.type: FUNC
120  */
121 HWTEST_F(DeviceTest, CheckAbsTest001, TestSize.Level0)
122 {
123     CALL_TEST_DEBUG;
124     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
125     Device *dev = new Device(deviceId);
126     CHKPV(dev);
127     ASSERT_NO_FATAL_FAILURE(dev->CheckAbs());
128     delete dev;
129     dev = nullptr;
130 }
131 
132 /**
133  * @tc.name: CheckMtTest001
134  * @tc.desc: Test func named CheckMt
135  * @tc.type: FUNC
136  */
137 HWTEST_F(DeviceTest, CheckMtTest001, TestSize.Level0)
138 {
139     CALL_TEST_DEBUG;
140     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
141     Device *dev = new Device(deviceId);
142     CHKPV(dev);
143     ASSERT_NO_FATAL_FAILURE(dev->CheckMt());
144     delete dev;
145     dev = nullptr;
146 }
147 
148 /**
149  * @tc.name: ReadConfigFileTest001
150  * @tc.desc: Test func named ReadConfigFile
151  * @tc.type: FUNC
152  */
153 HWTEST_F(DeviceTest, ReadConfigFileTest001, TestSize.Level0)
154 {
155     CALL_TEST_DEBUG;
156     const std::string filePath = { "/system/etc/device_status/drag_icon/Copy_Drag.svg" };
157     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
158     Device *dev = new Device(deviceId);
159     CHKPV(dev);
160     int32_t ret = dev->ReadConfigFile(filePath);
161     EXPECT_EQ(ret, RET_ERR);
162     delete dev;
163     dev = nullptr;
164 }
165 
166 /**
167  * @tc.name: ReadConfigFileTest002
168  * @tc.desc: Test func named ReadConfigFile
169  * @tc.type: FUNC
170  */
171 HWTEST_F(DeviceTest, ReadConfigFileTest002, TestSize.Level0)
172 {
173     CALL_TEST_DEBUG;
174     const std::string filePath = "";
175     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
176     Device *dev = new Device(deviceId);
177     CHKPV(dev);
178     int32_t ret = dev->ReadConfigFile(filePath);
179     EXPECT_EQ(ret, RET_ERR);
180     delete dev;
181     dev = nullptr;
182 }
183 
184 /**
185  * @tc.name: ConfigItemSwitchTest001
186  * @tc.desc: Test func named ConfigItemSwitch
187  * @tc.type: FUNC
188  */
189 HWTEST_F(DeviceTest, ConfigItemSwitchTest001, TestSize.Level0)
190 {
191     CALL_TEST_DEBUG;
192     std::string configItem = "123456";
193     std::string value = "123456";
194     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
195     Device *dev = new Device(deviceId);
196     CHKPV(dev);
197     int32_t ret = dev->ConfigItemSwitch(configItem, value);
198     EXPECT_EQ(ret, RET_OK);
199     delete dev;
200     dev = nullptr;
201 }
202 
203 /**
204  * @tc.name: ConfigItemSwitchTest002
205  * @tc.desc: Test func named ConfigItemSwitch
206  * @tc.type: FUNC
207  */
208 HWTEST_F(DeviceTest, ConfigItemSwitchTest002, TestSize.Level0)
209 {
210     CALL_TEST_DEBUG;
211     std::string configItem = "";
212     std::string value = "123456";
213     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
214     Device *dev = new Device(deviceId);
215     CHKPV(dev);
216     int32_t ret = dev->ConfigItemSwitch(configItem, value);
217     EXPECT_EQ(ret, RET_ERR);
218     delete dev;
219     dev = nullptr;
220 }
221 
222 /**
223  * @tc.name: ConfigItemSwitchTest003
224  * @tc.desc: Test func named ConfigItemSwitch
225  * @tc.type: FUNC
226  */
227 HWTEST_F(DeviceTest, ConfigItemSwitchTest003, TestSize.Level0)
228 {
229     CALL_TEST_DEBUG;
230     std::string configItem = "1234567";
231     std::string value = "";
232     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
233     Device *dev = new Device(deviceId);
234     CHKPV(dev);
235     int32_t ret = dev->ConfigItemSwitch(configItem, value);
236     EXPECT_EQ(ret, RET_ERR);
237     delete dev;
238     dev = nullptr;
239 }
240 
241 /**
242  * @tc.name: ReadTomlFileTest001
243  * @tc.desc: Test func named ReadTomlFile
244  * @tc.type: FUNC
245  */
246 HWTEST_F(DeviceTest, ReadTomlFileTest001, TestSize.Level0)
247 {
248     CALL_TEST_DEBUG;
249     const std::string filePath = { "/system/etc/device_status/drag_icon/Copy_Drag.svg" };
250     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
251     Device *dev = new Device(deviceId);
252     CHKPV(dev);
253     int32_t ret = dev->ReadTomlFile(filePath);
254     EXPECT_EQ(ret, RET_ERR);
255     delete dev;
256     dev = nullptr;
257 }
258 
259 /**
260  * @tc.name: HasRelCoordTest001
261  * @tc.desc: Test func named HasRelCoord
262  * @tc.type: FUNC
263  */
264 HWTEST_F(DeviceTest, HasRelCoordTest001, TestSize.Level0)
265 {
266     CALL_TEST_DEBUG;
267     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
268     Device *dev = new Device(deviceId);
269     CHKPV(dev);
270     bool ret = dev->HasRelCoord();
271     EXPECT_EQ(ret, false);
272     delete dev;
273     dev = nullptr;
274 }
275 
276 /**
277  * @tc.name: DispatchTest001
278  * @tc.desc: Test func named Dispatch
279  * @tc.type: FUNC
280  */
281 HWTEST_F(DeviceTest, DispatchTest001, TestSize.Level0)
282 {
283     CALL_TEST_DEBUG;
284     const struct epoll_event ev {};
285     int32_t deviceId = devmg_.ParseDeviceId(devNode_);
286     Device *dev = new Device(deviceId);
287     CHKPV(dev);
288     ASSERT_NO_FATAL_FAILURE(dev->Dispatch(ev));
289     delete dev;
290     dev = nullptr;
291 }
292 
293 /**
294  * @tc.name: JudgeKeyboardTypeTest001
295  * @tc.desc: Test func named JudgeKeyboardType
296  * @tc.type: FUNC
297  */
298 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest001, TestSize.Level0)
299 {
300     CALL_TEST_DEBUG;
301     Device dev(deviceId_);
302     dev.keyBitmask_[INDEX_TWO] = NUM_ONE;
303     ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType());
304 }
305 
306 /**
307  * @tc.name: JudgeKeyboardTypeTest002
308  * @tc.desc: Test func named JudgeKeyboardType
309  * @tc.type: FUNC
310  */
311 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest002, TestSize.Level0)
312 {
313     CALL_TEST_DEBUG;
314     Device dev(deviceId_);
315     dev.keyBitmask_[INDEX_TWELVE] = NUM_SIXTY_FOUR;
316     dev.bus_ = BUS_BLUETOOTH;
317     ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType());
318 }
319 
320 /**
321  * @tc.name: JudgeKeyboardTypeTest003
322  * @tc.desc: Test func named JudgeKeyboardType
323  * @tc.type: FUNC
324  */
325 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest003, TestSize.Level0)
326 {
327     CALL_TEST_DEBUG;
328     Device dev(deviceId_);
329     dev.keyBitmask_[INDEX_NINE] = NUM_HUNDRED_TWENTY_EIGHT;
330     ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType());
331 }
332 
333 /**
334  * @tc.name: JudgeKeyboardTypeTest004
335  * @tc.desc: Test func named JudgeKeyboardType
336  * @tc.type: FUNC
337  */
338 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest004, TestSize.Level0)
339 {
340     CALL_TEST_DEBUG;
341     Device dev(deviceId_);
342     dev.keyBitmask_[INDEX_THREE] = NUM_THIRTY_TWO;
343     ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType());
344 }
345 
346 /**
347  * @tc.name: JudgeKeyboardTypeTest005
348  * @tc.desc: Test func named JudgeKeyboardType
349  * @tc.type: FUNC
350  */
351 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest005, TestSize.Level0)
352 {
353     CALL_TEST_DEBUG;
354     Device dev(deviceId_);
355     dev.keyBitmask_[INDEX_THREE] = NUM_THIRTY_TWO;
356     dev.keyBitmask_[INDEX_TWELVE] = NUM_TWO;
357     ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType());
358 }
359 
360 /**
361  * @tc.name: JudgeKeyboardTypeTest006
362  * @tc.desc: Test func named JudgeKeyboardType
363  * @tc.type: FUNC
364  */
365 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest006, TestSize.Level0)
366 {
367     CALL_TEST_DEBUG;
368     Device dev(deviceId_);
369     dev.keyBitmask_[INDEX_THREE] = NUM_THIRTY_TWO;
370     dev.keyBitmask_[INDEX_TWELVE] = NUM_TWO;
371     dev.keyBitmask_[INDEX_TWENTY_THREE] = NUM_SIXTY_FOUR;
372     ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType());
373 }
374 } // namespace DeviceStatus
375 } // namespace Msdp
376 } // namespace OHOS