1 /*
2  * Copyright (c) 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 <gmock/gmock.h>
17 #include <gtest/gtest.h>
18 #include <memory>
19 
20 #include "dfsu_access_token_helper.h"
21 #include "tokenInfo.h"
22 
23 namespace OHOS::FileManagement::Test {
24 using namespace testing;
25 using namespace testing::ext;
26 using namespace std;
27 class DfsuAccessTokenHelperTest : public testing::Test {
28 public:
29     static void SetUpTestCase(void);
30     static void TearDownTestCase(void);
31     void SetUp();
32     void TearDown();
33 };
34 
SetUpTestCase(void)35 void DfsuAccessTokenHelperTest::SetUpTestCase(void)
36 {
37     GTEST_LOG_(INFO) << "SetUpTestCase";
38 }
39 
TearDownTestCase(void)40 void DfsuAccessTokenHelperTest::TearDownTestCase(void)
41 {
42     GTEST_LOG_(INFO) << "TearDownTestCase";
43 }
44 
SetUp(void)45 void DfsuAccessTokenHelperTest::SetUp(void)
46 {
47     GTEST_LOG_(INFO) << "SetUp";
48 }
49 
TearDown(void)50 void DfsuAccessTokenHelperTest::TearDown(void)
51 {
52     GTEST_LOG_(INFO) << "TearDown";
53 }
54 
55 /**
56  * @tc.name: CheckCallerPermissionTest
57  * @tc.desc: Verify the CheckCallerPermission function
58  * @tc.type: FUNC
59  * @tc.require: I6JPKG
60  */
61 HWTEST_F(DfsuAccessTokenHelperTest, CheckCallerPermissionTest, TestSize.Level1)
62 {
63     GTEST_LOG_(INFO) << "CheckCallerPermissionTest Begin";
64     try {
65         DfsuAccessTokenHelper dfsuAccessTokenHelper;
66         string permissionName = "permissionName";
67         TokenInfo tokenInfo;
68         tokenInfo.SetTokenId(0);
69         auto res = dfsuAccessTokenHelper.CheckCallerPermission(permissionName);
70         EXPECT_FALSE(res == true);
71         tokenInfo.SetTokenId(2);
72         res = dfsuAccessTokenHelper.CheckCallerPermission(permissionName);
73         EXPECT_TRUE(res == true);
74         tokenInfo.SetTokenId(3);
75         res = dfsuAccessTokenHelper.CheckCallerPermission(permissionName);
76         EXPECT_TRUE(res == false);
77     } catch (...) {
78         EXPECT_TRUE(false);
79         GTEST_LOG_(INFO) << " CheckCallerPermissionTest ERROR";
80     }
81 
82     GTEST_LOG_(INFO) << "CheckCallerPermissionTest End";
83 }
84 
85 /**
86  * @tc.name: CheckPermissionTest
87  * @tc.desc: Verify the CheckPermission function
88  * @tc.type: FUNC
89  * @tc.require: I6JPKG
90  */
91 HWTEST_F(DfsuAccessTokenHelperTest, CheckPermissionTest, TestSize.Level1)
92 {
93     GTEST_LOG_(INFO) << "CheckPermissionTest Begin";
94     try {
95         DfsuAccessTokenHelper dfsuAccessTokenHelper;
96         uint32_t tokenId = 0;
97         string permissionName = "permissionName";
98         auto res = dfsuAccessTokenHelper.CheckPermission(tokenId, permissionName);
99         EXPECT_FALSE(res);
100         res = dfsuAccessTokenHelper.CheckPermission(tokenId, permissionName);
101         EXPECT_FALSE(res);
102         tokenId = 1;
103     } catch (...) {
104         EXPECT_TRUE(false);
105         GTEST_LOG_(INFO) << " CheckPermissionTest ERROR";
106     }
107 
108     GTEST_LOG_(INFO) << "CheckPermissionTest End";
109 }
110 
111 /**
112  * @tc.name: GetCallerBundleNameTest
113  * @tc.desc: Verify the GetCallerBundleName function
114  * @tc.type: FUNC
115  * @tc.require: I6JPKG
116  */
117 HWTEST_F(DfsuAccessTokenHelperTest, GetCallerBundleNameTest, TestSize.Level1)
118 {
119     GTEST_LOG_(INFO) << "GetCallerBundleNameTest Begin";
120     try {
121         DfsuAccessTokenHelper dfsuAccessTokenHelper;
122         string bundleName = "bundleName";
123         auto res = dfsuAccessTokenHelper.GetCallerBundleName(bundleName);
124         EXPECT_EQ(res, 9);
125     } catch (...) {
126         EXPECT_TRUE(false);
127         GTEST_LOG_(INFO) << " GetCallerBundleNameTest ERROR";
128     }
129 
130     GTEST_LOG_(INFO) << "GetCallerBundleNameTest End";
131 }
132 
133 /**
134  * @tc.name: GetBundleNameByTokenTest
135  * @tc.desc: Verify the GetBundleNameByToken function
136  * @tc.type: FUNC
137  * @tc.require: I6JPKG
138  */
139 HWTEST_F(DfsuAccessTokenHelperTest, GetBundleNameByTokenTest, TestSize.Level1)
140 {
141     GTEST_LOG_(INFO) << "GetBundleNameByTokenTest Begin";
142     try {
143         DfsuAccessTokenHelper dfsuAccessTokenHelper;
144         uint32_t tokenId = 0;
145         string bundleName = "bundleName";
146         auto res = dfsuAccessTokenHelper.GetBundleNameByToken(tokenId, bundleName);
147         EXPECT_EQ(res, 9);
148         tokenId = 1;
149         res = dfsuAccessTokenHelper.GetBundleNameByToken(tokenId, bundleName);
150         EXPECT_EQ(res, 0);
151         tokenId = 2;
152         res = dfsuAccessTokenHelper.GetBundleNameByToken(tokenId, bundleName);
153         EXPECT_EQ(res, 9);
154         tokenId = 3;
155         res = dfsuAccessTokenHelper.GetBundleNameByToken(tokenId, bundleName);
156         EXPECT_EQ(res, 9);
157     } catch (...) {
158         EXPECT_TRUE(false);
159         GTEST_LOG_(INFO) << " GetBundleNameByTokenTest ERROR";
160     }
161 
162     GTEST_LOG_(INFO) << "GetBundleNameByTokenTest End";
163 }
164 
165 /**
166  * @tc.name: IsSystemAppTest
167  * @tc.desc: Verify the IsSystemApp function
168  * @tc.type: FUNC
169  * @tc.require: I6JPKG
170  */
171 HWTEST_F(DfsuAccessTokenHelperTest, IsSystemAppTest, TestSize.Level1)
172 {
173     GTEST_LOG_(INFO) << "IsSystemAppTest Begin";
174     try {
175         DfsuAccessTokenHelper dfsuAccessTokenHelper;
176         TokenInfo tokenInfo;
177         tokenInfo.SetTokenId(1);
178         auto res = dfsuAccessTokenHelper.IsSystemApp();
179         EXPECT_TRUE(res);
180         tokenInfo.SetTokenId(0);
181         res = dfsuAccessTokenHelper.IsSystemApp();
182         EXPECT_TRUE(res == false);
183     } catch (...) {
184         EXPECT_TRUE(false);
185         GTEST_LOG_(INFO) << " IsSystemAppTest ERROR";
186     }
187 
188     GTEST_LOG_(INFO) << "IsSystemAppTest End";
189 }
190 
191 /**
192  * @tc.name: GetUserIdTest
193  * @tc.desc: Verify the GetUserId function
194  * @tc.type: FUNC
195  * @tc.require: I6JPKG
196  */
197 HWTEST_F(DfsuAccessTokenHelperTest, GetUserIdTest, TestSize.Level1)
198 {
199     GTEST_LOG_(INFO) << "GetUserIdTest Begin";
200     try {
201         DfsuAccessTokenHelper dfsuAccessTokenHelper;
202         auto res = dfsuAccessTokenHelper.GetUserId();
203         EXPECT_EQ(res, 0);
204     } catch (...) {
205         EXPECT_TRUE(false);
206         GTEST_LOG_(INFO) << " GetUserIdTest ERROR";
207     }
208 
209     GTEST_LOG_(INFO) << "GetUserIdTest End";
210 }
211 } // namespace OHOS::FileManagement::Test
212