diff --git a/test/unittest/js_file_access_ext_ability_test.cpp b/test/unittest/js_file_access_ext_ability_test.cpp index a49204ddb0a8548960253c6f1a2404d0020e4a86..cdd78643d8b406cddd5438181c41c5d03678b3cf 100644 --- a/test/unittest/js_file_access_ext_ability_test.cpp +++ b/test/unittest/js_file_access_ext_ability_test.cpp @@ -470,4 +470,655 @@ HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_OpenFile_0003, t } GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_OpenFile_0003"; } + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_CreateFile_0000 + * @tc.name: js_file_access_ext_ability_CreateFile_0000 + * @tc.desc: Test function of CreateFile interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_CreateFile_0000"; + try { + Uri parent(""); + string displayName(""); + Uri newFile(""); + + // 模拟调用CallJsMethod失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto result = ability->CreateFile(parent, displayName, newFile); + EXPECT_EQ(result, EINVAL); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_CreateFile_0000"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_CreateFile_0001 + * @tc.name: js_file_access_ext_ability_CreateFile_0001 + * @tc.desc: Test function of CreateFile interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_CreateFile_0001"; + try { + napi_value rslt; + Uri parent(""); + string displayName(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取nativeParent为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)).WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + auto result = ability->CreateFile(parent, displayName, newFile); + EXPECT_EQ(result, E_GETRESULT); + + // 模拟获取nativeDisplayName为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)); + result = ability->CreateFile(parent, displayName, newFile); + EXPECT_EQ(result, E_GETRESULT); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_CreateFile_0001"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_CreateFile_0002 + * @tc.name: js_file_access_ext_ability_CreateFile_0002 + * @tc.desc: Test function of CreateFile interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_CreateFile_0002"; + try { + napi_value rslt; + Uri parent(""); + string displayName(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取value->code失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); + auto result = ability->CreateFile(parent, displayName, newFile); + EXPECT_EQ(result, E_IPCS); + + // 模拟获取value->data为-1 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)) + .WillOnce(Return(napi_ok)); + result = ability->CreateFile(parent, displayName, newFile); + EXPECT_EQ(result, E_GETRESULT); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_CreateFile_0002"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_CreateFile_0003 + * @tc.name: js_file_access_ext_ability_CreateFile_0003 + * @tc.desc: Test function of CreateFile interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_CreateFile_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_CreateFile_0003"; + try { + napi_value rslt; + string path = "test"; + Uri parent(""); + string displayName(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟CreateFile调用成功 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)) + .WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<4>(path.length()), Return(napi_ok))) + .WillOnce(DoAll(SetArrayArgument<2>(path.begin(), path.end()), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); + auto result = ability->CreateFile(parent, displayName, newFile); + EXPECT_EQ(result, ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_CreateFile_0003"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Mkdir_0000 + * @tc.name: js_file_access_ext_ability_Mkdir_0000 + * @tc.desc: Test function of Mkdir interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Mkdir_0000"; + try { + Uri parent(""); + string displayName(""); + Uri newFile(""); + + // 模拟调用CallJsMethod失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto result = ability->Mkdir(parent, displayName, newFile); + EXPECT_EQ(result, EINVAL); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Mkdir_0000"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Mkdir_0001 + * @tc.name: js_file_access_ext_ability_Mkdir_0001 + * @tc.desc: Test function of Mkdir interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Mkdir_0001"; + try { + napi_value rslt; + Uri parent(""); + string displayName(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取nativeParent为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)).WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + auto result = ability->Mkdir(parent, displayName, newFile); + EXPECT_EQ(result, E_GETRESULT); + + // 模拟获取nativeDisplayName为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)); + result = ability->Mkdir(parent, displayName, newFile); + EXPECT_EQ(result, E_GETRESULT); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Mkdir_0001"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Mkdir_0002 + * @tc.name: js_file_access_ext_ability_Mkdir_0002 + * @tc.desc: Test function of Mkdir interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Mkdir_0002"; + try { + napi_value rslt; + Uri parent(""); + string displayName(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取value->code失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); + auto result = ability->Mkdir(parent, displayName, newFile); + EXPECT_EQ(result, E_IPCS); + + // 模拟获取value->data为-1 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); + result = ability->Mkdir(parent, displayName, newFile); + EXPECT_EQ(result, E_GETRESULT); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Mkdir_0002"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Mkdir_0003 + * @tc.name: js_file_access_ext_ability_Mkdir_0003 + * @tc.desc: Test function of Mkdir interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Mkdir_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Mkdir_0003"; + try { + napi_value rslt; + string path = "test"; + Uri parent(""); + string displayName(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟Mkdir调用成功 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)) + .WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<4>(path.length()), Return(napi_ok))) + .WillOnce(DoAll(SetArrayArgument<2>(path.begin(), path.end()), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); + auto result = ability->Mkdir(parent, displayName, newFile); + EXPECT_EQ(result, ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Mkdir_0003"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Delete_0000 + * @tc.name: js_file_access_ext_ability_Delete_0000 + * @tc.desc: Test function of Delete interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Delete_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Delete_0000"; + try { + Uri sourceFile(""); + + // 模拟调用CallJsMethod失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto result = ability->Delete(sourceFile); + EXPECT_EQ(result, EINVAL); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Delete_0000"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Delete_0001 + * @tc.name: js_file_access_ext_ability_Delete_0001 + * @tc.desc: Test function of Delete interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Delete_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Delete_0001"; + try { + napi_value rslt; + Uri sourceFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取nativeUri为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)).WillOnce(Return(napi_ok)); + auto result = ability->Delete(sourceFile); + EXPECT_EQ(result, ERR_OK); + + // 模拟获取nativeDisplayName为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_invalid_arg))); + result = ability->Delete(sourceFile); + EXPECT_EQ(result, E_IPCS); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Delete_0001"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Delete_0002 + * @tc.name: js_file_access_ext_ability_Delete_0002 + * @tc.desc: Test function of Delete interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Delete_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Delete_0002"; + try { + napi_value rslt; + Uri sourceFile(""); + ability->jsObj_ = make_shared(); + + // 模拟Delete调用成功 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(ERR_OK), Return(napi_ok))); + auto result = ability->Delete(sourceFile); + EXPECT_EQ(result, ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Delete_0002"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Move_0000 + * @tc.name: js_file_access_ext_ability_Move_0000 + * @tc.desc: Test function of Move interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Move_0000, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Move_0000"; + try { + Uri sourceFile(""); + Uri targetParent(""); + Uri newFile(""); + + // 模拟调用CallJsMethod失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_invalid_arg)); + auto result = ability->Move(sourceFile, targetParent, newFile); + EXPECT_EQ(result, EINVAL); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Move_0000"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Move_0001 + * @tc.name: js_file_access_ext_ability_Move_0001 + * @tc.desc: Test function of Move interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Move_0001, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Move_0001"; + try { + napi_value rslt; + Uri sourceFile(""); + Uri targetParent(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取srcUri为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)).WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + auto result = ability->Move(sourceFile, targetParent, newFile); + EXPECT_EQ(result, E_GETRESULT); + + // 模拟获取dstUri为空 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)); + result = ability->Move(sourceFile, targetParent, newFile); + EXPECT_EQ(result, E_GETRESULT); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Move_0001"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Move_0002 + * @tc.name: js_file_access_ext_ability_Move_0002 + * @tc.desc: Test function of Move interface for ERROR. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Move_0002, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Move_0002"; + try { + napi_value rslt; + Uri sourceFile(""); + Uri targetParent(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟获取value->code失败 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(DoAll(SetArgPointee<2>(E_IPCS), Return(napi_ok))); + auto result = ability->Move(sourceFile, targetParent, newFile); + EXPECT_EQ(result, E_IPCS); + + // 模拟获取value->data为-1 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillRepeatedly(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(Return(napi_ok)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)) + .WillOnce(Return(napi_ok)); + result = ability->Move(sourceFile, targetParent, newFile); + EXPECT_EQ(result, E_GETRESULT); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Move_0002"; +} + +/** + * @tc.number: user_file_service_js_file_access_ext_ability_Move_0003 + * @tc.name: js_file_access_ext_ability_Move_0003 + * @tc.desc: Test function of Move interface for SUCCESS. + * @tc.size: MEDIUM + * @tc.type: FUNC + * @tc.level Level 3 + * @tc.require: issuesI8ZE8T + */ +HWTEST_F(JsFileAccessExtAbilityTest, js_file_access_ext_ability_Move_0003, testing::ext::TestSize.Level1) +{ + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-begin js_file_access_ext_ability_Move_0003"; + try { + napi_value rslt; + string path = "test"; + Uri sourceFile(""); + Uri targetParent(""); + Uri newFile(""); + ability->jsObj_ = make_shared(); + + // 模拟Move调用成功 + EXPECT_CALL(*insMoc, napi_get_uv_event_loop(_, _)).WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, uv_queue_work(_, _, _, _)).WillOnce(Return(0)); + EXPECT_CALL(*insMoc, napi_get_reference_value(_, _, _)) + .WillOnce(DoAll(SetArgPointee<2>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_named_property(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(Return(napi_ok)) + .WillOnce(Return(napi_ok)); + EXPECT_CALL(*insMoc, napi_call_function(_, _, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<5>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_escape_handle(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_create_string_utf8(_, _, _, _)) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))) + .WillOnce(DoAll(SetArgPointee<3>(reinterpret_cast(&rslt)), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_string_utf8(_, _, _, _, _)) + .WillOnce(DoAll(SetArgPointee<4>(path.length()), Return(napi_ok))) + .WillOnce(DoAll(SetArrayArgument<2>(path.begin(), path.end()), Return(napi_ok))); + EXPECT_CALL(*insMoc, napi_get_value_int32(_, _, _)).WillOnce(Return(napi_ok)); + auto result = ability->Move(sourceFile, targetParent, newFile); + EXPECT_EQ(result, ERR_OK); + } catch (...) { + GTEST_LOG_(ERROR) << "JsFileAccessExtAbilityTest occurs an exception."; + } + GTEST_LOG_(INFO) << "JsFileAccessExtAbilityTest-end js_file_access_ext_ability_Move_0003"; +} } \ No newline at end of file