diff --git a/interfaces/innerkits/privacy/test/unittest/src/privacy_kit_test.cpp b/interfaces/innerkits/privacy/test/unittest/src/privacy_kit_test.cpp index 607b4e0664ddb8488076ce8da25674e72034a6e9..7d5bfb67a7da8ec972664244dbaffe5f53c84fc3 100644 --- a/interfaces/innerkits/privacy/test/unittest/src/privacy_kit_test.cpp +++ b/interfaces/innerkits/privacy/test/unittest/src/privacy_kit_test.cpp @@ -717,7 +717,7 @@ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback001, TestSize.Level1) ASSERT_EQ(RET_NO_ERROR, res); usleep(500000); // 500000us = 0.5s - ASSERT_EQ(PERM_ACTIVE_IN_FOREGROUND, callbackPtr->type_); + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr->type_); res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); ASSERT_EQ(RET_NO_ERROR, res); @@ -762,7 +762,7 @@ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback002, TestSize.Level1) ASSERT_EQ(RET_NO_ERROR, res); usleep(500000); // 500000us = 0.5s - ASSERT_EQ(PERM_ACTIVE_IN_FOREGROUND, callbackPtr1->type_); + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr1->type_); ASSERT_EQ(PERM_INACTIVE, callbackPtr2->type_); res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); @@ -776,7 +776,7 @@ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback002, TestSize.Level1) usleep(500000); // 500000us = 0.5s ASSERT_EQ(PERM_INACTIVE, callbackPtr1->type_); - ASSERT_EQ(PERM_ACTIVE_IN_FOREGROUND, callbackPtr2->type_); + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr2->type_); res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.MICROPHONE"); ASSERT_EQ(RET_NO_ERROR, res); @@ -790,6 +790,183 @@ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback002, TestSize.Level1) ASSERT_EQ(RET_NO_ERROR, res); } +/** + * @tc.name: RegisterPermActiveStatusCallback003 + * @tc.desc: RegisterPermActiveStatusCallback empty permission name + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ + +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback003, TestSize.Level1) +{ + std::vector permList = {}; + auto callbackPtr = std::make_shared(permList); + callbackPtr->type_ = PERM_INACTIVE; + int32_t res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_NO_ERROR, res); + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr->type_); + res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_INACTIVE, callbackPtr->type_); + + res = PrivacyKit::UnRegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_NO_ERROR, res); + callbackPtr->type_ = PERM_INACTIVE; + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_INACTIVE, callbackPtr->type_); +} + +/** + * @tc.name: RegisterPermActiveStatusCallback004 + * @tc.desc: RegisterPermActiveStatusCallback repeatedly register a permission + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback004, TestSize.Level1) +{ + std::vector permList = {"ohos.permission.CAMERA"}; + auto callbackPtr = std::make_shared(permList); + callbackPtr->type_ = PERM_INACTIVE; + + int32_t res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_NO_ERROR, res); + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr->type_); + res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_INACTIVE, callbackPtr->type_); + + res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_ERROR, res); + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr->type_); + res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_INACTIVE, callbackPtr->type_); + + res = PrivacyKit::UnRegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_NO_ERROR, res); +} + +/** + * @tc.name: RegisterPermActiveStatusCallback005 + * @tc.desc: RegisterPermActiveStatusCallback repeatedly cancel monitoring a permission + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback005, TestSize.Level1) +{ + std::vector permList = {"ohos.permission.CAMERA"}; + auto callbackPtr = std::make_shared(permList); + callbackPtr->type_ = PERM_INACTIVE; + int32_t res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_NO_ERROR, res); + + res = PrivacyKit::UnRegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_NO_ERROR, res); + callbackPtr->type_ = PERM_INACTIVE; + res = PrivacyKit::UnRegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_ERROR, res); + callbackPtr->type_ = PERM_INACTIVE; + + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_INACTIVE, callbackPtr->type_); + res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + ASSERT_EQ(PERM_INACTIVE, callbackPtr->type_); +} + +/** + * @tc.name: RegisterPermActiveStatusCallback006 + * @tc.desc: RegisterPermActiveStatusCallback registering invalid permissions + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback006, TestSize.Level1) +{ + std::vector permList = {"ohos.permission.extra_long_charactersaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}; + + auto callbackPtr = std::make_shared(permList); + callbackPtr->type_ = PERM_INACTIVE; + int32_t res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_ERROR, res); +} + +/** + * @tc.name: RegisterPermActiveStatusCallback007 + * @tc.desc: RegisterPermActiveStatusCallback cancel unregistered permissions + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback007, TestSize.Level1) +{ + std::vector permList = {"ohos.permission.CAMERA"}; + + auto callbackPtr = std::make_shared(permList); + callbackPtr->type_ = PERM_INACTIVE; + int32_t res = PrivacyKit::UnRegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_ERROR, res); +} + +/** + * @tc.name: RegisterPermActiveStatusCallback008 + * @tc.desc: RegisterPermActiveStatusCallback registering invalid permissions + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback008, TestSize.Level1) +{ + std::vector permList = {"ohos.permission.INVALID"}; + + auto callbackPtr = std::make_shared(permList); + callbackPtr->type_ = PERM_INACTIVE; + int32_t res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr); + ASSERT_EQ(RET_ERROR, res); +} + +/** + * @tc.name: RegisterPermActiveStatusCallback009 + * @tc.desc: RegisterPermActiveStatusCallback with valid permission. + * @tc.type: FUNC + * @tc.require: issueI5NT1X issueI5P4IU + */ +HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback009, TestSize.Level1) +{ + std::vector permList1 = { + "ohos.permission.CAMERA", + "ohos.permission.uttestpermission", + }; + auto callbackPtr1 = std::make_shared(permList1); + callbackPtr1->type_ = PERM_INACTIVE; + int32_t res = PrivacyKit::RegisterPermActiveStatusCallback(callbackPtr1); + ASSERT_EQ(RET_NO_ERROR, res); + + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + usleep(500000); // 500000us = 0.5s + ASSERT_EQ(PERM_ACTIVE_IN_BACKGROUND, callbackPtr1->type_); + res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.CAMERA"); + ASSERT_EQ(RET_NO_ERROR, res); + + res = PrivacyKit::StartUsingPermission(g_TokenId_E, "ohos.permission.uttestpermission"); + ASSERT_EQ(RET_ERROR, res); + usleep(500000); // 500000us = 0.5s + ASSERT_EQ(PERM_INACTIVE, callbackPtr1->type_); + res = PrivacyKit::StopUsingPermission(g_TokenId_E, "ohos.permission.uttestpermission"); + ASSERT_EQ(RET_ERROR, res); + usleep(500000); // 500000us = 0.5s + ASSERT_EQ(PERM_INACTIVE, callbackPtr1->type_); + + res = PrivacyKit::UnRegisterPermActiveStatusCallback(callbackPtr1); + ASSERT_EQ(RET_NO_ERROR, res); +} + /** * @tc.name: StartUsingPermission001 * @tc.desc: StartUsingPermission with invalid tokenId or permission.