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 ee2950237e..36cc0ed439 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 @@ -23,7 +23,9 @@ #include "ability_loader.h" #include "ability_manager_client.h" #include "ability_thread.h" +#include "free_install_observer_stub.h" #include "iability_callback.h" +#include "ipc_object_stub.h" #include "mock_context.h" #include "mock_lifecycle_observer.h" #include "mock_serviceability_manager_service.h" @@ -41,6 +43,7 @@ using namespace OHOS::AbilityRuntime; namespace { std::string TEST_LABEL = "testLabel"; OHOS::sptr g_mockAbilityMs = nullptr; +const std::string FLAG_AUTH_READ_URI_PERMISSION = "ability.want.params.uriPermissionFlag"; } class MyAbilityCallback : public IAbilityCallback { @@ -256,6 +259,10 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_SetMissionContinueState_02 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) { EXPECT_EQ(ret, ERR_INVALID_VALUE); } + + wptr token(new IPCObjectStub()); + context_->SetWeakSessionToken(token); + context_->SetMissionContinueState(state); } /** @@ -616,7 +623,7 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_StartAbility_0500, Functio /** * @tc.number: Ability_Context_Impl_OnAbilityResult_0100 * @tc.name: OnAbilityResult - * @tc.desc: On Ability Result + * @tc.desc: On Ability Result GetAbilityRecordId CreateModuleResourceManager etc */ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OnAbilityResult_0100, Function | MediumTest | Level1) { @@ -626,6 +633,13 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OnAbilityResult_0100, Func context_->OnAbilityResult(code, resultCode, resultData); auto count = context_->resultCallbacks_.size(); EXPECT_EQ(count, 0); + int accountId = 100; + AAFwk::StartOptions startOpts; + RuntimeTask task; + context_->StartAbilityForResultWithAccount(resultData, accountId, startOpts, code, std::move(task)); + context_->OnAbilityResult(code, resultCode, resultData); + context_->GetAbilityRecordId(); + context_->CreateModuleResourceManager("moduleName", "bundleName"); } /** @@ -1309,6 +1323,20 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_StartAbilityByType_0100, F const std::string type = "share"; ErrCode ret = context_->StartAbilityByType(type, wantParams, nullptr); EXPECT_TRUE(ret == ERR_INVALID_VALUE); + + napi_env env; + std::shared_ptr uiCallback = std::make_shared(env); + std::shared_ptr abilityCallback = std::make_shared(); + context_->RegisterAbilityCallback(abilityCallback); + context_->StartAbilityByType(type, wantParams, uiCallback); + + AAFwk::Want want; + context_->IsUIExtensionExist(want); + int32_t sessionId = 200; + context_->EraseUIExtension(sessionId); + context_->CreateModalUIExtensionWithApp(want); + context_->SetRestoreEnabled(true); + context_->GetRestoreEnabled(); } /** @@ -1435,17 +1463,26 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_MoveAbilityToBackground_01 EXPECT_TRUE(ret == ERR_OK); } +void RequestDialogResultTaskCallBack(int32_t resultCode, const AAFwk::Want&) +{ +} + /** * @tc.number: Ability_Context_Impl_RestoreWindowStage_0100 * @tc.name: RestoreWindowStage - * @tc.desc: RestoreWindowStage + * @tc.desc: RestoreWindowStage RequestDialogService */ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_RestoreWindowStage_0100, Function | MediumTest | Level1) { napi_env env = nullptr; + napi_value value = nullptr; AAFwk::Want want; ErrCode ret = context_->RequestDialogService(env, want, nullptr); EXPECT_TRUE(ret == ERR_OK); + context_->RestoreWindowStage(env, value); + + RequestDialogResultTask task = RequestDialogResultTaskCallBack; + context_->RequestDialogService(want, std::move(task)); } /** @@ -1459,18 +1496,38 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_ReportDrawnCompleted_0100, EXPECT_TRUE(ret == ERR_OK); } +struct RequestResult2 { + int32_t resultCode {0}; + AAFwk::Want resultWant; + RequestDialogResultTask task; +}; + /** * @tc.number: Ability_Context_Impl_RequestDialogResultJSThreadWorker_0100 * @tc.name: RequestDialogResultJSThreadWorker - * @tc.desc: RequestDialogResultJSThreadWorker + * @tc.desc: RequestDialogResultJSThreadWorker, InsertResultCallbackTask etc */ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_RequestDialog_0100, Function | MediumTest | Level1) { int status = 1; context_->RequestDialogResultJSThreadWorker(nullptr, status); + uv_work_t* req = new uv_work_t; + RequestResult2* data = new RequestResult2; + RequestDialogResultTask task = RequestDialogResultTaskCallBack; + + data->task = task; + req->data = reinterpret_cast(data); + context_->RequestDialogResultJSThreadWorker(req, status); int32_t missionId = -1; ErrCode ret = context_->GetMissionId(missionId); EXPECT_FALSE(ret == ERR_OK); + int32_t missionId2 = 1; + EXPECT_EQ(context_->GetMissionId(missionId2), ERR_OK); + RuntimeTask task2 = [](const int32_t count, const Want& want, bool isInner) + { ; }; + int requestCode = 22; + context_->InsertResultCallbackTask(requestCode, std::move(task2)); + context_->RemoveResultCallbackTask(requestCode); } /** @@ -1561,6 +1618,20 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OpenAtomicService_0100, Fu context_->OpenAtomicService(want, options, requestCode, std::move(task)); EXPECT_TRUE(context_ != nullptr); } + +/** + * @tc.number: Ability_Context_Impl_OpenLink_0100 + * @tc.name: OpenLink + * @tc.desc: OpenLink GetRestoreEnabled SetRestoreEnabled AddFreeInstallObserver etc + */ +HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OpenLink_0100, Function | MediumTest | Level1) +{ + AAFwk::Want want; + int requestCode = 0; + context_->OpenLink(want, requestCode); + context_->SetRestoreEnabled(true); + EXPECT_EQ(context_->GetRestoreEnabled(), true); +} } // namespace AppExecFwk } // namespace OHOS diff --git a/tools/test/unittest/ability_delegator/test_observer_proxy_test.cpp b/tools/test/unittest/ability_delegator/test_observer_proxy_test.cpp index e5b28fe4b0..4296bed17f 100644 --- a/tools/test/unittest/ability_delegator/test_observer_proxy_test.cpp +++ b/tools/test/unittest/ability_delegator/test_observer_proxy_test.cpp @@ -39,6 +39,7 @@ using namespace OHOS::AAFwk; namespace { const std::string CMD = "ls -l"; +const std::string WRONGCMD = "kk -l"; } // namespace class TestObserverProxyTest : public ::testing::Test { @@ -115,10 +116,22 @@ public: std::u16string GetObjectDescriptor() const { - std::u16string descriptor = std::u16string(); - return descriptor; + if (bExchange) { + std::u16string descriptor = std::u16string(); + return descriptor; + } else { + std::u16string descriptor = std::u16string(u"testDescriptor"); + return descriptor; + } } + + static void SetExchange(bool bEx) { + bExchange = bEx; + } +private: + static bool bExchange; }; +bool MockIRemoteObject::bExchange = true; } /** @@ -130,8 +143,16 @@ HWTEST_F(TestObserverProxyTest, Test_Observer_Proxy_Test_0100, TestSize.Level1) { TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0100 start"); OHOS::sptr object = new OHOS::MockIRemoteObject(); + OHOS::MockIRemoteObject::SetExchange(true); TestObserverProxy testObserverProxy(object); EXPECT_EQ(testObserverProxy.ExecuteShellCommand(CMD.c_str(), 0).stdResult.size(), 0); + OHOS::MockIRemoteObject::SetExchange(false); + testObserverProxy.ExecuteShellCommand(CMD.c_str(), 0); + testObserverProxy.ExecuteShellCommand("", 0); + std::string cmdstr; + testObserverProxy.ExecuteShellCommand(cmdstr, 0); + testObserverProxy.ExecuteShellCommand(cmdstr, false); + testObserverProxy.ExecuteShellCommand(WRONGCMD.c_str(), 0); TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0100 end"); } @@ -145,8 +166,13 @@ HWTEST_F(TestObserverProxyTest, Test_Observer_Proxy_Test_0200, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0200 start"); OHOS::sptr object = new OHOS::MockIRemoteObject(); ASSERT_NE(object, nullptr); + OHOS::MockIRemoteObject::SetExchange(true); TestObserverProxy testObserverProxy(object); testObserverProxy.TestStatus(CMD.c_str(), 0); + OHOS::MockIRemoteObject::SetExchange(false); + testObserverProxy.TestStatus(CMD.c_str(), 0); + testObserverProxy.TestStatus(CMD.c_str(), false); + testObserverProxy.TestStatus(WRONGCMD.c_str(), 0); TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0200 end"); } @@ -160,7 +186,12 @@ HWTEST_F(TestObserverProxyTest, Test_Observer_Proxy_Test_0300, TestSize.Level1) TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0300 start"); OHOS::sptr object = new OHOS::MockIRemoteObject(); ASSERT_NE(object, nullptr); + OHOS::MockIRemoteObject::SetExchange(true); TestObserverProxy testObserverProxy(object); testObserverProxy.TestFinished(CMD.c_str(), 0); + OHOS::MockIRemoteObject::SetExchange(false); + testObserverProxy.TestFinished(CMD.c_str(), 0); + testObserverProxy.TestFinished(CMD.c_str(), false); + testObserverProxy.TestFinished(WRONGCMD.c_str(), 0); TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0300 end"); -} \ No newline at end of file +}