diff --git a/frameworks/native/backup_ext/BUILD.gn b/frameworks/native/backup_ext/BUILD.gn index ab24d367b6976f64b6e645514493d0c98b7cc6ed..6c5b10fd21bcd21549c14e8f553e10bae6ee2972 100644 --- a/frameworks/native/backup_ext/BUILD.gn +++ b/frameworks/native/backup_ext/BUILD.gn @@ -65,8 +65,6 @@ ohos_shared_library("backup_extension_ability_native") { "ability_runtime:abilitykit_native", "ability_runtime:app_context", "ability_runtime:appkit_native", - "ability_runtime:extensionkit_native", - "ability_runtime:napi_common", "ability_runtime:runtime", "access_token:libaccesstoken_sdk", "bundle_framework:appexecfwk_core", diff --git a/services/backup_sa/BUILD.gn b/services/backup_sa/BUILD.gn index 21b78cac54a155c8a4adf4ea2f63b8250d0b7591..6425090912e4cfb837673e77f7e456e9abd16da7 100644 --- a/services/backup_sa/BUILD.gn +++ b/services/backup_sa/BUILD.gn @@ -64,7 +64,6 @@ ohos_shared_library("backup_sa") { external_deps = [ "ability_base:want", - "ability_runtime:ability_connect_callback_stub", "ability_runtime:ability_manager", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", diff --git a/services/backup_sa/include/module_ipc/service.h b/services/backup_sa/include/module_ipc/service.h index dc0a3c458aab52c5cd45bf76b30d7477a9d72482..b333457a43a716fdb353bb89533d6f39ea1c5e91 100644 --- a/services/backup_sa/include/module_ipc/service.h +++ b/services/backup_sa/include/module_ipc/service.h @@ -442,6 +442,7 @@ private: void NotifyCallerCurAppIncrementDone(ErrCode errCode, const std::string &callerName); void SetWant(AAFwk::Want &want, const BundleName &bundleName, const BConstants::ExtensionAction &action); + /** * @brief GetBackupInfo 任务执行 * diff --git a/services/backup_sa/src/module_ipc/service_incremental.cpp b/services/backup_sa/src/module_ipc/service_incremental.cpp index d69b35f3a8dc74146795a71919202024a6ff643b..ae0358d81eea743e994159a7c90d40f162da1a86 100644 --- a/services/backup_sa/src/module_ipc/service_incremental.cpp +++ b/services/backup_sa/src/module_ipc/service_incremental.cpp @@ -313,7 +313,10 @@ ErrCode Service::AppendBundlesIncrementalBackupSession(const std::vectorIncreaseSessionCnt(__PRETTY_FUNCTION__); // BundleMgrAdapter::GetBundleInfos可能耗时 VerifyCaller(IServiceReverse::Scenario::BACKUP); - vector bundleNames = GetBundleNameByDetails(bundlesToBackup); + vector bundleNames {}; + for (auto &bundle : bundlesToBackup) { + bundleNames.emplace_back(bundle.bundleName); + } std::vector bundleNamesOnly; std::map isClearDataFlags; std::map> bundleNameDetailMap = @@ -514,6 +517,7 @@ ErrCode Service::GetIncrementalFileHandle(const std::string &bundleName, const s { HITRACE_METER_NAME(HITRACE_TAG_FILEMANAGEMENT, __PRETTY_FUNCTION__); try { + HILOGI("Begin get incrementalFileHandle"); VerifyCaller(IServiceReverse::Scenario::RESTORE); auto action = session_->GetServiceSchedAction(bundleName); if (action == BConstants::ServiceSchedAction::RUNNING) { diff --git a/tests/mock/module_external/bms_adapter_mock.cpp b/tests/mock/module_external/bms_adapter_mock.cpp index f8e51de9817010a22b168b6a14b098e5b36d28ee..08ca46bf806fe8f43a2d7d85b8b5f3e224c9a1e2 100644 --- a/tests/mock/module_external/bms_adapter_mock.cpp +++ b/tests/mock/module_external/bms_adapter_mock.cpp @@ -32,8 +32,8 @@ vector BundleMgrAdapter::GetBundleInfos(const vecto { vector bundleInfos; bundleInfos.emplace_back( - BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, {}, {}, 0, 0, true, false, - "com.example.app2backup"}); + BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, 0, "", 0, 0, true, false, + "", "", "", ""}); return bundleInfos; } @@ -47,8 +47,8 @@ vector BundleMgrAdapter::GetBundleInfosForIncrement { vector bundleInfos; bundleInfos.emplace_back( - BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, {}, {}, 0, 0, true, false, - "com.example.app2backup"}); + BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, 0, "", 0, 0, true, false, + "", "", "", ""}); return bundleInfos; } @@ -57,17 +57,18 @@ vector BundleMgrAdapter::GetBundleInfosForIncrement { vector bundleInfos; bundleInfos.emplace_back( - BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, {}, {}, 0, 0, true, false, - "com.example.app2backup"}); + BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, 0, "", 0, 0, true, false, + "", "", "", ""}); return bundleInfos; } + vector BundleMgrAdapter::GetFullBundleInfos(int32_t userId) { vector bundleInfos; bundleInfos.emplace_back( - BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, {}, {}, 0, 0, true, false, - "com.example.app2backup"}); + BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, 0, "", 0, 0, true, false, + "", "", "", ""}); return bundleInfos; } @@ -86,8 +87,8 @@ vector BundleMgrAdapter::GetBundleInfosForAppend( { vector bundleInfos; bundleInfos.emplace_back( - BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, {}, {}, 0, 0, true, false, - "com.example.app2backup"}); + BJsonEntityCaps::BundleInfo {"com.example.app2backup", 0, 0, "", 0, 0, true, false, + "", "", "", ""}); return bundleInfos; } } // namespace OHOS::FileManagement::Backup diff --git a/tests/mock/napi/src/napi_mock.cpp b/tests/mock/napi/src/napi_mock.cpp index 6d8e8fdf4640d898afccc14ee0e2f132b4709162..5b672ce665a256f232ce8cfa4b2bb3360c68aa84 100644 --- a/tests/mock/napi/src/napi_mock.cpp +++ b/tests/mock/napi/src/napi_mock.cpp @@ -18,12 +18,6 @@ int uv_queue_work(uv_loop_t* loop, uv_work_t* req, uv_work_cb work_cb, uv_after_work_cb after_work_cb) { - if (work_cb) { - work_cb(req); - } - if (after_work_cb) { - after_work_cb(req, 0); - } return OHOS::FileManagement::Backup::Napi::napi->uv_queue_work(loop, req, work_cb, after_work_cb); } diff --git a/tests/unittests/backup_ext/ext_backup_js_test.cpp b/tests/unittests/backup_ext/ext_backup_js_test.cpp index 80a9aee6e1b2c2a8259843f3b03a9815ca7085ef..aa453316a67552482df2fab1f9357c9da936ffd1 100644 --- a/tests/unittests/backup_ext/ext_backup_js_test.cpp +++ b/tests/unittests/backup_ext/ext_backup_js_test.cpp @@ -38,6 +38,7 @@ namespace OHOS::FileManagement::Backup { using namespace std; using namespace testing; +const int ARG_INDEX_FIRST = 1; const int ARG_INDEX_SECOND = 2; const int ARG_INDEX_FOURTH = 4; const int ARG_INDEX_FIFTH = 5; @@ -783,11 +784,18 @@ HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_ExportJsContext_0100, testing::ext:: extBackupJs->ExportJsContext(); EXPECT_TRUE(extBackupJs->jsObj_ == nullptr); + extBackupJs->jsObj_ = make_unique(); + auto refMock = static_cast(extBackupJs->jsObj_.get()); EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); - extBackupJs->jsObj_ = unique_ptr(); + EXPECT_CALL(*refMock, GetNapiValue()).WillOnce(Return(nullptr)); extBackupJs->ExportJsContext(); - EXPECT_TRUE(true); - extBackupJs->jsObj_ = nullptr; + EXPECT_TRUE(extBackupJs->jsObj_ != nullptr); + + int value = 0; + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*refMock, GetNapiValue()).WillOnce(Return(reinterpret_cast(&value))); + extBackupJs->ExportJsContext(); + EXPECT_TRUE(extBackupJs->jsObj_ != nullptr); } catch (...) { EXPECT_TRUE(false); GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by ExportJsContext."; @@ -813,16 +821,18 @@ HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJsMethod_0100, testing::ext::Tes auto ret = extBackupJs->CallJsMethod("", *jsRuntime, nullptr, nullptr, nullptr); EXPECT_EQ(ret, EINVAL); - EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(Return(1)); - EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); ret = extBackupJs->CallJsMethod("", *jsRuntime, nullptr, nullptr, nullptr); EXPECT_EQ(ret, EINVAL); EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); - EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(DoAll(WithArgs<1, 3>(Invoke( + [](uv_work_t* req, uv_after_work_cb after_work_cb) { + after_work_cb(req, 0); + })), Return(0))); EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); ret = extBackupJs->CallJsMethod("", *jsRuntime, nullptr, nullptr, nullptr); EXPECT_EQ(ret, ERR_OK); @@ -832,4 +842,618 @@ HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJsMethod_0100, testing::ext::Tes } GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJsMethod_0100"; } + +/** + * @tc.number: SUB_backup_ext_js_DoCallJsMethod_0100 + * @tc.name: SUB_backup_ext_js_DoCallJsMethod_0100 + * @tc.desc: 测试 DoCallJsMethod 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_DoCallJsMethod_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_DoCallJsMethod_0100"; + try { + string funcName = ""; + InputArgsParser argParserIn = {}; + ResultValueParser retParserIn = {}; + auto param = make_shared(funcName, nullptr, nullptr, argParserIn, retParserIn); + auto ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + + param->jsRuntime = jsRuntime.get(); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); + ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + + int scope = 0; + param->argParser = [](napi_env, std::vector &){ return false; }; + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce( + DoAll(SetArgPointee(reinterpret_cast(&scope)), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + + auto ref = make_shared(); + param->argParser = [](napi_env, std::vector &){ return true; }; + param->jsObj = ref.get(); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce( + DoAll(SetArgPointee(reinterpret_cast(&scope)), Return(napi_ok))); + EXPECT_CALL(*ref, GetNapiValue()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by DoCallJsMethod."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_DoCallJsMethod_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_DoCallJsMethod_0200 + * @tc.name: SUB_backup_ext_js_DoCallJsMethod_0200 + * @tc.desc: 测试 DoCallJsMethod 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_DoCallJsMethod_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_DoCallJsMethod_0200"; + try { + string funcName = ""; + InputArgsParser argParserIn = {}; + ResultValueParser retParserIn = {}; + auto param = make_shared(funcName, nullptr, nullptr, argParserIn, retParserIn); + auto ref = make_shared(); + param->argParser = nullptr; + param->retParser = nullptr; + param->jsObj = ref.get(); + + int scope = 0; + napi_value value = nullptr; + param->jsRuntime = jsRuntime.get(); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce( + DoAll(SetArgPointee(reinterpret_cast(&scope)), Return(napi_ok))); + EXPECT_CALL(*ref, GetNapiValue()).WillOnce(Return(reinterpret_cast(&value))); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + auto ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce( + DoAll(SetArgPointee(reinterpret_cast(&scope)), Return(napi_ok))); + EXPECT_CALL(*ref, GetNapiValue()).WillOnce(Return(reinterpret_cast(&value))); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + + param->retParser = [](napi_env, napi_value){ return false; }; + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce( + DoAll(SetArgPointee(reinterpret_cast(&scope)), Return(napi_ok))); + EXPECT_CALL(*ref, GetNapiValue()).WillOnce(Return(reinterpret_cast(&value))); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_call_function(_, _, _, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_escape_handle(_, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by DoCallJsMethod."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_DoCallJsMethod_0200"; +} + +/** + * @tc.number: SUB_backup_ext_js_DoCallJsMethod_0300 + * @tc.name: SUB_backup_ext_js_DoCallJsMethod_0300 + * @tc.desc: 测试 DoCallJsMethod 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_DoCallJsMethod_0300, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_DoCallJsMethod_0300"; + try { + string funcName = ""; + InputArgsParser argParserIn = {}; + ResultValueParser retParserIn = {}; + auto param = make_shared(funcName, nullptr, nullptr, argParserIn, retParserIn); + auto ref = make_shared(); + param->argParser = nullptr; + param->retParser = nullptr; + param->jsObj = ref.get(); + + int scope = 0; + napi_value value = nullptr; + param->jsRuntime = jsRuntime.get(); + param->retParser = [](napi_env, napi_value){ return true; }; + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce( + DoAll(SetArgPointee(reinterpret_cast(&scope)), Return(napi_ok))); + EXPECT_CALL(*ref, GetNapiValue()).WillOnce(Return(reinterpret_cast(&value))); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_call_function(_, _, _, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_escape_handle(_, _, _, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + auto ret = DoCallJsMethod(param.get()); + EXPECT_EQ(ret, ERR_OK); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by DoCallJsMethod."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_DoCallJsMethod_0300"; +} + +/** + * @tc.number: SUB_backup_ext_js_InvokeAppExtMethod_0100 + * @tc.name: SUB_backup_ext_js_InvokeAppExtMethod_0100 + * @tc.desc: 测试 InvokeAppExtMethod 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_InvokeAppExtMethod_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_InvokeAppExtMethod_0100"; + try { + ErrCode errCode = BError(BError::Codes::OK); + string result = ""; + auto ret = extBackupJs->InvokeAppExtMethod(errCode, result); + EXPECT_EQ(ret, ERR_OK); + + result = "test"; + ret = extBackupJs->InvokeAppExtMethod(errCode, result); + EXPECT_EQ(ret, ERR_OK); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by InvokeAppExtMethod."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_InvokeAppExtMethod_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJsOnBackupEx_0100 + * @tc.name: SUB_backup_ext_js_CallJsOnBackupEx_0100 + * @tc.desc: 测试 CallJsOnBackupEx 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJsOnBackupEx_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJsOnBackupEx_0100"; + try { + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto ret = extBackupJs->CallJsOnBackupEx(); + EXPECT_EQ(ret, EINVAL); + + extBackupJs->callbackInfoEx_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_value_string_utf8(_, _, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJsOnBackupEx(); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_get_and_clear_last_exception(_, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJsOnBackupEx(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJsOnBackupEx."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJsOnBackupEx_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJsOnBackupEx_0200 + * @tc.name: SUB_backup_ext_js_CallJsOnBackupEx_0200 + * @tc.desc: 测试 CallJsOnBackupEx 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJsOnBackupEx_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJsOnBackupEx_0200"; + try { + extBackupJs->callbackInfoEx_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_promise(_, _, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + int value = 0; + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, reinterpret_cast(&value)); + return -1; + }))); + auto ret = extBackupJs->CallJsOnBackupEx(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJsOnBackupEx."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJsOnBackupEx_0200"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJsOnBackup_0100 + * @tc.name: SUB_backup_ext_js_CallJsOnBackup_0100 + * @tc.desc: 测试 CallJsOnBackup 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJsOnBackup_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJsOnBackup_0100"; + try { + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto ret = extBackupJs->CallJsOnBackup(); + EXPECT_EQ(ret, EINVAL); + + extBackupJs->callbackInfo_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJsOnBackup(); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_get_and_clear_last_exception(_, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJsOnBackup(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJsOnBackup."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJsOnBackup_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJsOnBackup_0200 + * @tc.name: SUB_backup_ext_js_CallJsOnBackup_0200 + * @tc.desc: 测试 CallJsOnBackup 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJsOnBackup_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJsOnBackup_0200"; + try { + extBackupJs->callbackInfo_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_promise(_, _, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + int value = 0; + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, reinterpret_cast(&value)); + return -1; + }))); + auto ret = extBackupJs->CallJsOnBackup(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJsOnBackup."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJsOnBackup_0200"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJSRestoreEx_0100 + * @tc.name: SUB_backup_ext_js_CallJSRestoreEx_0100 + * @tc.desc: 测试 CallJSRestoreEx 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJSRestoreEx_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJSRestoreEx_0100"; + try { + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto ret = extBackupJs->CallJSRestoreEx(); + EXPECT_EQ(ret, EINVAL); + + extBackupJs->callbackInfoEx_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_value_string_utf8(_, _, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJSRestoreEx(); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_get_and_clear_last_exception(_, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJSRestoreEx(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJSRestoreEx."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJSRestoreEx_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJSRestoreEx_0200 + * @tc.name: SUB_backup_ext_js_CallJSRestoreEx_0200 + * @tc.desc: 测试 CallJSRestoreEx 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJSRestoreEx_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJSRestoreEx_0200"; + try { + extBackupJs->callbackInfoEx_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_promise(_, _, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + int value = 0; + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, reinterpret_cast(&value)); + return -1; + }))); + auto ret = extBackupJs->CallJSRestoreEx(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJSRestoreEx."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJSRestoreEx_0200"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJSRestore_0100 + * @tc.name: SUB_backup_ext_js_CallJSRestore_0100 + * @tc.desc: 测试 CallJSRestore 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJSRestore_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJSRestore_0100"; + try { + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto ret = extBackupJs->CallJSRestore(); + EXPECT_EQ(ret, EINVAL); + + extBackupJs->callbackInfo_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJSRestore(); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_get_and_clear_last_exception(_, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->CallJSRestore(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJSRestore."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJSRestore_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_CallJSRestore_0200 + * @tc.name: SUB_backup_ext_js_CallJSRestore_0200 + * @tc.desc: 测试 CallJSRestore 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_CallJSRestore_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_CallJSRestore_0200"; + try { + extBackupJs->callbackInfo_ = std::make_shared([](ErrCode, std::string){}); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_promise(_, _, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + int value = 0; + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, reinterpret_cast(&value)); + return -1; + }))); + auto ret = extBackupJs->CallJSRestore(); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by CallJSRestore."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_CallJSRestore_0200"; +} + +/** + * @tc.number: SUB_backup_ext_js_GetBackupInfo_0100 + * @tc.name: SUB_backup_ext_js_GetBackupInfo_0100 + * @tc.desc: 测试 GetBackupInfo 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_GetBackupInfo_0100, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_GetBackupInfo_0100"; + try { + extBackupJs->jsObj_ = make_unique(); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto ret = extBackupJs->GetBackupInfo([](ErrCode, std::string){}); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_value_string_utf8(_, _, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + ret = extBackupJs->GetBackupInfo([](ErrCode, std::string){}); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by GetBackupInfo."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_GetBackupInfo_0100"; +} + +/** + * @tc.number: SUB_backup_ext_js_GetBackupInfo_0200 + * @tc.name: SUB_backup_ext_js_GetBackupInfo_0200 + * @tc.desc: 测试 GetBackupInfo 各个分支成功与失败 + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 1 + * @tc.require: issuesIAFBOS + */ +HWTEST_F(ExtBackupJsTest, SUB_backup_ext_js_GetBackupInfo_0200, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "ExtBackupJsTest-begin SUB_backup_ext_js_GetBackupInfo_0200"; + try { + extBackupJs->jsObj_ = make_unique(); + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_value_string_utf8(_, _, _, _, _)).WillOnce(Return(napi_ok)) + .WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, nullptr); + return -1; + }))); + auto ret = extBackupJs->GetBackupInfo([](ErrCode, std::string){}); + EXPECT_EQ(ret, EINVAL); + + EXPECT_CALL(*napiMock, napi_is_exception_pending(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*extBackupMock, GetNapiEnv()).WillOnce(Return(nullptr)).WillOnce(Return(nullptr)); + EXPECT_CALL(*napiMock, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_is_promise(_, _, _)) + .WillOnce(DoAll(SetArgPointee(true), Return(napi_ok))); + EXPECT_CALL(*napiMock, napi_open_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_close_handle_scope(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*napiMock, napi_get_named_property(_, _, _, _)).WillOnce(Return(napi_invalid_arg)); + EXPECT_CALL(*napiMock, uv_queue_work(_, _, _, _)).WillOnce(WithArgs<1>(Invoke([](uv_work_t* work) { + int value = 0; + CallJsParam *param = reinterpret_cast(work->data); + param->retParser(nullptr, reinterpret_cast(&value)); + return -1; + }))); + ret = extBackupJs->GetBackupInfo([](ErrCode, std::string){}); + EXPECT_EQ(ret, EINVAL); + } catch (...) { + EXPECT_TRUE(false); + GTEST_LOG_(INFO) << "ExtBackupJsTest-an exception occurred by GetBackupInfo."; + } + GTEST_LOG_(INFO) << "ExtBackupJsTest-end SUB_backup_ext_js_GetBackupInfo_0200"; +} } // namespace OHOS::FileManagement::Backup \ No newline at end of file diff --git a/tests/unittests/backup_sa/module_ipc/service_throw_test.cpp b/tests/unittests/backup_sa/module_ipc/service_throw_test.cpp index 031be7b9afbed02d9a3cd58352296ebe6e040ac7..45729864b1af196cf96006b30f74fa8579911d9c 100644 --- a/tests/unittests/backup_sa/module_ipc/service_throw_test.cpp +++ b/tests/unittests/backup_sa/module_ipc/service_throw_test.cpp @@ -408,14 +408,12 @@ HWTEST_F(ServiceThrowTest, SUB_Service_throw_AppDone_0100, testing::ext::TestSiz EXPECT_CALL(*sessionMock, VerifyBundleName(_)).WillOnce(Invoke([]() { throw BError(BError::Codes::EXT_THROW_EXCEPTION); })); - EXPECT_CALL(*sessionMock, IsOnAllBundlesFinished()).WillOnce(Return(false)); auto ret = service->AppDone(0); EXPECT_EQ(ret, BError(BError::Codes::EXT_THROW_EXCEPTION).GetCode()); EXPECT_CALL(*sessionMock, VerifyBundleName(_)).WillOnce(Invoke([]() { throw runtime_error("运行时错误"); })); - EXPECT_CALL(*sessionMock, IsOnAllBundlesFinished()).WillOnce(Return(false)); ret = service->AppDone(0); EXPECT_EQ(ret, EPERM); @@ -607,6 +605,9 @@ HWTEST_F(ServiceThrowTest, SUB_Service_throw_ExtConnectFailed_0100, testing::ext EXPECT_CALL(*sessionMock, GetScenario()).WillOnce(Invoke([]() { throw BError(BError::Codes::EXT_THROW_EXCEPTION); return IServiceReverse::Scenario::UNDEFINED; + })).WillOnce(Invoke([]() { + throw BError(BError::Codes::EXT_THROW_EXCEPTION); + return IServiceReverse::Scenario::UNDEFINED; })); service->ExtConnectFailed(bundleName, 0); EXPECT_TRUE(true); @@ -614,6 +615,9 @@ HWTEST_F(ServiceThrowTest, SUB_Service_throw_ExtConnectFailed_0100, testing::ext EXPECT_CALL(*sessionMock, GetScenario()).WillOnce(Invoke([]() { throw runtime_error("运行时错误"); return IServiceReverse::Scenario::UNDEFINED; + })).WillOnce(Invoke([]() { + throw runtime_error("运行时错误"); + return IServiceReverse::Scenario::UNDEFINED; })); service->ExtConnectFailed(bundleName, 0); EXPECT_TRUE(true); @@ -621,6 +625,9 @@ HWTEST_F(ServiceThrowTest, SUB_Service_throw_ExtConnectFailed_0100, testing::ext EXPECT_CALL(*sessionMock, GetScenario()).WillOnce(Invoke([]() { throw "未知错误"; return IServiceReverse::Scenario::UNDEFINED; + })).WillOnce(Invoke([]() { + throw "未知错误"; + return IServiceReverse::Scenario::UNDEFINED; })); service->ExtConnectFailed(bundleName, 0); EXPECT_TRUE(true); @@ -716,9 +723,8 @@ HWTEST_F(ServiceThrowTest, SUB_Service_throw_GetBackupInfo_0100, testing::ext::T EXPECT_NE(service, nullptr); BundleName bundleName; string result; - EXPECT_CALL(*sessionMock, GetImpl()).WillOnce(Invoke([]() { + EXPECT_CALL(*sessionMock, IncreaseSessionCnt(_)).WillOnce(Invoke([]() { throw "未知错误"; - return SvcSessionManager::Impl(); })); EXPECT_CALL(*sessionMock, DecreaseSessionCnt(_)).WillOnce(Return()); auto ret = service->GetBackupInfo(bundleName, result);