• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 #define private public
16 #define protected public
17 
18 #include <gtest/gtest.h>
19 
20 #include "touchpad_settings_handler.h"
21 
22 
23 namespace OHOS {
24 namespace MMI {
25 namespace {
26 using namespace testing::ext;
27 } // namespace
28 
29 class TouchpadSettingsHandlerTest : public testing::Test {
30 public:
31     static void SetUpTestCase(void);
32     static void TearDownTestCase(void);
33     void SetUp();
34     void TearDown();
35 };
36 
SetUpTestCase(void)37 void TouchpadSettingsHandlerTest::SetUpTestCase(void)
38 {
39 }
40 
TearDownTestCase(void)41 void TouchpadSettingsHandlerTest::TearDownTestCase(void)
42 {
43 }
44 
SetUp()45 void TouchpadSettingsHandlerTest::SetUp()
46 {
47 }
48 
TearDown()49 void TouchpadSettingsHandlerTest::TearDown()
50 {
51 }
52 
53 /**
54  * @tc.name: RegisterTpObserver_001
55  * @tc.desc: Test when the observer has already been registered, the function should return false
56  * @tc.type: FUNC
57  * @tc.require:
58  */
59 HWTEST_F(TouchpadSettingsHandlerTest, RegisterTpObserver_001, TestSize.Level1)
60 {
61     TouchpadSettingsObserver observer;
62     observer.hasRegistered_ = true;
63     EXPECT_FALSE(observer.RegisterTpObserver(123));
64 }
65 
66 /**
67  * @tc.name: RegisterTpObserver_002
68  * @tc.desc: Test when the account id is negative, the function should return false
69  * @tc.type: FUNC
70  * @tc.require:
71  */
72 HWTEST_F(TouchpadSettingsHandlerTest, RegisterTpObserver_002, TestSize.Level1)
73 {
74     TouchpadSettingsObserver observer;
75     EXPECT_FALSE(observer.RegisterTpObserver(-1));
76 }
77 
78 /**
79  * @tc.name: RegisterTpObserver_003
80  * @tc.desc: Test when the update function is null, the function should return false
81  * @tc.type: FUNC
82  * @tc.require:
83  */
84 HWTEST_F(TouchpadSettingsHandlerTest, RegisterTpObserver_003, TestSize.Level1)
85 {
86     TouchpadSettingsObserver observer;
87     observer.updateFunc_ = nullptr;
88     EXPECT_FALSE(observer.RegisterTpObserver(-1));
89 }
90 
91 /**
92  * @tc.name: UnregisterTpObserver_001
93  * @tc.desc: Test when the observer is not registered, UnregisterTpObserver should return false
94  * @tc.type: FUNC
95  * @tc.require:
96  */
97 HWTEST_F(TouchpadSettingsHandlerTest, UnregisterTpObserver_001, TestSize.Level1)
98 {
99     TouchpadSettingsObserver observer;
100     observer.hasRegistered_ = false;
101     observer.currentAccountId_ = 1;
102     EXPECT_FALSE(observer.UnregisterTpObserver(2));
103 }
104 
105 /**
106  * @tc.name: UnregisterTpObserver_002
107  * @tc.desc: Test when the observer is registered with the same accountId, UnregisterTpObserver should return false
108  * @tc.type: FUNC
109  * @tc.require:
110  */
111 HWTEST_F(TouchpadSettingsHandlerTest, UnregisterTpObserver_002, TestSize.Level1)
112 {
113     TouchpadSettingsObserver observer;
114     observer.hasRegistered_ = true;
115     observer.currentAccountId_ = 1;
116     EXPECT_FALSE(observer.UnregisterTpObserver(1));
117 }
118 
119 /**
120  * @tc.name: UnregisterTpObserver_003
121  * @tc.desc: Test when the observer is registered with a different accountId, UnregisterTpObserver should return true
122  * @tc.type: FUNC
123  * @tc.require:
124  */
125 HWTEST_F(TouchpadSettingsHandlerTest, UnregisterTpObserver_003, TestSize.Level1)
126 {
127     TouchpadSettingsObserver observer;
128     observer.hasRegistered_ = true;
129     observer.currentAccountId_ = 1;
130     EXPECT_TRUE(observer.UnregisterTpObserver(2));
131 }
132 
133 /**
134  * @tc.name: UnregisterTpObserver_004
135  * @tc.desc: Test when the observer is null, UnregisterTpObserver should return true
136  * @tc.type: FUNC
137  * @tc.require:
138  */
139 HWTEST_F(TouchpadSettingsHandlerTest, UnregisterTpObserver_004, TestSize.Level1)
140 {
141     TouchpadSettingsObserver observer;
142     observer.hasRegistered_ = true;
143     observer.currentAccountId_ = 1;
144     observer.pressureObserver_ = nullptr;
145     observer.vibrationObserver_ = nullptr;
146     observer.touchpadSwitchesObserver_ = nullptr;
147     observer.knuckleSwitchesObserver_ = nullptr;
148     EXPECT_TRUE(observer.UnregisterTpObserver(2));
149 }
150 
151 /**
152  * @tc.name: RegisterUpdateFunc_001
153  * @tc.desc: Test if RegisterUpdateFunc sets the updateFunc_ to a non-null value
154  * @tc.type: FUNC
155  * @tc.require:
156  */
157 HWTEST_F(TouchpadSettingsHandlerTest, RegisterUpdateFunc_001, TestSize.Level1)
158 {
159     TouchpadSettingsObserver observer;
160     observer.RegisterUpdateFunc();
161     EXPECT_NE(observer.updateFunc_, nullptr);
162 }
163 
164 /**
165  * @tc.name: SyncTouchpadSettingsData_001
166  * @tc.desc: Test when the updateFunc_ is null, SyncTouchpadSettingsData should return true
167  * @tc.type: FUNC
168  * @tc.require:
169  */
170 HWTEST_F(TouchpadSettingsHandlerTest, SyncTouchpadSettingsData_001, TestSize.Level1)
171 {
172     TouchpadSettingsObserver observer;
173     observer.hasRegistered_ = true;
174     observer.updateFunc_ = nullptr;
175     observer.SyncTouchpadSettingsData();
176     EXPECT_EQ(observer.hasRegistered_, true);
177 }
178 }
179 } // namespace OHOS::MMI