1 /*
2 * Copyright (C) 2023 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 "widget_client.h"
17
18 #include <future>
19 #include "iam_callback_proxy.h"
20 #include "auth_common.h"
21 #include "iam_check.h"
22 #include "iam_ptr.h"
23 #include "widget_json.h"
24 #include "iwidget_callback.h"
25
26 #include "mock_authentication.h"
27 #include "mock_context.h"
28 #include "mock_resource_node.h"
29 #include "mock_schedule_node.h"
30 #include "mock_widget_schedule_node.h"
31 #include "mock_widget_callback_interface.h"
32 #include "schedule_node_impl.h"
33 #include "widget_schedule_node.h"
34 #include "widget_callback_proxy.h"
35
36 using namespace testing;
37 using namespace testing::ext;
38 namespace OHOS {
39 namespace UserIam {
40 namespace UserAuth {
41
42 class WidgetClientTest : public testing::Test {
43 public:
44 static void SetUpTestCase();
45
46 static void TearDownTestCase();
47
48 void SetUp() override;
49
50 void TearDown() override;
51
52 std::shared_ptr<WidgetScheduleNode> BuildSchedule();
53 };
54
SetUpTestCase()55 void WidgetClientTest::SetUpTestCase()
56 {
57 }
58
TearDownTestCase()59 void WidgetClientTest::TearDownTestCase()
60 {
61 }
62
SetUp()63 void WidgetClientTest::SetUp()
64 {
65 }
66
TearDown()67 void WidgetClientTest::TearDown()
68 {
69 }
70
BuildSchedule()71 std::shared_ptr<WidgetScheduleNode> WidgetClientTest::BuildSchedule()
72 {
73 auto schedule = Common::MakeShared<MockWidgetScheduleNode>();
74 EXPECT_NE(schedule, nullptr);
75 EXPECT_CALL(*schedule, StartSchedule).WillRepeatedly(Return(true));
76 EXPECT_CALL(*schedule, StopSchedule).WillRepeatedly(Return(true));
77 EXPECT_CALL(*schedule, StartAuthList).WillRepeatedly(Return(true));
78 EXPECT_CALL(*schedule, StopAuthList).WillRepeatedly(Return(true));
79 EXPECT_CALL(*schedule, SuccessAuth).WillRepeatedly(Return(true));
80 EXPECT_CALL(*schedule, NaviPinAuth).WillRepeatedly(Return(true));
81 EXPECT_CALL(*schedule, WidgetReload).WillRepeatedly(Return(true));
82 return schedule;
83 }
84
85 HWTEST_F(WidgetClientTest, WidgetClientTestSetWidgetSchedule_0001, TestSize.Level0)
86 {
87 auto schedule = BuildSchedule();
88 uint64_t widgetContextId = 1;
89 WidgetClient::Instance().SetWidgetSchedule(widgetContextId, schedule);
90 EXPECT_NE(schedule, nullptr);
91 WidgetClient::Instance().ClearSchedule(widgetContextId);
92 }
93
94 HWTEST_F(WidgetClientTest, WidgetClientTestSetWidgetSchedule_0002, TestSize.Level0)
95 {
96 std::shared_ptr<WidgetScheduleNode> nullSchedule(nullptr);
97 uint64_t widgetContextId = 1;
98 WidgetClient::Instance().SetWidgetSchedule(widgetContextId, nullSchedule);
99 EXPECT_EQ(nullSchedule, nullptr);
100 WidgetClient::Instance().ClearSchedule(widgetContextId);
101 }
102
103 HWTEST_F(WidgetClientTest, WidgetClientTestSetWidgetParam, TestSize.Level0)
104 {
105 WidgetParamInner widgetParam;
106 WidgetClient::Instance().SetWidgetParam(widgetParam);
107 EXPECT_EQ(widgetParam.title, "");
108 }
109
110 HWTEST_F(WidgetClientTest, WidgetClientTestSetWidgetCallback, TestSize.Level0)
111 {
112 sptr<IWidgetCallback> testCallback = nullptr;
113 WidgetClient::Instance().SetWidgetCallback(testCallback);
114 EXPECT_EQ(testCallback, nullptr);
115 }
116
117 HWTEST_F(WidgetClientTest, WidgetClientTestSetAuthTokenId, TestSize.Level0)
118 {
119 uint32_t tokenId = 1;
120 WidgetClient::Instance().SetAuthTokenId(tokenId);
121 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), tokenId);
122 }
123
124 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0001, TestSize.Level0)
125 {
126 std::string eventData = "";
127 WidgetClient::Instance().Reset();
128 EXPECT_EQ(WidgetClient::Instance().OnNotice((NoticeType)0, eventData), ResultCode::INVALID_PARAMETERS);
129 }
130
131 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0002, TestSize.Level0)
132 {
133 std::string eventData = "";
134 WidgetClient::Instance().Reset();
135 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
136 }
137
138 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0003, TestSize.Level0)
139 {
140 std::string eventData = "invalid_json_string";
141 WidgetClient::Instance().Reset();
142 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
143 }
144
145 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0004, TestSize.Level0)
146 {
147 WidgetNotice widgetNotice;
148 nlohmann::json root = widgetNotice;
149 std::string eventData = root.dump();
150 WidgetClient::Instance().Reset();
151 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
152 }
153
154 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0005, TestSize.Level0)
155 {
156 WidgetNotice widgetNotice;
157 widgetNotice.widgetContextId = 1;
158 widgetNotice.event = "INVALID_EVENT_AUTH_TYPE";
159 nlohmann::json root = widgetNotice;
160 std::string eventData = root.dump();
161 WidgetClient::Instance().Reset();
162 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
163 }
164
165 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0006, TestSize.Level0)
166 {
167 WidgetNotice widgetNotice;
168 widgetNotice.widgetContextId = 1;
169 widgetNotice.event = NOTICE_EVENT_AUTH_READY;
170 nlohmann::json root = widgetNotice;
171 std::string eventData = root.dump();
172 WidgetClient::Instance().Reset();
173 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::GENERAL_ERROR);
174 }
175
176 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0007, TestSize.Level0)
177 {
178 WidgetNotice widgetNotice;
179 widgetNotice.widgetContextId = 1;
180 widgetNotice.event = NOTICE_EVENT_AUTH_READY;
181 nlohmann::json root = widgetNotice;
182 std::string eventData = root.dump();
183 WidgetClient::Instance().Reset();
184 std::vector<AuthType> authTypeList;
185 WidgetClient::Instance().SetAuthTypeList(authTypeList);
186 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
187 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
188 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
189 }
190
191 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0008, TestSize.Level0)
192 {
193 WidgetNotice widgetNotice;
194 widgetNotice.widgetContextId = 1;
195 widgetNotice.event = NOTICE_EVENT_AUTH_READY;
196 nlohmann::json root = widgetNotice;
197 std::string eventData = root.dump();
198 WidgetClient::Instance().Reset();
199 std::vector<AuthType> authTypeList;
200 authTypeList.emplace_back(AuthType::PIN);
201 WidgetClient::Instance().SetAuthTypeList(authTypeList);
202 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
203 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
204 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
205 }
206
207 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0009, TestSize.Level0)
208 {
209 WidgetNotice widgetNotice;
210 widgetNotice.widgetContextId = 1;
211 widgetNotice.event = NOTICE_EVENT_AUTH_READY;
212 widgetNotice.typeList.push_back("all");
213 nlohmann::json root = widgetNotice;
214 std::string eventData = root.dump();
215 WidgetClient::Instance().Reset();
216 std::vector<AuthType> authTypeList;
217 authTypeList.emplace_back(AuthType::PIN);
218 WidgetClient::Instance().SetAuthTypeList(authTypeList);
219 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
220 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::INVALID_PARAMETERS);
221 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
222 }
223
224 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0010, TestSize.Level0)
225 {
226 WidgetNotice widgetNotice;
227 widgetNotice.widgetContextId = 1;
228 widgetNotice.event = NOTICE_EVENT_AUTH_READY;
229 widgetNotice.typeList.push_back("pin");
230 nlohmann::json root = widgetNotice;
231 std::string eventData = root.dump();
232 WidgetClient::Instance().Reset();
233 std::vector<AuthType> authTypeList;
234 authTypeList.emplace_back(AuthType::FACE);
235 WidgetClient::Instance().SetAuthTypeList(authTypeList);
236 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
237 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
238 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
239 }
240
241 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0011, TestSize.Level0)
242 {
243 WidgetNotice widgetNotice;
244 widgetNotice.widgetContextId = 1;
245 widgetNotice.event = NOTICE_EVENT_AUTH_READY;
246 widgetNotice.typeList.push_back("pin");
247 nlohmann::json root = widgetNotice;
248 std::string eventData = root.dump();
249 WidgetClient::Instance().Reset();
250 std::vector<AuthType> authTypeList;
251 authTypeList.emplace_back(AuthType::PIN);
252 WidgetClient::Instance().SetAuthTypeList(authTypeList);
253 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
254 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
255 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
256 }
257
258 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0012, TestSize.Level0)
259 {
260 WidgetNotice widgetNotice;
261 widgetNotice.widgetContextId = 1;
262 widgetNotice.event = NOTICE_EVENT_CANCEL_AUTH;
263 widgetNotice.typeList.push_back("all");
264 nlohmann::json root = widgetNotice;
265 std::string eventData = root.dump();
266 WidgetClient::Instance().Reset();
267 std::vector<AuthType> authTypeList;
268 authTypeList.emplace_back(AuthType::PIN);
269 WidgetClient::Instance().SetAuthTypeList(authTypeList);
270 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
271 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
272 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
273 }
274
275 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0013, TestSize.Level0)
276 {
277 WidgetNotice widgetNotice;
278 widgetNotice.widgetContextId = 1;
279 widgetNotice.event = NOTICE_EVENT_CANCEL_AUTH;
280 widgetNotice.typeList.push_back("pin");
281 nlohmann::json root = widgetNotice;
282 std::string eventData = root.dump();
283 WidgetClient::Instance().Reset();
284 std::vector<AuthType> authTypeList;
285 authTypeList.emplace_back(AuthType::PIN);
286 authTypeList.emplace_back(AuthType::FACE);
287 WidgetClient::Instance().SetAuthTypeList(authTypeList);
288 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
289 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
290 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
291 }
292
293 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0014, TestSize.Level0)
294 {
295 WidgetNotice widgetNotice;
296 widgetNotice.widgetContextId = 1;
297 widgetNotice.event = NOTICE_EVENT_CANCEL_AUTH;
298 widgetNotice.typeList.push_back("pin");
299 widgetNotice.typeList.push_back("face");
300 nlohmann::json root = widgetNotice;
301 std::string eventData = root.dump();
302 WidgetClient::Instance().Reset();
303 std::vector<AuthType> authTypeList;
304 authTypeList.emplace_back(AuthType::PIN);
305 authTypeList.emplace_back(AuthType::FACE);
306 authTypeList.emplace_back(AuthType::FINGERPRINT);
307 WidgetClient::Instance().SetAuthTypeList(authTypeList);
308 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
309 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
310 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
311 }
312
313 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0015, TestSize.Level0)
314 {
315 WidgetNotice widgetNotice;
316 widgetNotice.widgetContextId = 1;
317 widgetNotice.event = NOTICE_EVENT_CANCEL_AUTH;
318 widgetNotice.typeList.push_back("pin");
319 nlohmann::json root = widgetNotice;
320 std::string eventData = root.dump();
321 WidgetClient::Instance().Reset();
322 std::vector<AuthType> authTypeList;
323 authTypeList.emplace_back(AuthType::PIN);
324 WidgetClient::Instance().SetAuthTypeList(authTypeList);
325 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
326 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
327 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
328 }
329
330 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0016, TestSize.Level0)
331 {
332 WidgetNotice widgetNotice;
333 widgetNotice.widgetContextId = 1;
334 widgetNotice.event = NOTICE_EVENT_USER_NAVIGATION;
335 widgetNotice.typeList.push_back("pin");
336 nlohmann::json root = widgetNotice;
337 std::string eventData = root.dump();
338 WidgetClient::Instance().Reset();
339 std::vector<AuthType> authTypeList;
340 authTypeList.emplace_back(AuthType::PIN);
341 WidgetClient::Instance().SetAuthTypeList(authTypeList);
342 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
343 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
344 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
345 }
346
347 HWTEST_F(WidgetClientTest, WidgetClientTestOnNotice_0017, TestSize.Level0)
348 {
349 WidgetNotice widgetNotice;
350 widgetNotice.widgetContextId = 1;
351 widgetNotice.event = NOTICE_EVENT_CANCEL_AUTH;
352 widgetNotice.typeList.push_back("all");
353 widgetNotice.typeList.push_back("face");
354 nlohmann::json root = widgetNotice;
355 std::string eventData = root.dump();
356 WidgetClient::Instance().Reset();
357 std::vector<AuthType> authTypeList;
358 authTypeList.emplace_back(AuthType::PIN);
359 WidgetClient::Instance().SetAuthTypeList(authTypeList);
360 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
361 EXPECT_EQ(WidgetClient::Instance().OnNotice(NoticeType::WIDGET_NOTICE, eventData), ResultCode::SUCCESS);
362 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
363 }
364
365 HWTEST_F(WidgetClientTest, WidgetClientTestReportWidgetResult_0001, TestSize.Level0)
366 {
367 WidgetClient::Instance().Reset();
368 WidgetClient::Instance().SetSensorInfo("fake senor info");
369 WidgetClient::Instance().ReportWidgetResult(1, AuthType::FINGERPRINT, 1, 1, false);
370 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
371 }
372
373 HWTEST_F(WidgetClientTest, WidgetClientTestReportWidgetResult_0002, TestSize.Level0)
374 {
375 WidgetClient::Instance().Reset();
376 WidgetClient::Instance().ReportWidgetResult(1, AuthType::FINGERPRINT, 1, 1, false);
377 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
378 }
379
380 HWTEST_F(WidgetClientTest, WidgetClientTestReportWidgetResult_0003, TestSize.Level0)
381 {
382 WidgetClient::Instance().Reset();
383 WidgetClient::Instance().SetSensorInfo("fake senor info");
384 WidgetClient::Instance().ReportWidgetResult(1, AuthType::PIN, 1, 1, false);
385 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
386 }
387
388 HWTEST_F(WidgetClientTest, WidgetClientTestReportWidgetResult_0004, TestSize.Level0)
389 {
390 WidgetClient::Instance().Reset();
391 std::vector<AuthType> authTypeList;
392 authTypeList.emplace_back(AuthType::PIN);
393 WidgetClient::Instance().SetAuthTypeList(authTypeList);
394 WidgetClient::Instance().SetPinSubType(PinSubType::PIN_NUMBER);
395 WidgetClient::Instance().ReportWidgetResult(1, AuthType::PIN, 1, 1, false);
396 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
397 }
398
399 HWTEST_F(WidgetClientTest, WidgetClientTestReportWidgetResult_0005, TestSize.Level0)
400 {
401 WidgetClient::Instance().Reset();
402 std::vector<AuthType> authTypeList;
403 authTypeList.emplace_back(AuthType::PIN);
404 WidgetClient::Instance().SetAuthTypeList(authTypeList);
405 WidgetClient::Instance().SetPinSubType(PinSubType::PIN_NUMBER);
406 sptr<MockIWidgetCallback> widgetCallback(new (std::nothrow) MockIWidgetCallback);
407 EXPECT_NE(widgetCallback, nullptr);
408 EXPECT_CALL(*widgetCallback, SendCommand);
409 WidgetClient::Instance().SetWidgetCallback(widgetCallback);
410 WidgetClient::Instance().ReportWidgetResult(1, AuthType::PIN, 1, 1, false);
411 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
412 }
413
414 HWTEST_F(WidgetClientTest, WidgetClientTestForceStopAuth_0001, TestSize.Level0)
415 {
416 WidgetClient::Instance().Reset();
417 WidgetClient::Instance().ForceStopAuth();
418 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
419 }
420
421 HWTEST_F(WidgetClientTest, WidgetClientTestForceStopAuth_0002, TestSize.Level0)
422 {
423 uint64_t contextId = 6;
424 WidgetClient::Instance().Reset();
425 WidgetClient::Instance().SetWidgetSchedule(contextId, BuildSchedule());
426 WidgetClient::Instance().ForceStopAuth();
427 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
428 }
429
430 HWTEST_F(WidgetClientTest, WidgetClientTestSetPinSubType, TestSize.Level0)
431 {
432 WidgetClient::Instance().SetPinSubType(PinSubType::PIN_SIX);
433 WidgetClient::Instance().SetPinSubType(PinSubType::PIN_NUMBER);
434 WidgetClient::Instance().SetPinSubType(PinSubType::PIN_MIXED);
435 WidgetClient::Instance().SetPinSubType(PinSubType::PIN_MAX);
436 WidgetClient::Instance().SetPinSubType((PinSubType)123);
437 EXPECT_EQ(WidgetClient::Instance().GetAuthTokenId(), 0);
438 }
439
440 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_001, TestSize.Level0)
441 {
442 WidgetNotice widgetNotice;
443 widgetNotice.widgetContextId = 1;
444 widgetNotice.event = NOTICE_EVENT_WIDGET_PARA_INVALID;
445 widgetNotice.typeList.push_back("pin");
446 WidgetClient::Instance().Reset();
447 std::vector<AuthType> authTypeList;
448 authTypeList.emplace_back(AuthType::PIN);
449 WidgetClient::Instance().SetAuthTypeList(authTypeList);
450 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
451 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
452 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
453 }
454
455 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_002, TestSize.Level0)
456 {
457 WidgetNotice widgetNotice;
458 widgetNotice.widgetContextId = 1;
459 widgetNotice.event = NOTICE_EVENT_END;
460 widgetNotice.typeList.push_back("pin");
461 WidgetClient::Instance().Reset();
462 std::vector<AuthType> authTypeList;
463 authTypeList.emplace_back(AuthType::PIN);
464 WidgetClient::Instance().SetAuthTypeList(authTypeList);
465 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
466 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
467 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
468 }
469
470 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_003, TestSize.Level0)
471 {
472 WidgetNotice widgetNotice;
473 widgetNotice.widgetContextId = 1;
474 widgetNotice.event = NOTICE_EVENT_RELOAD;
475 widgetNotice.typeList.push_back("pin");
476 WidgetClient::Instance().Reset();
477 std::vector<AuthType> authTypeList;
478 authTypeList.emplace_back(AuthType::PIN);
479 WidgetClient::Instance().SetAuthTypeList(authTypeList);
480 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
481 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
482 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
483 }
484
485 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_004, TestSize.Level0)
486 {
487 WidgetNotice widgetNotice;
488 widgetNotice.widgetContextId = 1;
489 widgetNotice.event = NOTICE_EVENT_RELOAD;
490 widgetNotice.typeList.push_back("pin");
491 WidgetClient::Instance().Reset();
492 std::vector<AuthType> authTypeList;
493 authTypeList.emplace_back(AuthType::ALL);
494 WidgetClient::Instance().SetAuthTypeList(authTypeList);
495 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
496 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
497 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
498 }
499
500 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_005, TestSize.Level0)
501 {
502 WidgetNotice widgetNotice;
503 widgetNotice.widgetContextId = 1;
504 widgetNotice.event = NOTICE_EVENT_RELOAD;
505 widgetNotice.typeList.push_back("pin");
506 WidgetClient::Instance().Reset();
507 std::vector<AuthType> authTypeList;
508 authTypeList.emplace_back(AuthType::ALL);
509 authTypeList.emplace_back(AuthType::PIN);
510 WidgetClient::Instance().SetAuthTypeList(authTypeList);
511 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
512 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
513 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
514 }
515
516 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_006, TestSize.Level0)
517 {
518 WidgetNotice widgetNotice;
519 widgetNotice.widgetContextId = 1;
520 widgetNotice.event = NOTICE_EVENT_AUTH_WIDGET_LOADED;
521 widgetNotice.typeList.push_back("pin");
522 WidgetClient::Instance().Reset();
523 std::vector<AuthType> authTypeList;
524 authTypeList.emplace_back(AuthType::PIN);
525 WidgetClient::Instance().SetAuthTypeList(authTypeList);
526 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
527 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
528 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
529 }
530
531 HWTEST_F(WidgetClientTest, WidgetClientTestProcessNotice_007, TestSize.Level0)
532 {
533 WidgetNotice widgetNotice;
534 widgetNotice.widgetContextId = 1;
535 widgetNotice.event = NOTICE_EVENT_AUTH_WIDGET_RELEASED;
536 widgetNotice.typeList.push_back("pin");
537 WidgetClient::Instance().Reset();
538 std::vector<AuthType> authTypeList;
539 authTypeList.emplace_back(AuthType::PIN);
540 WidgetClient::Instance().SetAuthTypeList(authTypeList);
541 WidgetClient::Instance().SetWidgetSchedule(widgetNotice.widgetContextId, BuildSchedule());
542 EXPECT_NO_THROW(WidgetClient::Instance().ProcessNotice(widgetNotice, authTypeList));
543 WidgetClient::Instance().ClearSchedule(widgetNotice.widgetContextId);
544 }
545
546 HWTEST_F(WidgetClientTest, WidgetClientTestSetPinSubType_001, TestSize.Level0)
547 {
548 WidgetClient::Instance().Reset();
549 EXPECT_NO_THROW(WidgetClient::Instance().SetPinSubType(PinSubType::PIN_FOUR));
550 }
551
552 HWTEST_F(WidgetClientTest, WidgetClientTestSetPinSubType_002, TestSize.Level0)
553 {
554 WidgetClient::Instance().Reset();
555 EXPECT_NO_THROW(WidgetClient::Instance().SetPinSubType(PinSubType::PIN_PATTERN));
556 }
557 } // namespace UserAuth
558 } // namespace UserIam
559 } // namespace OHOS
560