diff --git a/BUILD.gn b/BUILD.gn index f2f0f0befcebec4bbf9bcadac510a212e03e2508..f334150b7b10a5f69643740bf143b0ba266f705d 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -22,6 +22,7 @@ group("accesstoken_build_module_test") { "//base/security/access_token/interfaces/innerkits/accesstoken/test:unittest", "//base/security/access_token/interfaces/innerkits/nativetoken/test:unittest", "//base/security/access_token/interfaces/innerkits/privacy/test:unittest", + "//base/security/access_token/interfaces/innerkits/token_callback/test:unittest", "//base/security/access_token/interfaces/innerkits/token_setproc/test:unittest", "//base/security/access_token/services/accesstokenmanager/test:unittest", ] diff --git a/interfaces/innerkits/accesstoken/test/unittest/src/accesstoken_kit_test.cpp b/interfaces/innerkits/accesstoken/test/unittest/src/accesstoken_kit_test.cpp index 700a7bb989366ef57a3c019a4e1a049e8976e957..27f7036da630de659b0c9894c94b711f520cc2cd 100644 --- a/interfaces/innerkits/accesstoken/test/unittest/src/accesstoken_kit_test.cpp +++ b/interfaces/innerkits/accesstoken/test/unittest/src/accesstoken_kit_test.cpp @@ -2442,7 +2442,7 @@ public: * @tc.name: RegisterPermStateChangeCallback001 * @tc.desc: RegisterPermStateChangeCallback permList * @tc.type: FUNC - * @tc.require:AR000GK6TD + * @tc.require: issueI5NT1X */ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback001, TestSize.Level1) { @@ -2521,7 +2521,7 @@ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback001, TestSize.Level1 * @tc.name: RegisterPermStateChangeCallback002 * @tc.desc: RegisterPermStateChangeCallback permList * @tc.type: FUNC - * @tc.require:AR000GK6TD + * @tc.require: issueI5NT1X */ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback002, TestSize.Level1) { @@ -2578,7 +2578,7 @@ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback002, TestSize.Level1 * @tc.name: RegisterPermStateChangeCallback003 * @tc.desc: RegisterPermStateChangeCallback permList * @tc.type: FUNC - * @tc.require:AR000GK6TD + * @tc.require: issueI5NT1X */ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback003, TestSize.Level1) { @@ -2644,7 +2644,7 @@ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback003, TestSize.Level1 * @tc.name: RegisterPermStateChangeCallback004 * @tc.desc: RegisterPermStateChangeCallback permList * @tc.type: FUNC - * @tc.require:AR000GK6TD + * @tc.require: issueI5NT1X */ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback004, TestSize.Level1) { @@ -2710,7 +2710,7 @@ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback004, TestSize.Level1 * @tc.name: RegisterPermStateChangeCallback005 * @tc.desc: RegisterPermStateChangeCallback permList * @tc.type: FUNC - * @tc.require:AR000GK6TD + * @tc.require: issueI5NT1X */ HWTEST_F(AccessTokenKitTest, RegisterPermStateChangeCallback005, TestSize.Level1) { 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 4f7ed70a661cbeb6ffc4395b4df958cdcb2716b0..03164fb6576c9afaf962cd6a5fb237921f96acb1 100644 --- a/interfaces/innerkits/privacy/test/unittest/src/privacy_kit_test.cpp +++ b/interfaces/innerkits/privacy/test/unittest/src/privacy_kit_test.cpp @@ -607,7 +607,7 @@ public: * @tc.name: RegisterPermActiveStatusCallback001 * @tc.desc: RegisterPermActiveStatusCallback with valid permission. * @tc.type: FUNC - * @tc.require:Issue Number + * @tc.require: issueI5NT1X */ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback001, TestSize.Level1) { @@ -672,7 +672,7 @@ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback001, TestSize.Level1) * @tc.name: RegisterPermActiveStatusCallback002 * @tc.desc: RegisterPermActiveStatusCallback with valid permission. * @tc.type: FUNC - * @tc.require:Issue Number + * @tc.require: issueI5NT1X */ HWTEST_F(PrivacyKitTest, RegisterPermActiveStatusCallback002, TestSize.Level1) diff --git a/interfaces/innerkits/token_callback/test/BUILD.gn b/interfaces/innerkits/token_callback/test/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..9aa880e169daaa6ceb9b73afe834868c2571fcdf --- /dev/null +++ b/interfaces/innerkits/token_callback/test/BUILD.gn @@ -0,0 +1,43 @@ +# Copyright (c) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/test.gni") + +ohos_unittest("libtoken_callback_test") { + subsystem_name = "security" + part_name = "access_token" + module_out_path = part_name + "/" + part_name + + include_dirs = [ + "//commonlibrary/c_utils/base/include", + "//third_party/googletest/include", + "//base/security/access_token/interfaces/innerkits/token_callback/include", + ] + + sources = [ "unittest/src/token_callback_test.cpp" ] + + cflags_cc = [ "-DHILOG_ENABLE" ] + + deps = [ "//base/security/access_token/interfaces/innerkits/token_callback:libtoken_callback_sdk" ] + external_deps = [ + "c_utils:utils", + "init:libbegetutil", + "ipc:ipc_core", + "samgr:samgr_proxy", + ] +} + +group("unittest") { + testonly = true + deps = [ ":libtoken_callback_test" ] +} diff --git a/interfaces/innerkits/token_callback/test/unittest/src/token_callback_test.cpp b/interfaces/innerkits/token_callback/test/unittest/src/token_callback_test.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b9d1c1fa21e799f3da8e8353b9697a5ec8e68b46 --- /dev/null +++ b/interfaces/innerkits/token_callback/test/unittest/src/token_callback_test.cpp @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "token_callback_test.h" +#include "string_ex.h" +#include "token_callback_stub.h" + +using namespace testing::ext; +using namespace OHOS; +using namespace OHOS::Security::AccessToken; + +const static int32_t RET_NO_ERROR = 0; + +void TokenCallbackTest::SetUpTestCase() +{ +} + +void TokenCallbackTest::TearDownTestCase() +{ +} + +void TokenCallbackTest::SetUp() +{ +} + +void TokenCallbackTest::TearDown() +{ +} + +class TestCallBack : public TokenCallbackStub { +public: + TestCallBack() = default; + virtual ~TestCallBack() = default; + + void GrantResultsCallback( + const std::vector &permissions, const std::vector &grantResults) + { + GTEST_LOG_(INFO) << "GrantResultsCallback, permissions.size:" << permissions.size() << + ", grantResults.size :" << grantResults.size(); + } +}; + +/** + * @tc.name: OnRemoteRequest001 + * @tc.desc: OnRemoteRequest empty. + * @tc.type: FUNC + * @tc.require: issueI5NU8U + */ +HWTEST_F(TokenCallbackTest, OnRemoteRequest001, TestSize.Level1) +{ + std::vector permissions; + std::vector grantResults; + uint32_t listSize = permissions.size(); + uint32_t resultSize = grantResults.size(); + + TestCallBack callback; + MessageParcel data; + ASSERT_EQ(true, data.WriteInterfaceToken(ITokenCallback::GetDescriptor())); + + ASSERT_EQ(true, data.WriteUint32(listSize)); + for (uint32_t i = 0; i < listSize; i++) { + ASSERT_EQ(true, data.WriteString16(Str8ToStr16(permissions[i]))); + } + + ASSERT_EQ(true, data.WriteUint32(resultSize)); + for (uint32_t i = 0; i < resultSize; i++) { + ASSERT_EQ(true, data.WriteInt32(grantResults[i])); + } + + MessageParcel reply; + MessageOption option(MessageOption::TF_SYNC); + ASSERT_EQ(RET_NO_ERROR, + callback.OnRemoteRequest(static_cast(ITokenCallback::GRANT_RESULT_CALLBACK), data, reply, option)); +} + +/** + * @tc.name: OnRemoteRequest002 + * @tc.desc: OnRemoteRequest empty. + * @tc.type: FUNC + * @tc.require: issueI5NU8U + */ +HWTEST_F(TokenCallbackTest, OnRemoteRequest002, TestSize.Level1) +{ + std::vector permissions; + std::vector grantResults; + permissions.emplace_back("ohos.permission.CAMERA"); + grantResults.emplace_back(0); + uint32_t listSize = permissions.size(); + uint32_t resultSize = grantResults.size(); + + TestCallBack callback; + MessageParcel data; + ASSERT_EQ(true, data.WriteInterfaceToken(ITokenCallback::GetDescriptor())); + + ASSERT_EQ(true, data.WriteUint32(listSize)); + for (uint32_t i = 0; i < listSize; i++) { + ASSERT_EQ(true, data.WriteString16(Str8ToStr16(permissions[i]))); + } + + ASSERT_EQ(true, data.WriteUint32(resultSize)); + for (uint32_t i = 0; i < resultSize; i++) { + ASSERT_EQ(true, data.WriteInt32(grantResults[i])); + } + + MessageParcel reply; + MessageOption option(MessageOption::TF_SYNC); + ASSERT_EQ(RET_NO_ERROR, + callback.OnRemoteRequest(static_cast(ITokenCallback::GRANT_RESULT_CALLBACK), data, reply, option)); +} diff --git a/interfaces/innerkits/token_callback/test/unittest/src/token_callback_test.h b/interfaces/innerkits/token_callback/test/unittest/src/token_callback_test.h new file mode 100644 index 0000000000000000000000000000000000000000..60fca1191cf1c8c14fba5047e11e922f2afe6cbc --- /dev/null +++ b/interfaces/innerkits/token_callback/test/unittest/src/token_callback_test.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef PRIVACY_KIT_TEST_H +#define PRIVACY_KIT_TEST_H + +#include +#include +namespace OHOS { +namespace Security { +namespace AccessToken { +class TokenCallbackTest : public testing::Test { +public: + static void SetUpTestCase(); + + static void TearDownTestCase(); + + void SetUp(); + + void TearDown(); +}; +} // namespace AccessToken +} // namespace Security +} // namespace OHOS +#endif // PRIVACY_KIT_TEST_H