diff --git a/test/unittest/ui_service_extension_test/BUILD.gn b/test/unittest/ui_service_extension_test/BUILD.gn index 76063aac01..e3d2853a15 100644 --- a/test/unittest/ui_service_extension_test/BUILD.gn +++ b/test/unittest/ui_service_extension_test/BUILD.gn @@ -18,11 +18,15 @@ import("//foundation/ability/ability_runtime/ability_runtime.gni") ohos_unittest("ui_service_extension_test") { module_out_path = "ability_runtime/extension" - sources = [ "ui_service_extension_test.cpp" ] + sources = [ + "${ability_runtime_path}/test/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.cpp", + "ui_service_extension_test.cpp", + ] cflags = [] include_dirs = [ + "${ability_runtime_path}/test/mock/frameworks_kits_ability_native_test/include", "${ability_runtime_test_path}/mock/services_appmgr_test/include", "${ability_runtime_path}/interfaces/kits/native/ability/native/ui_service_extension_ability", "${ability_runtime_path}/interfaces/inner_api/runtime/include", @@ -35,11 +39,13 @@ ohos_unittest("ui_service_extension_test") { deps = [ "${ability_runtime_innerkits_path}/ability_manager:ability_manager", "${ability_runtime_innerkits_path}/ability_manager:ability_start_options", + "${ability_runtime_native_path}/ability:ability_context_native", "${ability_runtime_native_path}/ability/native:abilitykit_native", "${ability_runtime_native_path}/ability/native:abilitykit_utils", "${ability_runtime_native_path}/ability/native:ui_service_extension", "${ability_runtime_native_path}/appkit:app_context", "${ability_runtime_native_path}/appkit:appkit_native", + "${ability_runtime_services_path}/abilitymgr:abilityms", "//third_party/googletest:gmock_main", "//third_party/googletest:gtest_main", ] diff --git a/test/unittest/ui_service_extension_test/ui_service_extension_test.cpp b/test/unittest/ui_service_extension_test/ui_service_extension_test.cpp index a942b3489e..6e2d041b43 100644 --- a/test/unittest/ui_service_extension_test/ui_service_extension_test.cpp +++ b/test/unittest/ui_service_extension_test/ui_service_extension_test.cpp @@ -20,10 +20,12 @@ #include "ui_service_extension.h" #include "ui_service_extension_module_loader.h" #include "ui_service_extension_context.h" +#include "ability_manager_client.h" #undef private #undef protected #include "mock_ability_token.h" +#include "mock_ability_manager_service.h" #include "ability_handler.h" #include "ohos_application.h" #include "runtime.h" @@ -33,6 +35,16 @@ using namespace OHOS::Rosen; namespace OHOS { namespace AbilityRuntime { +class MockWindow : public Rosen::Window { +public: + virtual Ace::UIContent* GetUIContent() const + { + return uiContent_.get(); + } + + std::unique_ptr uiContent_ = Ace::UIContent::Create(nullptr, nullptr); +}; + class UIServiceExtensionTest : public testing::Test { public: static void SetUpTestCase(); @@ -78,6 +90,7 @@ HWTEST_F(UIServiceExtensionTest, CreateAndInitContext_0100, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "CreateAndInitContext_0100 start"); Runtime::Options options; + options.lang = Runtime::Language::JS; auto runtime = Runtime::Create(options); auto uIServiceExtensionPtr = UIServiceExtension::Create(runtime); @@ -105,6 +118,7 @@ HWTEST_F(UIServiceExtensionTest, Init_0100, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "Init_0100 start"); Runtime::Options options; + options.lang = Runtime::Language::CJ; auto runtime = Runtime::Create(options); auto uIServiceExtensionPtr = UIServiceExtension::Create(runtime); @@ -133,6 +147,9 @@ HWTEST_F(UIServiceExtensionTest, StartAbility_0100, TestSize.Level1) AAFwk::Want want; AAFwk::StartOptions startOptions; + sptr porxyNew = new (std::nothrow) AAFwk::MockAbilityManagerService(); + AbilityManagerClient::GetInstance()->proxy_ = porxyNew; + UIServiceExtensionContext uiServiceExtensionContext; uiServiceExtensionContext.StartAbility(want, startOptions); @@ -179,6 +196,11 @@ HWTEST_F(UIServiceExtensionTest, GetUIContent_0100, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "GetUIContent_0100 start"); UIServiceExtensionContext uiServiceExtensionContext; + uiServiceExtensionContext.SetWindow(nullptr); + uiServiceExtensionContext.GetUIContent(); + + sptr window = new Rosen::Window(); + uiServiceExtensionContext.SetWindow(window); uiServiceExtensionContext.GetUIContent(); TAG_LOGI(AAFwkTag::TEST, "GetUIContent_0100 end"); @@ -195,7 +217,7 @@ HWTEST_F(UIServiceExtensionTest, StartAbilityByType_0100, TestSize.Level1) std::string type; AAFwk::WantParams wantParam; - std::shared_ptr uiExtensionCallbacks; + std::shared_ptr uiExtensionCallbacks{nullptr}; UIServiceExtensionContext uiServiceExtensionContext; uiServiceExtensionContext.StartAbilityByType(type, wantParam, uiExtensionCallbacks); @@ -203,6 +225,73 @@ HWTEST_F(UIServiceExtensionTest, StartAbilityByType_0100, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0100 end"); } +/** + * @tc.number: StartAbilityByType_0200 + * @tc.name: UIServiceExtension StartAbilityByType + * @tc.desc: UIServiceExtension StartAbilityByType. + */ +HWTEST_F(UIServiceExtensionTest, StartAbilityByType_0200, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0200 start"); + + std::string type; + AAFwk::WantParams wantParam; + napi_env env; + std::shared_ptr uiExtensionCallbacks = std::make_shared(env); + + UIServiceExtensionContext uiServiceExtensionContext; + uiServiceExtensionContext.SetWindow(nullptr); + uiServiceExtensionContext.StartAbilityByType(type, wantParam, uiExtensionCallbacks); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0200 end"); +} + +/** + * @tc.number: StartAbilityByType_0300 + * @tc.name: UIServiceExtension StartAbilityByType + * @tc.desc: UIServiceExtension StartAbilityByType. + */ +HWTEST_F(UIServiceExtensionTest, StartAbilityByType_0300, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0300 start"); + + std::string type; + AAFwk::WantParams wantParam; + napi_env env; + std::shared_ptr uiExtensionCallbacks = std::make_shared(env); + sptr window = new MockWindow(); + + UIServiceExtensionContext uiServiceExtensionContext; + uiServiceExtensionContext.SetWindow(window); + uiServiceExtensionContext.StartAbilityByType(type, wantParam, uiExtensionCallbacks); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0300 end"); +} + +/** + * @tc.number: StartAbilityByType_0400 + * @tc.name: UIServiceExtension StartAbilityByType + * @tc.desc: UIServiceExtension StartAbilityByType. + */ +HWTEST_F(UIServiceExtensionTest, StartAbilityByType_0400, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0400 start"); + + std::string type; + AAFwk::WantParams wantParam; + const std::string FLAG_AUTH_READ_URI_PERMISSION = "ability.want.params.uriPermissionFlag"; + wantParam.SetParam(FLAG_AUTH_READ_URI_PERMISSION, 0); + napi_env env; + std::shared_ptr uiExtensionCallbacks = std::make_shared(env); + sptr window = new MockWindow(); + + UIServiceExtensionContext uiServiceExtensionContext; + uiServiceExtensionContext.SetWindow(window); + uiServiceExtensionContext.StartAbilityByType(type, wantParam, uiExtensionCallbacks); + + TAG_LOGI(AAFwkTag::TEST, "StartAbilityByType_0400 end"); +} + /** * @tc.number: GetWindowOption_0100 * @tc.name: UIServiceExtension GetWindowOption @@ -215,7 +304,10 @@ HWTEST_F(UIServiceExtensionTest, GetWindowOption_0100, TestSize.Level1) AAFwk::Want want; std::shared_ptr extensionWindowConfig = std::make_shared(); - int32_t hostWindowId{0}; + extensionWindowConfig->windowAttribute = Rosen::ExtensionWindowAttribute::SUB_WINDOW; + extensionWindowConfig->subWindowOptions.isModal = true; + extensionWindowConfig->subWindowOptions.isTopmost = true; + int32_t hostWindowId{1}; Runtime::Options options; auto runtime = Runtime::Create(options); @@ -225,6 +317,79 @@ HWTEST_F(UIServiceExtensionTest, GetWindowOption_0100, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0100 end"); } +/** + * @tc.number: GetWindowOption_0200 + * @tc.name: UIServiceExtension GetWindowOption + * @tc.desc: UIServiceExtension GetWindowOption. + */ +HWTEST_F(UIServiceExtensionTest, GetWindowOption_0200, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0200 start"); + + AAFwk::Want want; + std::shared_ptr extensionWindowConfig + = std::make_shared(); + extensionWindowConfig->windowAttribute = Rosen::ExtensionWindowAttribute::SUB_WINDOW; + extensionWindowConfig->subWindowOptions.isModal = false; + extensionWindowConfig->subWindowOptions.isTopmost = true; + int32_t hostWindowId{0}; + + Runtime::Options options; + auto runtime = Runtime::Create(options); + auto uIServiceExtensionPtr = UIServiceExtension::Create(runtime); + uIServiceExtensionPtr->GetWindowOption(want, extensionWindowConfig, hostWindowId); + + TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0200 end"); +} + +/** + * @tc.number: GetWindowOption_0300 + * @tc.name: UIServiceExtension GetWindowOption + * @tc.desc: UIServiceExtension GetWindowOption. + */ +HWTEST_F(UIServiceExtensionTest, GetWindowOption_0300, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0300 start"); + + AAFwk::Want want; + std::shared_ptr extensionWindowConfig + = std::make_shared(); + extensionWindowConfig->windowAttribute = Rosen::ExtensionWindowAttribute::SUB_WINDOW; + extensionWindowConfig->subWindowOptions.isModal = true; + extensionWindowConfig->subWindowOptions.isTopmost = false; + int32_t hostWindowId{0}; + + Runtime::Options options; + auto runtime = Runtime::Create(options); + auto uIServiceExtensionPtr = UIServiceExtension::Create(runtime); + uIServiceExtensionPtr->GetWindowOption(want, extensionWindowConfig, hostWindowId); + + TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0300 end"); +} + +/** + * @tc.number: GetWindowOption_0400 + * @tc.name: UIServiceExtension GetWindowOption + * @tc.desc: UIServiceExtension GetWindowOption. + */ +HWTEST_F(UIServiceExtensionTest, GetWindowOption_0400, TestSize.Level1) +{ + TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0400 start"); + + AAFwk::Want want; + std::shared_ptr extensionWindowConfig + = std::make_shared(); + extensionWindowConfig->windowAttribute = Rosen::ExtensionWindowAttribute::SYSTEM_WINDOW; + int32_t hostWindowId{0}; + + Runtime::Options options; + auto runtime = Runtime::Create(options); + auto uIServiceExtensionPtr = UIServiceExtension::Create(runtime); + uIServiceExtensionPtr->GetWindowOption(want, extensionWindowConfig, hostWindowId); + + TAG_LOGI(AAFwkTag::TEST, "GetWindowOption_0400 end"); +} + /** * @tc.number: SetWindow_0100 * @tc.name: UIServiceExtension SetWindow