From f06f20e8d5a9c19fb45f3ef84a37a6483c6e9d49 Mon Sep 17 00:00:00 2001 From: zhang_hao_zheng Date: Tue, 29 Jul 2025 20:24:24 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E9=80=8F=E4=BC=A0extensionType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhang_hao_zheng Change-Id: I3c2d40701e3e7d1fc998492fcf6b044b2de96349 --- .../ability_runtime/ability_context_impl.cpp | 25 +++++++++-------- .../ability_runtime/connection_manager.cpp | 8 +++--- .../ability_runtime/js_ability_context.cpp | 27 +++---------------- .../ability/ability_runtime/ability_context.h | 12 +++++---- .../ability_runtime/ability_context_impl.h | 1 - .../ability_context_test.cpp | 10 ++++--- 6 files changed, 34 insertions(+), 49 deletions(-) diff --git a/frameworks/native/ability/ability_runtime/ability_context_impl.cpp b/frameworks/native/ability/ability_runtime/ability_context_impl.cpp index 6960dec3ddf..29ad5f852bc 100644 --- a/frameworks/native/ability/ability_runtime/ability_context_impl.cpp +++ b/frameworks/native/ability/ability_runtime/ability_context_impl.cpp @@ -1364,38 +1364,41 @@ void AbilityContextImpl::OnRequestFailure(const std::string &requestId, const Ap TAG_LOGE(AAFwkTag::CONTEXT, "requestId=%{public}s not exist", requestId.c_str()); } - -ErrCode AbilityContextImpl::StartAppServiceExtensionAbility(const AAFwk::Want& want) +ErrCode AbilityContextImpl::StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) { - TAG_LOGI(AAFwkTag::CONTEXT, "StartAppServiceExtensionAbility, name:%{public}s %{public}s", + TAG_LOGI(AAFwkTag::CONTEXT, "StartExtensionAbilityWithExtensionType, name:%{public}s %{public}s", want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str()); ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StartExtensionAbility( - want, token_, DEFAULT_INVAL_VALUE, AppExecFwk::ExtensionAbilityType::APP_SERVICE); + want, token_, DEFAULT_INVAL_VALUE, extensionType); if (err != ERR_OK) { TAG_LOGE(AAFwkTag::CONTEXT, "failed:%{public}d", err); } return err; } -ErrCode AbilityContextImpl::StopAppServiceExtensionAbility(const AAFwk::Want& want) + +ErrCode AbilityContextImpl::StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) { - TAG_LOGD(AAFwkTag::CONTEXT, "StopAppServiceExtensionAbility, name:%{public}s %{public}s", + TAG_LOGD(AAFwkTag::CONTEXT, "StopExtensionAbilityWithExtensionType, name:%{public}s %{public}s", want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str()); ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StopExtensionAbility( - want, token_, DEFAULT_INVAL_VALUE, AppExecFwk::ExtensionAbilityType::APP_SERVICE); + want, token_, DEFAULT_INVAL_VALUE, extensionType); if (err != ERR_OK) { TAG_LOGE(AAFwkTag::CONTEXT, "failed %{public}d", err); } return err; } -ErrCode AbilityContextImpl::ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) +ErrCode AbilityContextImpl::ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) { HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__); - TAG_LOGI(AAFwkTag::CONTEXT, "ConnectAppServiceExtensionAbility, caller:%{public}s, target:%{public}s", + TAG_LOGI(AAFwkTag::CONTEXT, "ConnectExtensionAbilityWithExtensionType, caller:%{public}s, target:%{public}s", abilityInfo_ == nullptr ? "" : abilityInfo_->name.c_str(), want.GetElement().GetAbilityName().c_str()); - ErrCode ret = ConnectionManager::GetInstance().ConnectAppServiceExtensionAbility(token_, want, connectCallback); + ErrCode ret = ConnectionManager::GetInstance() + .ConnectExtensionAbilityWithExtensionType(token_, want, connectCallback, extensionType); if (ret != ERR_OK) { TAG_LOGE(AAFwkTag::CONTEXT, "failed %{public}d", ret); } diff --git a/frameworks/native/ability/ability_runtime/connection_manager.cpp b/frameworks/native/ability/ability_runtime/connection_manager.cpp index 27a7b227a86..de6b2b77735 100644 --- a/frameworks/native/ability/ability_runtime/connection_manager.cpp +++ b/frameworks/native/ability/ability_runtime/connection_manager.cpp @@ -55,11 +55,11 @@ ErrCode ConnectionManager::ConnectUIServiceExtensionAbility(const sptr& connectCaller, - const AAFwk::Want& want, const sptr& connectCallback) +ErrCode ConnectionManager::ConnectExtensionAbilityWithExtensionType(const sptr& connectCaller, + const AAFwk::Want& want, const sptr& connectCallback, + AppExecFwk::ExtensionAbilityType extensionType) { - return ConnectAbilityInner(connectCaller, want, AAFwk::DEFAULT_INVAL_VALUE, connectCallback, - AppExecFwk::ExtensionAbilityType::APP_SERVICE); + return ConnectAbilityInner(connectCaller, want, AAFwk::DEFAULT_INVAL_VALUE, connectCallback, extensionType); } ErrCode ConnectionManager::ConnectAbilityInner(const sptr& connectCaller, const AAFwk::Want& want, diff --git a/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp b/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp index a29858a7de4..3aed179c408 100644 --- a/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp +++ b/frameworks/native/ability/native/ability_runtime/js_ability_context.cpp @@ -1432,14 +1432,7 @@ napi_value JsAbilityContext::StartExtensionAbilityCommon(napi_env env, NapiCallb *innerErrCode = static_cast(AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); return; } - if (extensionType == AppExecFwk::ExtensionAbilityType::SERVICE) { - *innerErrCode = context->StartServiceExtensionAbility(want); - } else if (extensionType == AppExecFwk::ExtensionAbilityType::APP_SERVICE) { - *innerErrCode = context->StartAppServiceExtensionAbility(want); - } else { - TAG_LOGE(AAFwkTag::CONTEXT, "extensionType error, type: %{public}d", - static_cast(extensionType)); - } + *innerErrCode = context->StartExtensionAbilityWithExtensionType(want, extensionType); }; NapiAsyncTask::CompleteCallback complete = @@ -1536,14 +1529,7 @@ napi_value JsAbilityContext::StopExtensionAbilityCommon(napi_env env, NapiCallba *innerErrCode = static_cast(AbilityErrorCode::ERROR_CODE_INVALID_CONTEXT); return; } - if (extensionType == AppExecFwk::ExtensionAbilityType::SERVICE) { - *innerErrCode = context->StopServiceExtensionAbility(want); - } else if (extensionType == AppExecFwk::ExtensionAbilityType::APP_SERVICE) { - *innerErrCode = context->StopAppServiceExtensionAbility(want); - } else { - TAG_LOGE(AAFwkTag::CONTEXT, "extensionType error, type: %{public}d", - static_cast(extensionType)); - } + *innerErrCode = context->StopExtensionAbilityWithExtensionType(want, extensionType); }; NapiAsyncTask::CompleteCallback complete = [innerErrCode](napi_env env, NapiAsyncTask& task, int32_t status) { @@ -1759,14 +1745,7 @@ napi_value JsAbilityContext::ConnectExtensionAbilityCommon(napi_env env, NapiCal } TAG_LOGD(AAFwkTag::CONTEXT, "connectAbility: %{public}d, extensionType: type: %{public}d", static_cast(connectId), static_cast(extensionType)); - if (extensionType == AppExecFwk::ExtensionAbilityType::SERVICE) { - *innerErrCode = context->ConnectAbility(want, connection); - } else if (extensionType == AppExecFwk::ExtensionAbilityType::APP_SERVICE) { - *innerErrCode = context->ConnectAppServiceExtensionAbility(want, connection); - } else { - TAG_LOGE(AAFwkTag::CONTEXT, "extensionType error, type: %{public}d", - static_cast(extensionType)); - } + *innerErrCode = context->ConnectExtensionAbilityWithExtensionType(want, connection, extensionType); }; NapiAsyncTask::CompleteCallback complete = [connection, connectId, innerErrCode](napi_env env, NapiAsyncTask& task, int32_t status) { diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context.h b/interfaces/kits/native/ability/ability_runtime/ability_context.h index 8d72c890480..7bad62170b8 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context.h @@ -215,23 +215,25 @@ public: virtual ErrCode ConnectUIServiceExtensionAbility(const AAFwk::Want& want, const sptr& connectCallback) = 0; - virtual ErrCode StartAppServiceExtensionAbility(const AAFwk::Want &want) + virtual ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) { return 0; } - virtual ErrCode StopAppServiceExtensionAbility(const AAFwk::Want& want) + virtual ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) { return 0; } /** - * @brief Connects the current ability to an appService ability using the AbilityInfo.AbilityType.SERVICE template.f + * @brief Connects the current ability to an extension ability using the AbilityInfo.AbilityType.SERVICE template. * * @param want Indicates the want containing information about the ability to connect * @param connectCallback Indicates the callback object when the target ability is connected. * @return True means success and false means failure */ - virtual ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) + virtual ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) { return 0; } diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h index 67a53ea2d46..f3fa5e746a3 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h @@ -364,7 +364,6 @@ public: void OnRequestFailure(const std::string &requestId, const AppExecFwk::ElementName &element, const std::string &message) override; - ErrCode StartAppServiceExtensionAbility(const Want &want) override; ErrCode StopAppServiceExtensionAbility(const Want& want) override; ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, const sptr& connectCallback) override; diff --git a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp index fea179934a6..cf8809fdc48 100644 --- a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp +++ b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_test.cpp @@ -309,16 +309,18 @@ public: { return ERR_OK; } - virtual ErrCode StartAppServiceExtensionAbility(const AAFwk::Want &want) + virtual ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) { return ERR_OK; } - virtual ErrCode StopAppServiceExtensionAbility(const AAFwk::Want& want) + virtual ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) { return ERR_OK; } - virtual ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) + virtual ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) { return ERR_OK; } -- Gitee From afc53401f5d7926957c7711d49da210faa721be9 Mon Sep 17 00:00:00 2001 From: zhang_hao_zheng Date: Sat, 2 Aug 2025 14:55:17 +0800 Subject: [PATCH 2/5] fix error message Signed-off-by: zhang_hao_zheng Change-Id: Idecbdb447fd072450d5af784154a77b77031fef5 --- .../native/ability_business_error/ability_business_error.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp index d4918c94e3c..ae6916ad2c0 100644 --- a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp +++ b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp @@ -106,8 +106,9 @@ constexpr const char* ERROR_MSG_EXTENSION_START_ABILITY_CONTROLLED = constexpr const char* ERROR_MSG_NOT_HOOK = "Only DelegatorAbility is allowed to call this API, and only once."; constexpr const char* ERROR_MSG_FROM_WINDOW = "An error occurred during the interaction between the ability and window."; -constexpr const char* ERROR_TARGET_NOT_IN_APP_IDENTIFIER_ALLOW_LIST = "The target not in app identifier allow list."; -constexpr const char* ERROR_TARGET_NOT_STARTED = "The target has not been started yet."; +constexpr const char* ERROR_TARGET_NOT_IN_APP_IDENTIFIER_ALLOW_LIST = + "The caller is not in the appIdentifierAllowList of the target appliaction."; +constexpr const char* ERROR_TARGET_NOT_STARTED = "The target service has not been started yet."; constexpr const char* ERROR_MSG_CALLER_NOT_ATOMIC_SERVICE = "The caller is not an atomic service."; constexpr const char* ERROR_MSG_NOT_UI_ABILITY_CONTEXT = -- Gitee From bf18f4bbaa2310bfa550f15448f3e408b3811495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=8A=E5=B3=A5?= Date: Sat, 2 Aug 2025 07:11:29 +0000 Subject: [PATCH 3/5] update interfaces/kits/native/ability/ability_runtime/ability_context_impl.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张昊峥 --- .../ability/ability_runtime/ability_context_impl.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h index f3fa5e746a3..d789b7dd445 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h @@ -363,10 +363,13 @@ public: */ void OnRequestFailure(const std::string &requestId, const AppExecFwk::ElementName &element, const std::string &message) override; - - ErrCode StopAppServiceExtensionAbility(const Want& want) override; - ErrCode ConnectAppServiceExtensionAbility(const AAFwk::Want& want, - const sptr& connectCallback) override; + + ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, + AppExecFwk::ExtensionAbilityType extensionType) override; + ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, + AppExecFwk::ExtensionAbilityType extensionType) override; + ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType); ErrCode SetOnNewWantSkipScenarios(int32_t scenarios) override; private: -- Gitee From 261febc58b47f473419c5d908aa2866c682de6e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=8A=E5=B3=A5?= Date: Sat, 2 Aug 2025 07:13:15 +0000 Subject: [PATCH 4/5] update interfaces/kits/native/ability/ability_runtime/ability_context_impl.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张昊峥 --- .../kits/native/ability/ability_runtime/ability_context_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h index 2f7ca4a8569..cd9e29dccb3 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h @@ -363,7 +363,7 @@ public: */ void OnRequestFailure(const std::string &requestId, const AppExecFwk::ElementName &element, const std::string &message, int32_t resultCode = 0) override; - + ErrCode StartExtensionAbilityWithExtensionType(const AAFwk::Want &want, AppExecFwk::ExtensionAbilityType extensionType) override; ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, -- Gitee From 7c6b9ad45aa1c831c01eb77f63100af025f0a4a4 Mon Sep 17 00:00:00 2001 From: zhang_hao_zheng Date: Sat, 2 Aug 2025 15:59:16 +0800 Subject: [PATCH 5/5] fix build error Signed-off-by: zhang_hao_zheng Change-Id: Ie65d179a107845e61b328118a58624d83c60eda7 --- .../ability_runtime/ability_context_impl.h | 2 +- .../ability_runtime/connection_manager.h | 6 +- .../src/ability_manager_service.cpp | 4 + .../ability_extension_base_test.cpp | 86 +++++++------------ .../ability_context_impl_test.cpp | 24 +++--- 5 files changed, 52 insertions(+), 70 deletions(-) diff --git a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h index cd9e29dccb3..c5a1323ecae 100644 --- a/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h +++ b/interfaces/kits/native/ability/ability_runtime/ability_context_impl.h @@ -369,7 +369,7 @@ public: ErrCode StopExtensionAbilityWithExtensionType(const AAFwk::Want& want, AppExecFwk::ExtensionAbilityType extensionType) override; ErrCode ConnectExtensionAbilityWithExtensionType(const AAFwk::Want& want, - const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType); + const sptr& connectCallback, AppExecFwk::ExtensionAbilityType extensionType) override; ErrCode SetOnNewWantSkipScenarios(int32_t scenarios) override; ErrCode AddCompletionHandlerForAtomicService(const std::string &requestId, OnAtomicRequestSuccess onRequestSucc, diff --git a/interfaces/kits/native/ability/ability_runtime/connection_manager.h b/interfaces/kits/native/ability/ability_runtime/connection_manager.h index 438ea931bfa..e9945670c23 100644 --- a/interfaces/kits/native/ability/ability_runtime/connection_manager.h +++ b/interfaces/kits/native/ability/ability_runtime/connection_manager.h @@ -152,10 +152,12 @@ public: * @param connectCaller The connection caller. * @param connectReceiver The connection receiver. * @param connectCallback The connection callback. + * @param extensiontype The type of the extension ability. * @return Returns the result of connecting appService ability connection. */ - ErrCode ConnectAppServiceExtensionAbility(const sptr& connectCaller, - const AAFwk::Want& want, const sptr& connectCallback); + ErrCode ConnectExtensionAbilityWithExtensionType(const sptr& connectCaller, + const AAFwk::Want& want, const sptr& connectCallback, + AppExecFwk::ExtensionAbilityType extensiontype); /** * @brief disconnect ability connection. diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index d013717be00..f35af244e13 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -10705,6 +10705,10 @@ AAFwk::PermissionVerification::VerificationInfo AbilityManagerService::CreateVer int32_t AbilityManagerService::CheckCallAppServiceExtensionPermission(const AbilityRequest &abilityRequest, std::shared_ptr targetService, bool isFromConnect) { + int32_t result = CheckCallServiceExtensionPermission(abilityRequest); + if (result != ERR_OK) { + return result; + } if (AAFwk::PermissionVerification::GetInstance()->IsSACall()) { return ERR_OK; } diff --git a/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp b/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp index ed5ea24f72e..007cb2baac3 100644 --- a/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp +++ b/test/unittest/ability_extension_base_test/ability_extension_base_test.cpp @@ -251,40 +251,28 @@ HWTEST_F(AbilityExtensionBaseTest, OnExtensionAbilityRequestFailure_0100, TestSi { TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestFailure start"); + std::shared_ptr info = std::make_shared(); + auto record = std::make_shared(info, nullptr, nullptr, 0); + std::shared_ptr application = std::make_shared(); + std::shared_ptr handler = std::make_shared(nullptr); + sptr token = new AppExecFwk::MockAbilityToken(); + + std::shared_ptr contextImpl = std::make_shared(); + std::shared_ptr applicationContext = + AbilityRuntime::ApplicationContext::GetInstance(); + applicationContext->AttachContextImpl(contextImpl); + application->SetApplicationContext(applicationContext); + ExtensionBase extensionBase; + extensionBase.Init(record, application, handler, token); + std::string requestId = "test_request_id"; AppExecFwk::ElementName element; element.SetBundleName("com.example.test"); element.SetAbilityName("TestAbility"); - std::string message = "test error message"; - - // 使用派生类测试虚方法 - class TestExtensionBase : public ExtensionBase { - public: - void OnExtensionAbilityRequestFailure(const std::string &requestId, const AppExecFwk::ElementName &element, - const std::string &message, int32_t resultCode = 0) override - { - lastRequestId_ = requestId; - lastElement_ = element; - lastMessage_ = message; - called_ = true; - } - - std::string lastRequestId_; - AppExecFwk::ElementName lastElement_; - std::string lastMessage_; - bool called_ = false; - }; - - TestExtensionBase testExtension; - testExtension.OnExtensionAbilityRequestFailure(requestId, element, message); - - EXPECT_TRUE(testExtension.called_); - EXPECT_EQ(testExtension.lastRequestId_, requestId); - EXPECT_EQ(testExtension.lastElement_.GetBundleName(), element.GetBundleName()); - EXPECT_EQ(testExtension.lastElement_.GetAbilityName(), element.GetAbilityName()); - EXPECT_EQ(testExtension.lastMessage_, message); + std::string message = "test success message"; + extensionBase.OnExtensionAbilityRequestFailure(requestId, element, message, 0); TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestFailure end"); } @@ -296,41 +284,27 @@ HWTEST_F(AbilityExtensionBaseTest, OnExtensionAbilityRequestFailure_0100, TestSi HWTEST_F(AbilityExtensionBaseTest, OnExtensionAbilityRequestSuccess_0100, TestSize.Level1) { TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestSuccess start"); + std::shared_ptr info = std::make_shared(); + auto record = std::make_shared(info, nullptr, nullptr, 0); + std::shared_ptr application = std::make_shared(); + std::shared_ptr handler = std::make_shared(nullptr); + sptr token = new AppExecFwk::MockAbilityToken(); + + std::shared_ptr contextImpl = std::make_shared(); + std::shared_ptr applicationContext = + AbilityRuntime::ApplicationContext::GetInstance(); + applicationContext->AttachContextImpl(contextImpl); + application->SetApplicationContext(applicationContext); ExtensionBase extensionBase; + extensionBase.Init(record, application, handler, token); + std::string requestId = "test_request_id"; AppExecFwk::ElementName element; element.SetBundleName("com.example.test"); element.SetAbilityName("TestAbility"); std::string message = "test success message"; - - // 使用派生类测试虚方法 - class TestExtensionBase : public ExtensionBase { - public: - void OnExtensionAbilityRequestSuccess(const std::string &requestId, const AppExecFwk::ElementName &element, - const std::string &message) override - { - lastRequestId_ = requestId; - lastElement_ = element; - lastMessage_ = message; - called_ = true; - } - - std::string lastRequestId_; - AppExecFwk::ElementName lastElement_; - std::string lastMessage_; - bool called_ = false; - }; - - TestExtensionBase testExtension; - testExtension.OnExtensionAbilityRequestSuccess(requestId, element, message); - - EXPECT_TRUE(testExtension.called_); - EXPECT_EQ(testExtension.lastRequestId_, requestId); - EXPECT_EQ(testExtension.lastElement_.GetBundleName(), element.GetBundleName()); - EXPECT_EQ(testExtension.lastElement_.GetAbilityName(), element.GetAbilityName()); - EXPECT_EQ(testExtension.lastMessage_, message); - + extensionBase.OnExtensionAbilityRequestSuccess(requestId, element, message); TAG_LOGI(AAFwkTag::TEST, "OnExtensionAbilityRequestSuccess end"); } diff --git a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp index 26d9efb993d..487c6f02402 100644 --- a/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp +++ b/test/unittest/frameworks_kits_ability_ability_runtime_test/ability_context_impl_test.cpp @@ -2373,27 +2373,29 @@ HWTEST_F(AbilityContextImplTest, SetOnNewWantSkipScenariose_0100, Function | Med } /** - * @tc.number: Ability_Context_Impl_ConnectAppServiceExtensionAbility_0100 - * @tc.name: ConnectAppServiceExtensionAbility - * @tc.desc: Verify that function ConnectAppServiceExtensionAbility. + * @tc.number: Ability_Context_Impl_ConnectExtensionAbilityWithExtensionType_0100 + * @tc.name: ConnectExtensionAbilityWithExtensionType + * @tc.desc: Verify that function ConnectExtensionAbilityWithExtensionType. */ -HWTEST_F(AbilityContextImplTest, ConnectAppServiceExtensionAbility_0100, Function | MediumTest | Level1) +HWTEST_F(AbilityContextImplTest, ConnectExtensionAbilityWithExtensionType_0100, Function | MediumTest | Level1) { AAFwk::Want want; - bool ret = context_->ConnectAppServiceExtensionAbility(want, nullptr); - EXPECT_NE(ret, ERR_OK); + auto result = context_->ConnectExtensionAbilityWithExtensionType(want, nullptr, + AppExecFwk::ExtensionAbilityType::APP_SERVICE); + EXPECT_NE(result, ERR_OK); } /** - * @tc.number: Ability_Context_Impl_ConnectAppServiceExtensionAbility_0100 - * @tc.name: ConnectAppServiceExtensionAbility - * @tc.desc: Verify that function ConnectAppServiceExtensionAbility. + * @tc.number: Ability_Context_Impl_ConnectExtensionAbilityWithExtensionType_0100 + * @tc.name: ConnectExtensionAbilityWithExtensionType + * @tc.desc: Verify that function ConnectExtensionAbilityWithExtensionType. */ -HWTEST_F(AbilityContextImplTest, ConnectAppServiceExtensionAbility_0200, Function | MediumTest | Level1) +HWTEST_F(AbilityContextImplTest, ConnectExtensionAbilityWithExtensionType_0200, Function | MediumTest | Level1) { AAFwk::Want want; sptr connectCallback; - bool ret = context_->ConnectAppServiceExtensionAbility(want, connectCallback); + auto ret = context_->ConnectExtensionAbilityWithExtensionType(want, connectCallback, + AppExecFwk::ExtensionAbilityType::SERVICE); EXPECT_NE(ret, ERR_OK); } -- Gitee