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