• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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