1 /*
2 * Copyright (c) 2024-2025 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 "el5_filekey_manager_stub_unittest.h"
17 #include "singleton.h"
18
19 #include "accesstoken_kit.h"
20 #include "el5_filekey_callback_interface_stub.h"
21 #include "el5_filekey_manager_error.h"
22 #include "token_setproc.h"
23
24 using namespace testing::ext;
25 using namespace OHOS::Security::AccessToken;
26
SetUpTestCase()27 void El5FilekeyManagerStubTest::SetUpTestCase()
28 {
29 }
30
TearDownTestCase()31 void El5FilekeyManagerStubTest::TearDownTestCase()
32 {
33 }
34
SetUp()35 void El5FilekeyManagerStubTest::SetUp()
36 {
37 el5FilekeyManagerStub_ = DelayedSingleton<El5FilekeyManagerService>::GetInstance();
38 }
39
TearDown()40 void El5FilekeyManagerStubTest::TearDown()
41 {
42 }
43
44 /**
45 * @tc.name: OnRemoteRequest001
46 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_GENERATE_APP_KEY.
47 * @tc.type: FUNC
48 * @tc.require: issueI9JGMV
49 */
50 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest001, TestSize.Level1)
51 {
52 OHOS::MessageParcel data;
53 OHOS::MessageParcel reply;
54 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
55
56 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
57
58 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
59 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_GENERATE_APP_KEY), data, reply, option),
60 OHOS::NO_ERROR);
61 }
62
63 /**
64 * @tc.name: OnRemoteRequest002
65 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_DELETE_APP_KEY.
66 * @tc.type: FUNC
67 * @tc.require: issueI9JGMV
68 */
69 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest002, TestSize.Level1)
70 {
71 OHOS::MessageParcel data;
72 OHOS::MessageParcel reply;
73 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
74
75 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
76
77 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
78 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_DELETE_APP_KEY), data, reply, option),
79 OHOS::NO_ERROR);
80 }
81
82 /**
83 * @tc.name: OnRemoteRequest003
84 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_ACQUIRE_ACCESS.
85 * @tc.type: FUNC
86 * @tc.require: issueI9JGMV
87 */
88 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest003, TestSize.Level1)
89 {
90 OHOS::MessageParcel data;
91 OHOS::MessageParcel reply;
92 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
93
94 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
95
96 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
97 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_ACQUIRE_ACCESS), data, reply, option),
98 OHOS::ERR_INVALID_DATA);
99 }
100
101 /**
102 * @tc.name: OnRemoteRequest004
103 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_RELEASE_ACCESS.
104 * @tc.type: FUNC
105 * @tc.require: issueI9JGMV
106 */
107 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest004, TestSize.Level1)
108 {
109 OHOS::MessageParcel data;
110 OHOS::MessageParcel reply;
111 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
112
113 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
114
115 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
116 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_RELEASE_ACCESS), data, reply, option),
117 OHOS::ERR_INVALID_DATA);
118 }
119
120 /**
121 * @tc.name: OnRemoteRequest005
122 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_GET_USER_APP_KEY.
123 * @tc.type: FUNC
124 * @tc.require: issueI9JGMV
125 */
126 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest005, TestSize.Level1)
127 {
128 OHOS::MessageParcel data;
129 OHOS::MessageParcel reply;
130 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
131
132 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
133
134 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
135 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_GET_USER_APP_KEY), data, reply, option),
136 OHOS::NO_ERROR);
137 }
138
139 /**
140 * @tc.name: OnRemoteRequest006
141 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_CHANGE_USER_APPKEYS_LOAD_INFO.
142 * @tc.type: FUNC
143 * @tc.require: issueI9JGMV
144 */
145 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest006, TestSize.Level1)
146 {
147 OHOS::MessageParcel data;
148 OHOS::MessageParcel reply;
149 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
150
151 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
152
153 data.WriteUint32(1);
154 data.WriteString("test");
155 data.WriteBool(false);
156
157 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
158 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_CHANGE_USER_APPKEYS_LOAD_INFO),
159 data, reply, option),
160 OHOS::ERR_INVALID_DATA);
161 }
162
163 /**
164 * @tc.name: OnRemoteRequest007
165 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_CHANGE_USER_APPKEYS_LOAD_INFO.
166 * @tc.type: FUNC
167 * @tc.require: issueI9JGMV
168 */
169 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest007, TestSize.Level1)
170 {
171 OHOS::MessageParcel data;
172 OHOS::MessageParcel reply;
173 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
174
175 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
176
177 data.WriteUint32(10000);
178 data.WriteString("test");
179 data.WriteBool(false);
180
181 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
182 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_CHANGE_USER_APPKEYS_LOAD_INFO),
183 data, reply, option),
184 OHOS::ERR_INVALID_DATA);
185 }
186
187 /**
188 * @tc.name: OnRemoteRequest008
189 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_SET_FILE_PATH_POLICY.
190 * @tc.type: FUNC
191 * @tc.require: issueI9JGMV
192 */
193 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest008, TestSize.Level1)
194 {
195 OHOS::MessageParcel data;
196 OHOS::MessageParcel reply;
197 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
198
199 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
200
201 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
202 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_SET_FILE_PATH_POLICY), data, reply, option),
203 OHOS::NO_ERROR);
204 }
205
206 /**
207 * @tc.name: OnRemoteRequest009
208 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_REGISTER_CALLBACK.
209 * @tc.type: FUNC
210 * @tc.require: issueI9JGMV
211 */
212 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest009, TestSize.Level1)
213 {
214 OHOS::MessageParcel data;
215 OHOS::MessageParcel reply;
216 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
217
218 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
219
220 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
221 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_REGISTER_CALLBACK), data, reply, option),
222 OHOS::ERR_INVALID_DATA);
223 }
224
225 /**
226 * @tc.name: OnRemoteRequest010
227 * @tc.desc: data.ReadInterfaceToken() != El5FilekeyManagerInterface::GetDescriptor().
228 * @tc.type: FUNC
229 * @tc.require: issueI9JGMV
230 */
231 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest010, TestSize.Level1)
232 {
233 OHOS::MessageParcel data;
234 OHOS::MessageParcel reply;
235 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
236
237 std::string des = "I don't know";
238 data.WriteInterfaceToken(OHOS::Str8ToStr16(des));
239
240 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
241 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_GENERATE_APP_KEY), data, reply, option),
242 OHOS::ERR_TRANSACTION_FAILED);
243 }
244
245 /**
246 * @tc.name: OnRemoteRequest011
247 * @tc.desc: OnRemoteRequest, code < 0.
248 * @tc.type: FUNC
249 * @tc.require: issueI9JGMV
250 */
251 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest011, TestSize.Level1)
252 {
253 OHOS::MessageParcel data;
254 OHOS::MessageParcel reply;
255 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
256
257 std::string des = "I don't know";
258 data.WriteInterfaceToken(OHOS::Str8ToStr16(des));
259 int32_t code = -1;
260
261 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(code, data, reply, option), OHOS::ERR_TRANSACTION_FAILED);
262 }
263
264 /**
265 * @tc.name: OnRemoteRequest0012
266 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_GENERATE_GROUP_I_D_KEY.
267 * @tc.type: FUNC
268 * @tc.require: issueI9JGMV
269 */
270 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest0012, TestSize.Level1)
271 {
272 OHOS::MessageParcel data;
273 OHOS::MessageParcel reply;
274 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
275
276 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
277
278 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
279 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_GENERATE_GROUP_I_D_KEY), data, reply, option),
280 OHOS::NO_ERROR);
281 }
282
283 /**
284 * @tc.name: OnRemoteRequest0013
285 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_DELETE_GROUP_I_D_KEY.
286 * @tc.type: FUNC
287 * @tc.require: issueI9JGMV
288 */
289 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest0013, TestSize.Level1)
290 {
291 OHOS::MessageParcel data;
292 OHOS::MessageParcel reply;
293 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
294
295 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
296
297 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
298 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_DELETE_GROUP_I_D_KEY), data, reply, option),
299 OHOS::NO_ERROR);
300 }
301
302 /**
303 * @tc.name: OnRemoteRequest0014
304 * @tc.desc: El5FilekeyManagerInterfaceIpcCode::COMMAND_QUERY_APP_KEY_STATE.
305 * @tc.type: FUNC
306 * @tc.require: issueI9JGMV
307 */
308 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest0014, TestSize.Level1)
309 {
310 OHOS::MessageParcel data;
311 OHOS::MessageParcel reply;
312 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
313
314 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
315
316 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
317 static_cast<uint32_t>(El5FilekeyManagerInterfaceIpcCode::COMMAND_QUERY_APP_KEY_STATE), data, reply, option),
318 OHOS::ERR_INVALID_DATA);
319 }
320