1 /*
2 * Copyright (c) 2022-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 <gtest/gtest.h>
17 #include <gtest/hwext/gtest-multithread.h>
18 #include <gmock/gmock.h>
19
20 #define private public
21 #define protected public
22 #include "js_ui_service_extension.h"
23 #include "ui_service_extension_module_loader.h"
24 #include "js_ui_service_extension_context.cpp"
25 #undef private
26 #undef protected
27
28 #include "js_runtime_lite.h"
29 #include "mock_ability_token.h"
30 #include "ability_handler.h"
31 #include "ohos_application.h"
32 #include "runtime.h"
33 #include "ui_service_extension_connection_constants.h"
34 #include "ui_service_host_stub.h"
35
36 using namespace testing::ext;
37
38 namespace OHOS {
39 namespace AbilityRuntime {
40
41 class ServiceHostStubImpl : public AAFwk::UIServiceHostStub {
42 public:
SendData(OHOS::AAFwk::WantParams & data)43 virtual int32_t SendData(OHOS::AAFwk::WantParams &data)
44 {
45 return 0;
46 }
47 };
48
49 class MockWindow : public Rosen::Window {
50 public:
GetUIContent() const51 virtual Ace::UIContent* GetUIContent() const
52 {
53 return uiContent_.get();
54 }
55
56 std::unique_ptr<Ace::UIContent> uiContent_ = Ace::UIContent::Create(nullptr, nullptr);
57 };
58
59 class NativeReferenceMock : public NativeReference {
60 public:
61 NativeReferenceMock() = default;
62 virtual ~NativeReferenceMock() = default;
63 MOCK_METHOD0(Ref, uint32_t());
64 MOCK_METHOD0(Unref, uint32_t());
65 MOCK_METHOD0(Get, napi_value());
66 MOCK_METHOD0(GetData, void*());
operator napi_value()67 virtual operator napi_value() override
68 {
69 return reinterpret_cast<napi_value>(this);
70 }
71 MOCK_METHOD0(SetDeleteSelf, void());
72 MOCK_METHOD0(GetRefCount, uint32_t());
73 MOCK_METHOD0(GetFinalRun, bool());
GetNapiValue()74 napi_value GetNapiValue() override
75 {
76 napi_env env{nullptr};
77 napi_value object = AppExecFwk::CreateJSObject(env);
78 return object;
79 }
80 };
81
82 class JsUIServiceExtensionTest : public testing::Test {
83 public:
84 static void SetUpTestCase();
85 static void TearDownTestCase();
86 void SetUp() override;
87 void TearDown() override;
88
89 std::unique_ptr<Runtime> runtime;
90 std::shared_ptr<JsUIServiceExtension> jsUIServiceExtension;
91 };
92
SetUpTestCase()93 void JsUIServiceExtensionTest::SetUpTestCase()
94 {}
95
TearDownTestCase()96 void JsUIServiceExtensionTest::TearDownTestCase()
97 {}
98
SetUp()99 void JsUIServiceExtensionTest::SetUp()
100 {
101 Runtime::Options options;
102 runtime = Runtime::Create(options);
103 jsUIServiceExtension.reset(JsUIServiceExtension::Create(runtime));
104
105 std::shared_ptr<AppExecFwk::AbilityInfo> info = std::make_shared<AppExecFwk::AbilityInfo>();
106 info->name = "JsUIServiceExtensionTest";
107 auto record = std::make_shared<AppExecFwk::AbilityLocalRecord>(info, nullptr, nullptr, 0);
108 std::shared_ptr<AppExecFwk::OHOSApplication> application = std::make_shared<AppExecFwk::OHOSApplication>();
109 std::shared_ptr<AppExecFwk::AbilityHandler> handler = std::make_shared<AppExecFwk::AbilityHandler>(nullptr);
110 sptr<IRemoteObject> token = new AppExecFwk::MockAbilityToken();
111
112 AppExecFwk::Configuration configuration;
113 std::shared_ptr<AbilityRuntime::ContextImpl> contextImpl = std::make_shared<AbilityRuntime::ContextImpl>();
114 contextImpl->SetConfiguration(std::make_shared<AppExecFwk::Configuration>(configuration));
115 std::shared_ptr<AbilityRuntime::ApplicationContext> applicationContext =
116 AbilityRuntime::ApplicationContext::GetInstance();
117 applicationContext->AttachContextImpl(contextImpl);
118 application->SetApplicationContext(applicationContext);
119
120 jsUIServiceExtension->Init(record, application, handler, token);
121 }
122
TearDown()123 void JsUIServiceExtensionTest::TearDown()
124 {}
125
126 /**
127 * @tc.number: OnAddSystemAbility_0100
128 * @tc.name: OnAddSystemAbility
129 * @tc.desc: SystemAbilityStatusChangeListener OnAddSystemAbility
130 */
131 HWTEST_F(JsUIServiceExtensionTest, OnAddSystemAbility_0100, TestSize.Level1)
132 {
133 TAG_LOGI(AAFwkTag::TEST, "OnAddSystemAbility_0100 start");
134
135 constexpr int32_t WINDOW_MANAGER_SERVICE_ID = 4606;
136 std::string deviceId{"deviceId"};
137 JsUIServiceExtension::SystemAbilityStatusChangeListener systemAbilityStatusChangeListener{nullptr};
138 systemAbilityStatusChangeListener.OnAddSystemAbility(WINDOW_MANAGER_SERVICE_ID, deviceId);
139
140 constexpr int32_t UNAVAILABLE_SERVICE_ID = 0;
141 systemAbilityStatusChangeListener.OnAddSystemAbility(UNAVAILABLE_SERVICE_ID, deviceId);
142 EXPECT_TRUE(jsUIServiceExtension != nullptr);
143
144 TAG_LOGI(AAFwkTag::TEST, "OnAddSystemAbility_0100 end");
145 }
146
147 /**
148 * @tc.number: OnAddSystemAbility_0100
149 * @tc.name: BindContext
150 * @tc.desc: JsUIServiceExtension BindContext
151 */
152 HWTEST_F(JsUIServiceExtensionTest, BindContext_0100, TestSize.Level1)
153 {
154 TAG_LOGI(AAFwkTag::TEST, "BindContext_0100 start");
155
156 napi_env env{nullptr};
157 napi_value object{nullptr};
158
159 jsUIServiceExtension->BindContext(env, object);
160 EXPECT_TRUE(jsUIServiceExtension != nullptr);
161
162 TAG_LOGI(AAFwkTag::TEST, "BindContext_0100 end");
163 }
164
165 /**
166 * @tc.number: OnStartAndStop_0100
167 * @tc.name: OnStartAndStop
168 * @tc.desc: JsUIServiceExtension OnStart and OnStop
169 */
170 HWTEST_F(JsUIServiceExtensionTest, OnStartAndStop_0100, TestSize.Level1)
171 {
172 TAG_LOGI(AAFwkTag::TEST, "OnStartAndStop_0100 start");
173
174 AAFwk::Want want;
175
176 jsUIServiceExtension->OnStart(want);
177 jsUIServiceExtension->OnStop();
178 EXPECT_TRUE(jsUIServiceExtension != nullptr);
179
180 TAG_LOGI(AAFwkTag::TEST, "OnStartAndStop_0100 end");
181 }
182
183 /**
184 * @tc.number: OnCommand_0100
185 * @tc.name: OnCommand
186 * @tc.desc: JsUIServiceExtension OnCommand
187 */
188 HWTEST_F(JsUIServiceExtensionTest, OnCommand_0100, TestSize.Level1)
189 {
190 TAG_LOGI(AAFwkTag::TEST, "OnCommand_0100 start");
191
192 AAFwk::Want want;
193 bool restart{true};
194 int startId{0};
195 jsUIServiceExtension->firstRequest_ = true;
196 jsUIServiceExtension->OnCommand(want, restart, startId);
197 EXPECT_TRUE(jsUIServiceExtension != nullptr);
198
199 TAG_LOGI(AAFwkTag::TEST, "OnCommand_0100 end");
200 }
201
202 /**
203 * @tc.number: CallObjectMethod_0100
204 * @tc.name: CallObjectMethod
205 * @tc.desc: JsUIServiceExtension CallObjectMethod
206 */
207 HWTEST_F(JsUIServiceExtensionTest, CallObjectMethod_0100, TestSize.Level1)
208 {
209 TAG_LOGI(AAFwkTag::TEST, "CallObjectMethod_0100 start");
210
211 napi_value object{nullptr};
212 size_t argc{0};
213 jsUIServiceExtension->jsObj_ = nullptr;
214 auto result = jsUIServiceExtension->CallObjectMethod("Test", &object, argc);
215 EXPECT_EQ(result, nullptr);
216
217 TAG_LOGI(AAFwkTag::TEST, "CallObjectMethod_0100 end");
218 }
219
220 /**
221 * @tc.number: CallObjectMethod_0200
222 * @tc.name: CallObjectMethod
223 * @tc.desc: JsUIServiceExtension CallObjectMethod
224 */
225 HWTEST_F(JsUIServiceExtensionTest, CallObjectMethod_0200, TestSize.Level1)
226 {
227 TAG_LOGI(AAFwkTag::TEST, "CallObjectMethod_0200 start");
228
229 napi_value object{nullptr};
230 size_t argc{0};
231
232 jsUIServiceExtension->jsObj_ = std::make_unique<NativeReferenceMock>();
233 auto result = jsUIServiceExtension->CallObjectMethod("Test", &object, argc);
234 EXPECT_EQ(result, nullptr);
235
236 TAG_LOGI(AAFwkTag::TEST, "CallObjectMethod_0200 end");
237 }
238
239 /**
240 * @tc.number: GetSrcPath_0100
241 * @tc.name: GetSrcPath
242 * @tc.desc: JsUIServiceExtension GetSrcPath
243 */
244 HWTEST_F(JsUIServiceExtensionTest, GetSrcPath_0100, TestSize.Level1)
245 {
246 TAG_LOGI(AAFwkTag::TEST, "GetSrcPath_0100 start");
247
248 std::string srcPath{"Test.Test"};
249 jsUIServiceExtension->abilityInfo_->srcEntrance = "Test";
250 jsUIServiceExtension->GetSrcPath(srcPath);
251 EXPECT_TRUE(jsUIServiceExtension != nullptr);
252
253 TAG_LOGI(AAFwkTag::TEST, "GetSrcPath_0100 end");
254 }
255
256 /**
257 * @tc.number: OnConfigurationUpdated_0100
258 * @tc.name: OnConfigurationUpdated
259 * @tc.desc: JsUIServiceExtension OnConfigurationUpdated
260 */
261 HWTEST_F(JsUIServiceExtensionTest, OnConfigurationUpdated_0100, TestSize.Level1)
262 {
263 TAG_LOGI(AAFwkTag::TEST, "OnConfigurationUpdated_0100 start");
264
265 AppExecFwk::Configuration configuration;
266 jsUIServiceExtension->OnConfigurationUpdated(configuration);
267 EXPECT_TRUE(jsUIServiceExtension != nullptr);
268
269 TAG_LOGI(AAFwkTag::TEST, "OnConfigurationUpdated_0100 end");
270 }
271
272 /**
273 * @tc.number: OnConfigurationUpdated_0200
274 * @tc.name: OnConfigurationUpdated
275 * @tc.desc: JsUIServiceExtension OnConfigurationUpdated
276 */
277 HWTEST_F(JsUIServiceExtensionTest, OnConfigurationUpdated_0200, TestSize.Level1)
278 {
279 TAG_LOGI(AAFwkTag::TEST, "OnConfigurationUpdated_0200 start");
280
281 AppExecFwk::Configuration configuration;
282 jsUIServiceExtension->context_ = nullptr;
283 jsUIServiceExtension->OnConfigurationUpdated(configuration);
284 EXPECT_TRUE(jsUIServiceExtension != nullptr);
285
286 TAG_LOGI(AAFwkTag::TEST, "OnConfigurationUpdated_0200 end");
287 }
288
289 /**
290 * @tc.number: OnConfigurationUpdated_0300
291 * @tc.name: OnConfigurationUpdated
292 * @tc.desc: JsUIServiceExtension OnConfigurationUpdated
293 */
294 HWTEST_F(JsUIServiceExtensionTest, OnConfigurationUpdated_0300, TestSize.Level1)
295 {
296 TAG_LOGI(AAFwkTag::TEST, "OnConfigurationUpdated_0300 start");
297
298 AppExecFwk::Configuration configuration;
299 std::shared_ptr<AppExecFwk::Configuration> config{nullptr};
300 jsUIServiceExtension->context_->SetConfiguration(config);
301 jsUIServiceExtension->OnConfigurationUpdated(configuration);
302 EXPECT_TRUE(jsUIServiceExtension != nullptr);
303
304 TAG_LOGI(AAFwkTag::TEST, "OnConfigurationUpdated_0300 end");
305 }
306
307 /**
308 * @tc.number: ConfigurationUpdated_0100
309 * @tc.name: ConfigurationUpdated
310 * @tc.desc: JsUIServiceExtension ConfigurationUpdated
311 */
312 HWTEST_F(JsUIServiceExtensionTest, ConfigurationUpdated_0100, TestSize.Level1)
313 {
314 TAG_LOGI(AAFwkTag::TEST, "ConfigurationUpdated_0100 start");
315
316 jsUIServiceExtension->ConfigurationUpdated();
317 EXPECT_TRUE(jsUIServiceExtension != nullptr);
318
319 TAG_LOGI(AAFwkTag::TEST, "ConfigurationUpdated_0100 end");
320 }
321
322 /**
323 * @tc.number: OnCreateAndOnChangeAndOnDestroy_0100
324 * @tc.name: OnCreateAndOnChangeAndOnDestroy
325 * @tc.desc: JsUIServiceExtension OnCreate And OnChange And OnDestroy
326 */
327 HWTEST_F(JsUIServiceExtensionTest, OnCreateAndOnChangeAndOnDestroy_0100, TestSize.Level1)
328 {
329 TAG_LOGI(AAFwkTag::TEST, "OnCreate_0100 start");
330
331 Rosen::DisplayId displayId{0};
332
333 jsUIServiceExtension->OnCreate(displayId);
334 jsUIServiceExtension->OnChange(displayId);
335 jsUIServiceExtension->OnDestroy(displayId);
336 EXPECT_TRUE(jsUIServiceExtension != nullptr);
337
338 TAG_LOGI(AAFwkTag::TEST, "OnCreate_0100 end");
339 }
340
341 /**
342 * @tc.number: OnCreateAndOnChangeAndOnDestroy_0200
343 * @tc.name: OnCreateAndOnChangeAndOnDestroy
344 * @tc.desc: JsUIServiceExtension OnCreate And OnChange And OnDestroy
345 */
346 HWTEST_F(JsUIServiceExtensionTest, OnCreateAndOnChangeAndOnDestroy_0200, TestSize.Level1)
347 {
348 TAG_LOGI(AAFwkTag::TEST, "OnCreate_0200 start");
349
350 Rosen::DisplayId displayId{0};
351
352 jsUIServiceExtension->context_ = nullptr;
353 jsUIServiceExtension->OnCreate(displayId);
354 jsUIServiceExtension->OnChange(displayId);
355 jsUIServiceExtension->OnDestroy(displayId);
356 EXPECT_TRUE(jsUIServiceExtension != nullptr);
357
358 TAG_LOGI(AAFwkTag::TEST, "OnCreate_0200 end");
359 }
360
361 /**
362 * @tc.number: OnCreateAndOnChangeAndOnDestroy_0300
363 * @tc.name: OnCreateAndOnChangeAndOnDestroy
364 * @tc.desc: JsUIServiceExtension OnCreate And OnChange And OnDestroy
365 */
366 HWTEST_F(JsUIServiceExtensionTest, OnCreateAndOnChangeAndOnDestroy_0300, TestSize.Level1)
367 {
368 TAG_LOGI(AAFwkTag::TEST, "OnCreate_0300 start");
369
370 Rosen::DisplayId displayId{0};
371
372 std::shared_ptr<AppExecFwk::Configuration> config{nullptr};
373 jsUIServiceExtension->context_->SetConfiguration(config);
374 jsUIServiceExtension->OnCreate(displayId);
375 jsUIServiceExtension->OnChange(displayId);
376 jsUIServiceExtension->OnDestroy(displayId);
377 EXPECT_TRUE(jsUIServiceExtension != nullptr);
378
379 TAG_LOGI(AAFwkTag::TEST, "OnCreate_0300 end");
380 }
381
382 /**
383 * @tc.number: OnSceneWillCreated_0100
384 * @tc.name: OnSceneWillCreated
385 * @tc.desc: JsUIServiceExtension OnSceneWillCreated
386 */
387 HWTEST_F(JsUIServiceExtensionTest, OnSceneWillCreated_0100, TestSize.Level1)
388 {
389 TAG_LOGI(AAFwkTag::TEST, "OnSceneWillCreated_0100 start");
390
391 std::shared_ptr<Rosen::ExtensionWindowConfig> extensionWindowConfig
392 = std::make_shared<Rosen::ExtensionWindowConfig>();
393 jsUIServiceExtension->OnSceneWillCreated(extensionWindowConfig);
394 EXPECT_TRUE(jsUIServiceExtension != nullptr);
395
396 TAG_LOGI(AAFwkTag::TEST, "OnSceneWillCreated_0100 end");
397 }
398
399 /**
400 * @tc.number: OnSceneDidCreated_0100
401 * @tc.name: OnSceneDidCreated
402 * @tc.desc: JsUIServiceExtension OnSceneDidCreated
403 */
404 HWTEST_F(JsUIServiceExtensionTest, OnSceneDidCreated_0100, TestSize.Level1)
405 {
406 TAG_LOGI(AAFwkTag::TEST, "OnSceneDidCreated_0100 start");
407
408 sptr<Rosen::Window> window = new Rosen::Window();
409
410 jsUIServiceExtension->OnSceneDidCreated(window);
411 EXPECT_TRUE(jsUIServiceExtension != nullptr);
412
413 TAG_LOGI(AAFwkTag::TEST, "OnSceneDidCreated_0100 end");
414 }
415
416 /**
417 * @tc.number: OnConnect_0100
418 * @tc.name: OnConnect
419 * @tc.desc: JsUIServiceExtension OnConnect
420 */
421 HWTEST_F(JsUIServiceExtensionTest, OnConnect_0100, TestSize.Level1)
422 {
423 TAG_LOGI(AAFwkTag::TEST, "OnConnect_0100 start");
424 sptr<ServiceHostStubImpl> stub = sptr<ServiceHostStubImpl>::MakeSptr();
425 AAFwk::Want want;
426 want.SetParam(UISERVICEHOSTPROXY_KEY, stub->AsObject());
427 bool isAsyncCallback = false;
428 auto result = jsUIServiceExtension->OnConnect(want, nullptr, isAsyncCallback);
429 EXPECT_EQ(result, nullptr);
430 TAG_LOGI(AAFwkTag::TEST, "OnConnect_0100 end");
431 }
432
433 /**
434 * @tc.number: OnConnect_0200
435 * @tc.name: OnConnect
436 * @tc.desc: JsUIServiceExtension OnConnect
437 */
438 HWTEST_F(JsUIServiceExtensionTest, OnConnect_0200, TestSize.Level1)
439 {
440 TAG_LOGI(AAFwkTag::TEST, "OnConnect_0200 start");
441 sptr<ServiceHostStubImpl> stub = sptr<ServiceHostStubImpl>::MakeSptr();
442 AAFwk::Want want;
443 bool isAsyncCallback = false;
444 auto result = jsUIServiceExtension->OnConnect(want, nullptr, isAsyncCallback);
445 EXPECT_EQ(result, nullptr);
446 TAG_LOGI(AAFwkTag::TEST, "OnConnect_0200 end");
447 }
448
449 /**
450 * @tc.number: OnConnect_0300
451 * @tc.name: OnConnect
452 * @tc.desc: JsUIServiceExtension OnConnect
453 */
454 HWTEST_F(JsUIServiceExtensionTest, OnConnect_0300, TestSize.Level1)
455 {
456 TAG_LOGI(AAFwkTag::TEST, "OnConnect_0300 start");
457 sptr<ServiceHostStubImpl> stub = sptr<ServiceHostStubImpl>::MakeSptr();
458 AAFwk::Want want;
459 want.SetParam(UISERVICEHOSTPROXY_KEY, stub->AsObject());
460 bool isAsyncCallback = false;
461 auto result = jsUIServiceExtension->OnConnect(want, nullptr, isAsyncCallback);
462 EXPECT_EQ(result, nullptr);
463 result = jsUIServiceExtension->OnConnect(want, nullptr, isAsyncCallback);
464 EXPECT_NE(result, nullptr);
465 TAG_LOGI(AAFwkTag::TEST, "OnConnect_0300 end");
466 }
467
468 /**
469 * @tc.number: OnDisconnect_0100
470 * @tc.name: OnDisconnect
471 * @tc.desc: JsUIServiceExtension OnDisconnect
472 */
473 HWTEST_F(JsUIServiceExtensionTest, OnDisconnect_0100, TestSize.Level1)
474 {
475 TAG_LOGI(AAFwkTag::TEST, "OnDisconnect_0100 start");
476 AAFwk::Want want;
477 bool isAsyncCallback = false;
478
479 jsUIServiceExtension->OnDisconnect(want, nullptr, isAsyncCallback);
480 EXPECT_TRUE(jsUIServiceExtension != nullptr);
481
482 TAG_LOGI(AAFwkTag::TEST, "OnDisconnect_0100 end");
483 }
484
485 /**
486 * @tc.number: OnDisconnect_0200
487 * @tc.name: OnDisconnect
488 * @tc.desc: JsUIServiceExtension OnDisconnect
489 */
490 HWTEST_F(JsUIServiceExtensionTest, OnDisconnect_0200, TestSize.Level1)
491 {
492 TAG_LOGI(AAFwkTag::TEST, "OnDisconnect_0200 start");
493 sptr<ServiceHostStubImpl> stub = sptr<ServiceHostStubImpl>::MakeSptr();
494 AAFwk::Want want;
495 want.SetParam(UISERVICEHOSTPROXY_KEY, stub->AsObject());
496 bool isAsyncCallback = false;
497
498 jsUIServiceExtension->OnDisconnect(want, nullptr, isAsyncCallback);
499
500 auto result = jsUIServiceExtension->OnConnect(want, nullptr, isAsyncCallback);
501 EXPECT_EQ(result, nullptr);
502
503 jsUIServiceExtension->OnDisconnect(want, nullptr, isAsyncCallback);
504
505 TAG_LOGI(AAFwkTag::TEST, "OnDisconnect_0200 end");
506 }
507
508 /**
509 * @tc.number: HandleSendData_0100
510 * @tc.name: HandleSendData
511 * @tc.desc: JsUIServiceExtension HandleSendData
512 */
513 HWTEST_F(JsUIServiceExtensionTest, HandleSendData_0100, TestSize.Level1)
514 {
515 TAG_LOGI(AAFwkTag::TEST, "HandleSendData_0100 start");
516 sptr<ServiceHostStubImpl> stub = sptr<ServiceHostStubImpl>::MakeSptr();
517 AAFwk::Want want;
518 want.SetParam(UISERVICEHOSTPROXY_KEY, stub->AsObject());
519 bool isAsyncCallback = false;
520
521 jsUIServiceExtension->OnConnect(want, nullptr, isAsyncCallback);
522 EXPECT_TRUE(jsUIServiceExtension != nullptr);
523
524 AAFwk::WantParams params;
525 jsUIServiceExtension->HandleSendData(stub->AsObject(), params);
526
527 TAG_LOGI(AAFwkTag::TEST, "HandleSendData_0100 end");
528 }
529
530 /**
531 * @tc.number: HandleSendData_0200
532 * @tc.name: HandleSendData
533 * @tc.desc: JsUIServiceExtension HandleSendData
534 */
535 HWTEST_F(JsUIServiceExtensionTest, HandleSendData_0200, TestSize.Level1)
536 {
537 TAG_LOGI(AAFwkTag::TEST, "HandleSendData_0200 start");
538
539 AAFwk::WantParams params;
540 jsUIServiceExtension->HandleSendData(nullptr, params);
541 EXPECT_TRUE(jsUIServiceExtension != nullptr);
542
543 TAG_LOGI(AAFwkTag::TEST, "HandleSendData_0200 end");
544 }
545
546 /**
547 * @tc.number: HandleSendData_0300
548 * @tc.name: HandleSendData
549 * @tc.desc: JsUIServiceExtension HandleSendData
550 */
551 HWTEST_F(JsUIServiceExtensionTest, HandleSendData_0300, TestSize.Level1)
552 {
553 TAG_LOGI(AAFwkTag::TEST, "HandleSendData_0300 start");
554
555 sptr<ServiceHostStubImpl> stub = sptr<ServiceHostStubImpl>::MakeSptr();
556
557 AAFwk::WantParams params;
558 jsUIServiceExtension->HandleSendData(stub->AsObject(), params);
559 EXPECT_TRUE(jsUIServiceExtension != nullptr);
560
561 TAG_LOGI(AAFwkTag::TEST, "HandleSendData_0300 end");
562 }
563
564 /**
565 * @tc.number: Finalizer_0100
566 * @tc.name: Finalizer
567 * @tc.desc: JSUIServiceExtensionContext Finalizer
568 */
569 HWTEST_F(JsUIServiceExtensionTest, Finalizer_0100, TestSize.Level1)
570 {
571 TAG_LOGI(AAFwkTag::TEST, "Finalizer_0100 start");
572
573 napi_env env{nullptr};
574
575 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
576 std::make_shared<UIServiceExtensionContext>();
577 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
578
579 jsUIServiceExtensionContext.Finalizer(env, nullptr, nullptr);
580 EXPECT_TRUE(jsUIServiceExtension != nullptr);
581
582 TAG_LOGI(AAFwkTag::TEST, "Finalizer_0100 end");
583 }
584
585 /**
586 * @tc.number: TerminateSelf_0100
587 * @tc.name: TerminateSelf
588 * @tc.desc: JSUIServiceExtensionContext TerminateSelf
589 */
590 HWTEST_F(JsUIServiceExtensionTest, TerminateSelf_0100, TestSize.Level1)
591 {
592 TAG_LOGI(AAFwkTag::TEST, "TerminateSelf_0100 start");
593
594 napi_env env{nullptr};
595 napi_callback_info info{nullptr};
596
597 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
598 std::make_shared<UIServiceExtensionContext>();
599 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
600
601 jsUIServiceExtensionContext.TerminateSelf(env, info);
602 EXPECT_TRUE(jsUIServiceExtension != nullptr);
603
604 TAG_LOGI(AAFwkTag::TEST, "TerminateSelf_0100 end");
605 }
606
607 /**
608 * @tc.number: StartAbilityByType_0100
609 * @tc.name: StartAbilityByType
610 * @tc.desc: JSUIServiceExtensionContext StartAbilityByType
611 */
612 HWTEST_F(JsUIServiceExtensionTest, StartAbilityByType_0100, TestSize.Level1)
613 {
614 TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0100 start");
615
616 napi_env env{nullptr};
617 napi_callback_info info{nullptr};
618
619 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
620 std::make_shared<UIServiceExtensionContext>();
621 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
622
623 jsUIServiceExtensionContext.StartAbilityByType(env, info);
624 EXPECT_TRUE(jsUIServiceExtension != nullptr);
625
626 TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0100 end");
627 }
628
629 /**
630 * @tc.number: OnStartAbility_0100
631 * @tc.name: OnStartAbility
632 * @tc.desc: JSUIServiceExtensionContext OnStartAbility
633 */
634 HWTEST_F(JsUIServiceExtensionTest, OnStartAbility_0100, TestSize.Level1)
635 {
636 TAG_LOGI(AAFwkTag::TEST, "OnStartAbility_0100 start");
637
638 napi_env env{nullptr};
639 NapiCallbackInfo info{0};
640
641 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
642 std::make_shared<UIServiceExtensionContext>();
643 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
644
645 jsUIServiceExtensionContext.OnStartAbility(env, info);
646 EXPECT_TRUE(jsUIServiceExtension != nullptr);
647
648 TAG_LOGI(AAFwkTag::TEST, "OnStartAbility_0100 end");
649 }
650
651 /**
652 * @tc.number: OnStartAbility_0200
653 * @tc.name: OnStartAbility
654 * @tc.desc: JSUIServiceExtensionContext OnStartAbility
655 */
656 HWTEST_F(JsUIServiceExtensionTest, OnStartAbility_0200, TestSize.Level1)
657 {
658 TAG_LOGI(AAFwkTag::TEST, "OnStartAbility_0200 start");
659
660 napi_env env{nullptr};
661 NapiCallbackInfo info{2};
662
663 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
664 std::make_shared<UIServiceExtensionContext>();
665 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
666
667 jsUIServiceExtensionContext.OnStartAbility(env, info);
668 EXPECT_TRUE(jsUIServiceExtension != nullptr);
669
670 TAG_LOGI(AAFwkTag::TEST, "OnStartAbility_0200 end");
671 }
672
673 /**
674 * @tc.number: CheckStartAbilityInputParam_0100
675 * @tc.name: CheckStartAbilityInputParam
676 * @tc.desc: JSUIServiceExtensionContext CheckStartAbilityInputParam
677 */
678 HWTEST_F(JsUIServiceExtensionTest, CheckStartAbilityInputParam_0100, TestSize.Level1)
679 {
680 TAG_LOGI(AAFwkTag::TEST, "CheckStartAbilityInputParam_0100 start");
681
682 napi_env env{nullptr};
683 NapiCallbackInfo info{0};
684 AAFwk::Want want;
685 AAFwk::StartOptions startOptions;
686 size_t unwrapArgc{0};
687
688 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
689 std::make_shared<UIServiceExtensionContext>();
690 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
691
692 auto ret = jsUIServiceExtensionContext.CheckStartAbilityInputParam(env, info, want, startOptions, unwrapArgc);
693 EXPECT_EQ(ret, false);
694
695 TAG_LOGI(AAFwkTag::TEST, "CheckStartAbilityInputParam_0100 end");
696 }
697
698 /**
699 * @tc.number: CheckStartAbilityInputParam_0200
700 * @tc.name: CheckStartAbilityInputParam
701 * @tc.desc: JSUIServiceExtensionContext CheckStartAbilityInputParam
702 */
703 HWTEST_F(JsUIServiceExtensionTest, CheckStartAbilityInputParam_0200, TestSize.Level1)
704 {
705 TAG_LOGI(AAFwkTag::TEST, "CheckStartAbilityInputParam_0200 start");
706
707 napi_env env{nullptr};
708 NapiCallbackInfo info{1};
709 info.argv[0] = AppExecFwk::CreateJSObject(env);
710 AAFwk::Want want;
711 AAFwk::StartOptions startOptions;
712 size_t unwrapArgc{0};
713
714 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
715 std::make_shared<UIServiceExtensionContext>();
716 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
717
718 auto ret = jsUIServiceExtensionContext.CheckStartAbilityInputParam(env, info, want, startOptions, unwrapArgc);
719 EXPECT_EQ(ret, false);
720
721 TAG_LOGI(AAFwkTag::TEST, "CheckStartAbilityInputParam_0200 end");
722 }
723
724 /**
725 * @tc.number: OnTerminateSelf_0100
726 * @tc.name: OnTerminateSelf
727 * @tc.desc: JSUIServiceExtensionContext OnTerminateSelf
728 */
729 HWTEST_F(JsUIServiceExtensionTest, OnTerminateSelf_0100, TestSize.Level1)
730 {
731 TAG_LOGI(AAFwkTag::TEST, "OnTerminateSelf_0100 start");
732
733 napi_env env{nullptr};
734 NapiCallbackInfo info{0};
735
736 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
737 std::make_shared<UIServiceExtensionContext>();
738 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
739
740 jsUIServiceExtensionContext.OnTerminateSelf(env, info);
741 EXPECT_TRUE(jsUIServiceExtension != nullptr);
742
743 TAG_LOGI(AAFwkTag::TEST, "OnTerminateSelf_0100 end");
744 }
745
746 /**
747 * @tc.number: OnStartAbilityByType_0100
748 * @tc.name: OnStartAbilityByType
749 * @tc.desc: JSUIServiceExtensionContext OnStartAbilityByType
750 */
751 HWTEST_F(JsUIServiceExtensionTest, OnStartAbilityByType_0100, TestSize.Level1)
752 {
753 TAG_LOGI(AAFwkTag::TEST, "OnStartAbilityByType_0100 start");
754
755 napi_env env{nullptr};
756 NapiCallbackInfo info{0};
757
758 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
759 std::make_shared<UIServiceExtensionContext>();
760 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
761
762 jsUIServiceExtensionContext.OnStartAbilityByType(env, info);
763 EXPECT_TRUE(jsUIServiceExtension != nullptr);
764
765 TAG_LOGI(AAFwkTag::TEST, "OnStartAbilityByType_0100 end");
766 }
767
768 /**
769 * @tc.number: OnStartAbilityByType_0200
770 * @tc.name: OnStartAbilityByType
771 * @tc.desc: JSUIServiceExtensionContext OnStartAbilityByType
772 */
773 HWTEST_F(JsUIServiceExtensionTest, OnStartAbilityByType_0200, TestSize.Level1)
774 {
775 TAG_LOGI(AAFwkTag::TEST, "OnStartAbilityByType_0200 start");
776
777 OHOS::AbilityRuntime::Runtime::Options options;
778 std::shared_ptr<OHOS::JsEnv::JsEnvironment> jsEnv = nullptr;
779 auto err = JsRuntimeLite::GetInstance().CreateJsEnv(options, jsEnv);
780 EXPECT_EQ(err, napi_status::napi_ok);
781 napi_env env = reinterpret_cast<napi_env>(jsEnv->GetNativeEngine());
782
783 NapiCallbackInfo info{3};
784 string test{"TEST"};
785 info.argv[0] = AppExecFwk::WrapStringToJS(env, test);
786 info.argv[1] = AppExecFwk::WrapStringToJS(env, test);
787 info.argv[2] = AppExecFwk::CreateJSObject(env);
788
789 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
790 std::make_shared<UIServiceExtensionContext>();
791 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
792
793 jsUIServiceExtensionContext.OnStartAbilityByType(env, info);
794
795 JsRuntimeLite::GetInstance().RemoveJsEnv(reinterpret_cast<napi_env>(jsEnv->GetNativeEngine()));
796
797 TAG_LOGI(AAFwkTag::TEST, "OnStartAbilityByType_0200 end");
798 }
799
800 /**
801 * @tc.number: OnStartAbilityByType_0300
802 * @tc.name: OnStartAbilityByType
803 * @tc.desc: JSUIServiceExtensionContext OnStartAbilityByType
804 */
805 HWTEST_F(JsUIServiceExtensionTest, OnStartAbilityByType_0300, TestSize.Level1)
806 {
807 TAG_LOGI(AAFwkTag::TEST, "OnStartAbilityByType_0300 start");
808
809 OHOS::AbilityRuntime::Runtime::Options options;
810 std::shared_ptr<OHOS::JsEnv::JsEnvironment> jsEnv = nullptr;
811 auto err = JsRuntimeLite::GetInstance().CreateJsEnv(options, jsEnv);
812 EXPECT_EQ(err, napi_status::napi_ok);
813 napi_env env = reinterpret_cast<napi_env>(jsEnv->GetNativeEngine());
814
815 NapiCallbackInfo info{3};
816 string test{"TEST"};
817 info.argv[0] = AppExecFwk::WrapStringToJS(env, test);
818 info.argv[1] = AppExecFwk::CreateJSObject(env);
819 info.argv[2] = AppExecFwk::CreateJSObject(env);
820
821 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
822 std::make_shared<UIServiceExtensionContext>();
823 JSUIServiceExtensionContext jsUIServiceExtensionContext(uiServiceExtensionContext);
824
825 jsUIServiceExtensionContext.OnStartAbilityByType(env, info);
826
827 JsRuntimeLite::GetInstance().RemoveJsEnv(reinterpret_cast<napi_env>(jsEnv->GetNativeEngine()));
828
829 TAG_LOGI(AAFwkTag::TEST, "OnStartAbilityByType_0300 end");
830 }
831
832 /**
833 * @tc.number: CreateJsUIServiceExtensionContext_0100
834 * @tc.name: CreateJsUIServiceExtensionContext
835 * @tc.desc: CreateJsUIServiceExtensionContext
836 */
837 HWTEST_F(JsUIServiceExtensionTest, CreateJsUIServiceExtensionContext_0100, TestSize.Level1)
838 {
839 TAG_LOGI(AAFwkTag::TEST, "CreateJsUIServiceExtensionContext_0100 start");
840
841 napi_env env{nullptr};
842 CreateJsUIServiceExtensionContext(env, nullptr);
843
844 std::shared_ptr<UIServiceExtensionContext> uiServiceExtensionContext =
845 std::make_shared<UIServiceExtensionContext>();
846 CreateJsUIServiceExtensionContext(env, uiServiceExtensionContext);
847 EXPECT_TRUE(uiServiceExtensionContext != nullptr);
848
849 TAG_LOGI(AAFwkTag::TEST, "CreateJsUIServiceExtensionContext_0100 end");
850 }
851
852 /**
853 * @tc.number: ListenWMS_0100
854 * @tc.name: ListenWMS
855 * @tc.desc: ListenWMS
856 */
857 HWTEST_F(JsUIServiceExtensionTest, ListenWMS_0100, TestSize.Level1)
858 {
859 TAG_LOGI(AAFwkTag::TEST, "ListenWMS_0100 start");
860
861 jsUIServiceExtension->ListenWMS();
862
863 EXPECT_NE(jsUIServiceExtension->displayListener_, nullptr);
864
865 TAG_LOGI(AAFwkTag::TEST, "ListenWMS_0100 end");
866 }
867
868 /**
869 * @tc.number: AbilityWindowConfigTransition_0100
870 * @tc.name: AbilityWindowConfigTransition
871 * @tc.desc: AbilityWindowConfigTransition
872 */
873 HWTEST_F(JsUIServiceExtensionTest, AbilityWindowConfigTransition_0100, TestSize.Level1)
874 {
875 TAG_LOGI(AAFwkTag::TEST, "AbilityWindowConfigTransition_0100 start");
876
877 sptr<Rosen::WindowOption> option = new Rosen::WindowOption();
878 uint32_t windowId = 1;
879
880 jsUIServiceExtension->AbilityWindowConfigTransition(option, windowId);
881
882 EXPECT_NE(jsUIServiceExtension->context_, nullptr);
883
884 TAG_LOGI(AAFwkTag::TEST, "AbilityWindowConfigTransition_0100 end");
885 }
886
887 /**
888 * @tc.number: OnSendData_0100
889 * @tc.name: OnSendData
890 * @tc.desc: OnSendData
891 */
892 HWTEST_F(JsUIServiceExtensionTest, OnSendData_0100, TestSize.Level1)
893 {
894 TAG_LOGI(AAFwkTag::TEST, "OnSendData_0100 start");
895
896 sptr<IRemoteObject> token = new AppExecFwk::MockAbilityToken();
897 AAFwk::WantParams params;
898 int32_t ret = jsUIServiceExtension->
899 OnSendData(token, params);
900 EXPECT_EQ(ret, 0);
901
902 TAG_LOGI(AAFwkTag::TEST, "OnSendData_0100 end");
903 }
904 } // namespace AbilityRuntime
905 } // namespace OHOS
906