1 /*
2 * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include <numeric>
18
19 #include "access_token_helper.h"
20 #include "mock_constant.h"
21 #include "tokenid_kit.h"
22
23 namespace OHOS {
24 namespace EventFwk {
25 using namespace testing::ext;
26 using namespace OHOS::Security::AccessToken;
27
28 class CommonEventAccessTokenHelperTest : public testing::Test {
29 public:
CommonEventAccessTokenHelperTest()30 CommonEventAccessTokenHelperTest()
31 {}
~CommonEventAccessTokenHelperTest()32 ~CommonEventAccessTokenHelperTest()
33 {}
34
35 static void SetUpTestCase(void);
36 static void TearDownTestCase(void);
37 void SetUp();
38 void TearDown();
39 };
40
SetUpTestCase(void)41 void CommonEventAccessTokenHelperTest::SetUpTestCase(void)
42 {}
43
TearDownTestCase(void)44 void CommonEventAccessTokenHelperTest::TearDownTestCase(void)
45 {}
46
SetUp(void)47 void CommonEventAccessTokenHelperTest::SetUp(void)
48 {}
49
TearDown(void)50 void CommonEventAccessTokenHelperTest::TearDown(void)
51 {}
52
53 /**
54 * @tc.name: IsDlpHap_0100
55 * @tc.desc: Judge DLP accessToken
56 * @tc.type: FUNC
57 * @tc.require: I582VA
58 */
HWTEST_F(CommonEventAccessTokenHelperTest,IsDlpHap_0100,Level1)59 HWTEST_F(CommonEventAccessTokenHelperTest, IsDlpHap_0100, Level1)
60 {
61 GTEST_LOG_(INFO) << "IsDlpHap_0100 start";
62
63 AccessTokenID callerToken = DLP_PERMISSION_GRANTED;
64 EXPECT_TRUE(AccessTokenHelper::IsDlpHap(callerToken));
65
66 callerToken = PERMISSION_GRANTED;
67 EXPECT_FALSE(AccessTokenHelper::IsDlpHap(callerToken));
68
69 GTEST_LOG_(INFO) << "IsDlpHap_0100 end";
70 }
71
72 /**
73 * @tc.name: VerifyNativeToken_0100
74 * @tc.desc: Judge DLP accessToken
75 * @tc.type: FUNC
76 * @tc.require: I5R11Y
77 */
HWTEST_F(CommonEventAccessTokenHelperTest,VerifyNativeToken_0100,Level1)78 HWTEST_F(CommonEventAccessTokenHelperTest, VerifyNativeToken_0100, Level1)
79 {
80 AccessTokenID callerToken = DLP_PERMISSION_GRANTED;
81 EXPECT_FALSE(AccessTokenHelper::VerifyNativeToken(callerToken));
82
83 callerToken = PERMISSION_GRANTED;
84 EXPECT_FALSE(AccessTokenHelper::VerifyNativeToken(callerToken));
85 }
86
87 /**
88 * @tc.name: VerifyAccessToken_0100
89 * @tc.desc: Judge DLP accessToken
90 * @tc.type: FUNC
91 * @tc.require: I5R11Y
92 */
HWTEST_F(CommonEventAccessTokenHelperTest,VerifyAccessToken_0100,Level1)93 HWTEST_F(CommonEventAccessTokenHelperTest, VerifyAccessToken_0100, Level1)
94 {
95 std::string permission = "PERMISSION";
96 AccessTokenID callerToken = DLP_PERMISSION_GRANTED;
97 EXPECT_FALSE(AccessTokenHelper::VerifyAccessToken(callerToken, permission));
98
99 callerToken = PERMISSION_GRANTED;
100 EXPECT_FALSE(AccessTokenHelper::VerifyAccessToken(callerToken, permission));
101 }
102
103 /**
104 * @tc.name: AccessTokenHelper_0100
105 * @tc.desc: test RecordSensitivePermissionUsage function and tokenType != ATokenTypeEnum::TOKEN_HAP.
106 * @tc.type: FUNC
107 */
HWTEST_F(CommonEventAccessTokenHelperTest,AccessTokenHelper_0100,Level1)108 HWTEST_F(CommonEventAccessTokenHelperTest, AccessTokenHelper_0100, Level1)
109 {
110 GTEST_LOG_(INFO) << "AccessTokenHelper_0100 start";
111 std::shared_ptr<AccessTokenHelper> accessTokenHelper = std::make_shared<AccessTokenHelper>();
112 ASSERT_NE(nullptr, accessTokenHelper);
113 AccessTokenID callerToken = PERMISSION_GRANTED;
114 std::string event = "aa";
115 accessTokenHelper->RecordSensitivePermissionUsage(callerToken, event);
116 GTEST_LOG_(INFO) << "AccessTokenHelper_0100 end";
117 }
118
119 /**
120 * @tc.name: AccessTokenHelper_0200
121 * @tc.desc: test RecordSensitivePermissionUsage function and tokenType == ATokenTypeEnum::TOKEN_HAP.
122 * @tc.type: FUNC
123 */
HWTEST_F(CommonEventAccessTokenHelperTest,AccessTokenHelper_0200,Level1)124 HWTEST_F(CommonEventAccessTokenHelperTest, AccessTokenHelper_0200, Level1)
125 {
126 GTEST_LOG_(INFO) << "AccessTokenHelper_0200 start";
127 std::shared_ptr<AccessTokenHelper> accessTokenHelper = std::make_shared<AccessTokenHelper>();
128 ASSERT_NE(nullptr, accessTokenHelper);
129 AccessTokenID callerToken = DLP_PERMISSION_GRANTED;
130 std::string event = "aa";
131 accessTokenHelper->RecordSensitivePermissionUsage(callerToken, event);
132 GTEST_LOG_(INFO) << "AccessTokenHelper_0200 end";
133 }
134
135 /**
136 * @tc.name: IsSystemApp_0100
137 * @tc.desc: Judge DLP accessToken
138 * @tc.type: FUNC
139 * @tc.require: I582VA
140 */
HWTEST_F(CommonEventAccessTokenHelperTest,IsSystemApp_0100,Level1)141 HWTEST_F(CommonEventAccessTokenHelperTest, IsSystemApp_0100, Level1)
142 {
143 GTEST_LOG_(INFO) << "IsSystemApp_0100 start";
144 std::shared_ptr<AccessTokenHelper> accessTokenHelper = std::make_shared<AccessTokenHelper>();
145 ASSERT_NE(nullptr, accessTokenHelper);
146 AccessTokenID callerToken = DLP_PERMISSION_GRANTED;
147 EXPECT_TRUE(AccessTokenHelper::IsDlpHap(callerToken));
148 bool result = AccessTokenHelper::IsSystemApp();
149 EXPECT_EQ(result, false);
150
151 GTEST_LOG_(INFO) << "IsSystemApp_0100 end";
152 }
153
154 /**
155 * @tc.name: IsSystemApp_0200
156 * @tc.desc: Judge DLP accessToken
157 * @tc.type: FUNC
158 * @tc.require: I582VA
159 */
HWTEST_F(CommonEventAccessTokenHelperTest,IsSystemApp_0200,Level1)160 HWTEST_F(CommonEventAccessTokenHelperTest, IsSystemApp_0200, Level1)
161 {
162 GTEST_LOG_(INFO) << "IsSystemApp_0200 start";
163
164 std::shared_ptr<AccessTokenHelper> accessTokenHelper = std::make_shared<AccessTokenHelper>();
165 ASSERT_NE(nullptr, accessTokenHelper);
166 AccessTokenID callerToken = PERMISSION_GRANTED;
167 EXPECT_FALSE(AccessTokenHelper::IsDlpHap(callerToken));
168 bool result = AccessTokenHelper::IsSystemApp();
169 EXPECT_EQ(result, false);
170 GTEST_LOG_(INFO) << "IsSystemApp_0200 end";
171 }
172 }
173 }