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 #include <thread>
16 #include <chrono>
17 #include "test/mock/interfaces/mock_uicontent.h"
18 #include "ui_content.h"
19 #include "interfaces/inner_api/form_render/include/form_renderer.h"
20 #include "interfaces/inner_api/form_render/include/form_renderer_delegate_impl.h"
21 #define private public
22 #include "interfaces/inner_api/form_render/include/form_renderer_group.h"
23 #undef private
24 #include "test/mock/core/pipeline/mock_pipeline_context.h"
25
26 using namespace testing;
27 using namespace testing::ext;
28 namespace OHOS::Ace {
29 namespace {
30 constexpr char FORM_RENDER_STATE[] = "ohos.extra.param.key.form_render_state";
31 constexpr char FORM_RENDERER_COMP_ID[] = "ohos.extra.param.key.form_comp_id";
32 } // namespace
33 class FormRenderGroupTest : public testing::Test {
34 public:
SetUpTestCase()35 static void SetUpTestCase() {};
TearDownTestCase()36 static void TearDownTestCase() {};
37 };
38 /**
39 * @tc.name: FormRenderGroupTest_001
40 * @tc.desc: Test AddForm() funtion.
41 * @tc.type: FUNC
42 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_001, TestSize.Level1)43 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_001, TestSize.Level1)
44 {
45 GTEST_LOG_(INFO) << "FormRenderGroupTest_001 start";
46 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_001");
47 ASSERT_TRUE(eventRunner);
48 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
49 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
50 EXPECT_TRUE(group);
51 OHOS::AAFwk::Want want;
52 OHOS::AppExecFwk::FormJsInfo formJsInfo;
53 formJsInfo.bundleName = "bundleName";
54 formJsInfo.moduleName = "moduleName";
55 formJsInfo.formId = 1;
56 EXPECT_EQ(formJsInfo.formId, 1);
57 group->AddForm(want, formJsInfo);
58 want.SetParam(FORM_RENDER_STATE, true);
59 group->AddForm(want, formJsInfo);
60 GTEST_LOG_(INFO) << "FormRenderGroupTest_001 end";
61 }
62 /**
63 * @tc.name: FormRenderGroupTest_002
64 * @tc.desc: Test OnUnlock() function.
65 * @tc.type: FUNC
66 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_002, TestSize.Level1)67 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_002, TestSize.Level1)
68 {
69 GTEST_LOG_(INFO) << "FormRenderGroupTest_002 start";
70 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_002");
71 ASSERT_TRUE(eventRunner);
72 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
73 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
74 EXPECT_TRUE(group);
75 group->OnUnlock();
76 GTEST_LOG_(INFO) << "FormRenderGroupTest_002 end";
77 }
78 /**
79 * @tc.name: FormRenderGroupTest_003
80 * @tc.desc: Test UpdateForm() function.
81 * @tc.type: FUNC
82 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_003, TestSize.Level1)83 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_003, TestSize.Level1)
84 {
85 GTEST_LOG_(INFO) << "FormRenderGroupTest_003 start";
86 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_003");
87 ASSERT_TRUE(eventRunner);
88 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
89 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
90 EXPECT_TRUE(group);
91 OHOS::AppExecFwk::FormJsInfo formJsInfo;
92 formJsInfo.bundleName = "bundleName";
93 formJsInfo.moduleName = "moduleName";
94 group->UpdateForm(formJsInfo);
95 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
96 group->UpdateForm(formJsInfo);
97 GTEST_LOG_(INFO) << "FormRenderGroupTest_003 end";
98 }
99 /**
100 * @tc.name: FormRenderGroupTest_004
101 * @tc.desc: Test DeleteForm() function.
102 * @tc.type: FUNC
103 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_004, TestSize.Level1)104 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_004, TestSize.Level1)
105 {
106 GTEST_LOG_(INFO) << "FormRenderGroupTest_004 start";
107 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_004");
108 ASSERT_TRUE(eventRunner);
109 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
110 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
111 EXPECT_TRUE(group);
112 std::string id = "123456";
113 group->DeleteForm(id);
114 GTEST_LOG_(INFO) << "FormRenderGroupTest_004 end";
115 }
116 /**
117 * @tc.name: FormRenderGroupTest_005
118 * @tc.desc: Test DeleteForm() function.
119 * @tc.type: FUNC
120 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_005, TestSize.Level1)121 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_005, TestSize.Level1)
122 {
123 GTEST_LOG_(INFO) << "FormRenderGroupTest_005 start";
124 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_005");
125 ASSERT_TRUE(eventRunner);
126 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
127 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
128 EXPECT_TRUE(group);
129 OHOS::AAFwk::Want want;
130 OHOS::AppExecFwk::FormJsInfo formJsInfo;
131 formJsInfo.bundleName = "bundleName";
132 formJsInfo.moduleName = "moduleName";
133 group->AddForm(want, formJsInfo);
134 group->DeleteForm();
135 GTEST_LOG_(INFO) << "FormRenderGroupTest_005 end";
136 }
137 /**
138 * @tc.name: FormRenderGroupTest_006
139 * @tc.desc: Test ReloadForm() function.
140 * @tc.type: FUNC
141 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_006, TestSize.Level1)142 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_006, TestSize.Level1)
143 {
144 GTEST_LOG_(INFO) << "FormRenderGroupTest_006 start";
145 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_006");
146 ASSERT_TRUE(eventRunner);
147 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
148 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
149 EXPECT_TRUE(group);
150 OHOS::AppExecFwk::FormJsInfo formJsInfo;
151 formJsInfo.bundleName = "bundleName";
152 formJsInfo.moduleName = "moduleName";
153 formJsInfo.formId = 2;
154 EXPECT_EQ(formJsInfo.formId, 2);
155 group->ReloadForm(formJsInfo);
156 GTEST_LOG_(INFO) << "FormRenderGroupTest_006 end";
157 }
158 /**
159 * @tc.name: FormRenderGroupTest_007
160 * @tc.desc: Test UpdateConfiguration() function.
161 * @tc.type: FUNC
162 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_007, TestSize.Level1)163 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_007, TestSize.Level1)
164 {
165 GTEST_LOG_(INFO) << "FormRenderGroupTest_007 start";
166 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_007");
167 ASSERT_TRUE(eventRunner);
168 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
169 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
170 EXPECT_TRUE(group);
171 std::shared_ptr<OHOS::AppExecFwk::Configuration> config;
172 group->UpdateConfiguration(config);
173 GTEST_LOG_(INFO) << "FormRenderGroupTest_007 end";
174 }
175 /**
176 * @tc.name: FormRenderGroupTest_008
177 * @tc.desc: Test IsFormRequestsEmpty() function.
178 * @tc.type: FUNC
179 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_008, TestSize.Level1)180 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_008, TestSize.Level1)
181 {
182 GTEST_LOG_(INFO) << "FormRenderGroupTest_008 start";
183 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_008");
184 ASSERT_TRUE(eventRunner);
185 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
186 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
187 EXPECT_TRUE(group);
188 EXPECT_EQ(true, group->IsFormRequestsEmpty());
189 GTEST_LOG_(INFO) << "FormRenderGroupTest_008 end";
190 }
191 /**
192 * @tc.name: FormRenderGroupTest_009
193 * @tc.desc: Test GetAllRendererFormRequests() function.
194 * @tc.type: FUNC
195 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_009, TestSize.Level1)196 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_009, TestSize.Level1)
197 {
198 GTEST_LOG_(INFO) << "FormRenderGroupTest_009 start";
199 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_009");
200 ASSERT_TRUE(eventRunner);
201 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
202 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
203 EXPECT_TRUE(group);
204 std::vector<FormRequest> from_ = group->GetAllRendererFormRequests();
205 GTEST_LOG_(INFO) << "FormRenderGroupTest_009 end";
206 }
207 /**
208 * @tc.name: FormRenderGroupTest_010
209 * @tc.desc: Test RecycleForm() function.
210 * @tc.type: FUNC
211 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_010, TestSize.Level1)212 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_010, TestSize.Level1)
213 {
214 GTEST_LOG_(INFO) << "FormRenderGroupTest_010 start";
215 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_010");
216 ASSERT_TRUE(eventRunner);
217 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
218 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
219 EXPECT_TRUE(group);
220 std::string data = "123";
221 group->RecycleForm(data);
222 GTEST_LOG_(INFO) << "FormRenderGroupTest_010 end";
223 }
224 /**
225 * @tc.name: FormRenderGroupTest_011
226 * @tc.desc: Test FormRendererGroup() function.
227 * @tc.type: FUNC
228 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_011, TestSize.Level1)229 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_011, TestSize.Level1)
230 {
231 GTEST_LOG_(INFO) << "FormRenderGroupTest_011 start";
232 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_011");
233 ASSERT_TRUE(eventRunner);
234 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
235 FormRendererGroup group(nullptr, nullptr, eventHandler);
236 GTEST_LOG_(INFO) << "FormRenderGroupTest_011 end";
237 }
238
239 /**
240 * @tc.name: FormRenderGroupTest_014
241 * @tc.desc: Test OnUnlock() function.
242 * @tc.type: FUNC
243 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_014, TestSize.Level1)244 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_014, TestSize.Level1)
245 {
246 GTEST_LOG_(INFO) << "FormRenderGroupTest_0014 start";
247 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_014");
248 ASSERT_TRUE(eventRunner);
249 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
250 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
251 FormRequest formRequest;
252 formRequest.compId = "unlock";
253 bool flag = false;
254 if (group != nullptr) {
255 group->formRequests_.push_back(formRequest);
256 group->currentCompId_ = "unlock";
257 group->OnUnlock();
258 flag = true;
259 }
260 EXPECT_TRUE(flag);
261 GTEST_LOG_(INFO) << "FormRenderGroupTest_014 end";
262 }
263
264 /**
265 * @tc.name: FormRenderGroupTest_015
266 * @tc.desc: Test DeleteForm() function.
267 * @tc.type: FUNC
268 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_015, TestSize.Level1)269 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_015, TestSize.Level1)
270 {
271 GTEST_LOG_(INFO) << "FormRenderGroupTest_015 start";
272 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_015");
273 ASSERT_TRUE(eventRunner);
274 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
275 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
276 std::string compId = "deleteform";
277 bool flag = false;
278 if (group != nullptr) {
279 group->currentCompId_ = "deleteform";
280 group->DeleteForm(compId);
281 flag = true;
282 }
283 EXPECT_TRUE(flag);
284 GTEST_LOG_(INFO) << "FormRenderGroupTest_015 end";
285 }
286
287 /**
288 * @tc.name: FormRenderGroupTest_016
289 * @tc.desc: Test DeleteForm() function.
290 * @tc.type: FUNC
291 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_016, TestSize.Level1)292 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_016, TestSize.Level1)
293 {
294 GTEST_LOG_(INFO) << "FormRenderGroupTest_016 start";
295 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_016");
296 ASSERT_TRUE(eventRunner);
297 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
298 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
299 group->formRenderer_ = nullptr;
300 std::string compId = "deleteform";
301 FormRequest formRequest;
302 formRequest.compId = "requestdeleteform";
303 bool flag = false;
304 if (group != nullptr) {
305 group->formRequests_.push_back(formRequest);
306 group->currentCompId_ = "deleteform";
307 group->DeleteForm(compId);
308 flag = true;
309 }
310 EXPECT_TRUE(flag);
311 GTEST_LOG_(INFO) << "FormRenderGroupTest_016 end";
312 }
313
314 /**
315 * @tc.name: FormRenderGroupTest_017
316 * @tc.desc: Test DeleteForm() function.
317 * @tc.type: FUNC
318 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_017, TestSize.Level1)319 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_017, TestSize.Level1)
320 {
321 GTEST_LOG_(INFO) << "FormRenderGroupTest_017 start";
322 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_017");
323 ASSERT_TRUE(eventRunner);
324 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
325 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
326 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
327 std::string compId = "deleteform";
328 FormRequest formRequest;
329 formRequest.compId = "requestdeleteform";
330 bool flag = false;
331 if (group != nullptr) {
332 group->formRequests_.push_back(formRequest);
333 group->currentCompId_ = "deleteform";
334 group->DeleteForm(compId);
335 flag = true;
336 }
337 EXPECT_TRUE(flag);
338 GTEST_LOG_(INFO) << "FormRenderGroupTest_017 end";
339 }
340
341 /**
342 * @tc.name: FormRenderGroupTest_018
343 * @tc.desc: Test UpdateConfiguration() function.
344 * @tc.type: FUNC
345 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_018, TestSize.Level1)346 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_018, TestSize.Level1)
347 {
348 GTEST_LOG_(INFO) << "FormRenderGroupTest_018 start";
349 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_018");
350 ASSERT_TRUE(eventRunner);
351 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
352 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
353 bool flag = false;
354 if (group != nullptr) {
355 group->UpdateConfiguration(nullptr);
356 flag = true;
357 }
358 EXPECT_TRUE(flag);
359 std::shared_ptr<OHOS::AppExecFwk::Configuration> config = std::make_shared<OHOS::AppExecFwk::Configuration>();
360 group->formRenderer_ = nullptr;
361 flag = false;
362 if (group != nullptr) {
363 group->UpdateConfiguration(config);
364 flag = true;
365 }
366 EXPECT_TRUE(flag);
367 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
368 flag = false;
369 if (group != nullptr) {
370 group->UpdateConfiguration(config);
371 flag = true;
372 }
373 EXPECT_TRUE(flag);
374 GTEST_LOG_(INFO) << "FormRenderGroupTest_018 end";
375 }
376
377 /**
378 * @tc.name: FormRenderGroupTest_019
379 * @tc.desc: Test RecycleForm() function.
380 * @tc.type: FUNC
381 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_019, TestSize.Level1)382 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_019, TestSize.Level1)
383 {
384 GTEST_LOG_(INFO) << "FormRenderGroupTest_019 start";
385 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_019");
386 ASSERT_TRUE(eventRunner);
387 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
388 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
389 std::string statusData = "statusData";
390 group->formRenderer_ = nullptr;
391 bool flag = false;
392 if (group != nullptr) {
393 group->RecycleForm(statusData);
394 flag = true;
395 }
396 EXPECT_TRUE(flag);
397 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
398 flag = false;
399 if (group != nullptr) {
400 group->RecycleForm(statusData);
401 flag = true;
402 }
403 EXPECT_TRUE(flag);
404 GTEST_LOG_(INFO) << "FormRenderGroupTest_019 end";
405 }
406
407 /**
408 * @tc.name: FormRenderGroupTest_020
409 * @tc.desc: Test PreInitAddForm() function.
410 * @tc.type: FUNC
411 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_020, TestSize.Level1)412 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_020, TestSize.Level1)
413 {
414 GTEST_LOG_(INFO) << "FormRenderGroupTest_020 start";
415 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_020");
416 ASSERT_TRUE(eventRunner);
417 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
418 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
419 FormRequest formRequest;
420 formRequest.compId = "PreInitAddForm";
421 bool flag = false;
422 if (group != nullptr) {
423 group->initState_ = FormRendererGroup::FormRendererInitState::PRE_INITIALIZED;
424 group->PreInitAddForm(formRequest);
425 flag = true;
426 }
427 EXPECT_TRUE(flag);
428 flag = false;
429 if (group != nullptr) {
430 group->initState_ = FormRendererGroup::FormRendererInitState::UNINITIALIZED;
431 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
432 group->PreInitAddForm(formRequest);
433 flag = true;
434 }
435 EXPECT_TRUE(flag);
436 flag = false;
437 if (group != nullptr) {
438 group->initState_ = FormRendererGroup::FormRendererInitState::UNINITIALIZED;
439 group->formRenderer_ = nullptr;
440 group->PreInitAddForm(formRequest);
441 flag = true;
442 }
443 EXPECT_TRUE(flag);
444 GTEST_LOG_(INFO) << "FormRenderGroupTest_020 end";
445 }
446
447 /**
448 * @tc.name: FormRenderGroupTest_021
449 * @tc.desc: Test InnerAddForm() function.
450 * @tc.type: FUNC
451 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_021, TestSize.Level1)452 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_021, TestSize.Level1)
453 {
454 GTEST_LOG_(INFO) << "FormRenderGroupTest_021 start";
455 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_021");
456 ASSERT_TRUE(eventRunner);
457 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
458 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
459 FormRequest formRequest;
460 formRequest.compId = "InnerAddForm";
461 bool flag = false;
462 if (group != nullptr) {
463 group->initState_ = FormRendererGroup::FormRendererInitState::PRE_INITIALIZED;
464 group->formRenderer_ = nullptr;
465 group->InnerAddForm(formRequest);
466 flag = true;
467 }
468 EXPECT_TRUE(flag);
469 flag = false;
470 if (group != nullptr) {
471 group->initState_ = FormRendererGroup::FormRendererInitState::UNINITIALIZED;
472 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
473 group->InnerAddForm(formRequest);
474 flag = true;
475 }
476 EXPECT_TRUE(flag);
477 flag = false;
478 if (group != nullptr) {
479 group->initState_ = FormRendererGroup::FormRendererInitState::PRE_INITIALIZED;
480 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
481 group->InnerAddForm(formRequest);
482 flag = true;
483 }
484 EXPECT_TRUE(flag);
485 flag = false;
486 if (group != nullptr) {
487 group->initState_ = FormRendererGroup::FormRendererInitState::INITIALIZED;
488 group->formRenderer_ = std::make_shared<FormRenderer>(nullptr, nullptr, eventHandler);
489 group->InnerAddForm(formRequest);
490 flag = true;
491 }
492 EXPECT_TRUE(flag);
493 GTEST_LOG_(INFO) << "FormRenderGroupTest_021 end";
494 }
495
496 /**
497 * @tc.name: FormRenderGroupTest_022
498 * @tc.desc: Test GetOrderedAndCurrentCompIds() function.
499 * @tc.type: FUNC
500 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_022, TestSize.Level1)501 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_022, TestSize.Level1)
502 {
503 GTEST_LOG_(INFO) << "FormRenderGroupTest_022 start";
504 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_022");
505 ASSERT_TRUE(eventRunner);
506 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
507 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
508 EXPECT_TRUE(group);
509 std::pair<std::vector<std::string>, std::string> compIdPair = group->GetOrderedAndCurrentCompIds();
510 EXPECT_EQ(true, compIdPair.first.empty());
511 EXPECT_EQ(true, compIdPair.second.empty());
512 OHOS::AAFwk::Want want;
513 OHOS::AppExecFwk::FormJsInfo formJsInfo;
514 formJsInfo.formId = 1;
515 std::string compId1 = "comp1";
516 want.SetParam(FORM_RENDERER_COMP_ID, compId1);
517 group->AddForm(want, formJsInfo);
518 formJsInfo.formId = 2;
519 std::string compId2 = "comp2";
520 want.SetParam(FORM_RENDERER_COMP_ID, compId2);
521 group->AddForm(want, formJsInfo);
522 compIdPair = group->GetOrderedAndCurrentCompIds();
523 EXPECT_EQ(2, compIdPair.first.size());
524 EXPECT_EQ(compId1, compIdPair.first[0]);
525 EXPECT_EQ(compId2, compIdPair.first[1]);
526 EXPECT_EQ(compId2, compIdPair.second);
527 group->DeleteForm(compId2);
528 compIdPair = group->GetOrderedAndCurrentCompIds();
529 EXPECT_EQ(1, compIdPair.first.size());
530 EXPECT_EQ(compId1, compIdPair.second);
531 GTEST_LOG_(INFO) << "FormRenderGroupTest_022 end";
532 }
533
534 /**
535 * @tc.name: FormRenderGroupTest_023
536 * @tc.desc: Test RecoverRenderer() function.
537 * @tc.type: FUNC
538 */
HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_023, TestSize.Level1)539 HWTEST_F(FormRenderGroupTest, FormRenderGroupTest_023, TestSize.Level1)
540 {
541 GTEST_LOG_(INFO) << "FormRenderGroupTest_023 start";
542 auto eventRunner = OHOS::AppExecFwk::EventRunner::Create("FormRenderGroupTest_023");
543 ASSERT_TRUE(eventRunner);
544 auto eventHandler = std::make_shared<OHOS::AppExecFwk::EventHandler>(eventRunner);
545 auto group = FormRendererGroup::Create(nullptr, nullptr, eventHandler);
546 EXPECT_TRUE(group);
547 OHOS::AAFwk::Want want;
548 OHOS::AppExecFwk::FormJsInfo formJsInfo;
549 formJsInfo.formId = 1;
550 std::string compId1 = "comp1";
551 want.SetParam(FORM_RENDERER_COMP_ID, compId1);
552 group->AddForm(want, formJsInfo);
553 formJsInfo.formId = 2;
554 std::string compId2 = "comp2";
555 want.SetParam(FORM_RENDERER_COMP_ID, compId2);
556 group->AddForm(want, formJsInfo);
557 std::pair<std::vector<std::string>, std::string> compIdPair = group->GetOrderedAndCurrentCompIds();
558 group->DeleteForm();
559 EXPECT_EQ(true, group->GetAllRendererFormRequests().empty());
560 std::vector<FormRequest> requests;
561 group->RecoverRenderer(requests, 0);
562 EXPECT_EQ(true, group->GetAllRendererFormRequests().empty());
563 for (auto compId: compIdPair.first) {
564 FormRequest formRequest;
565 formRequest.compId = compId;
566 requests.emplace_back(formRequest);
567 }
568 group->RecoverRenderer(requests, requests.size());
569 EXPECT_EQ(true, group->GetAllRendererFormRequests().empty());
570 group->RecoverRenderer(requests, requests.size() - 1);
571 EXPECT_EQ(2, group->GetAllRendererFormRequests().size());
572 compIdPair = group->GetOrderedAndCurrentCompIds();
573 EXPECT_EQ(compId2, compIdPair.second);
574 GTEST_LOG_(INFO) << "FormRenderGroupTest_023 end";
575 }
576 }