1 /*
2 * Copyright (c) 2024 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_stub.h"
21 #include "token_setproc.h"
22
23 using namespace testing::ext;
24 using namespace OHOS::Security::AccessToken;
25
SetUpTestCase()26 void El5FilekeyManagerStubTest::SetUpTestCase()
27 {
28 }
29
TearDownTestCase()30 void El5FilekeyManagerStubTest::TearDownTestCase()
31 {
32 }
33
SetUp()34 void El5FilekeyManagerStubTest::SetUp()
35 {
36 el5FilekeyManagerStub_ = DelayedSingleton<El5FilekeyManagerService>::GetInstance();
37 }
38
TearDown()39 void El5FilekeyManagerStubTest::TearDown()
40 {
41 }
42
43 /**
44 * @tc.name: OnRemoteRequest001
45 * @tc.desc: EFMInterfaceCode::GENERATE_APP_KEY.
46 * @tc.type: FUNC
47 * @tc.require: issueI9JGMV
48 */
49 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest001, TestSize.Level1)
50 {
51 OHOS::MessageParcel data;
52 OHOS::MessageParcel reply;
53 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
54
55 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
56
57 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
58 static_cast<uint32_t>(EFMInterfaceCode::GENERATE_APP_KEY), data, reply, option), OHOS::NO_ERROR);
59 }
60
61 /**
62 * @tc.name: OnRemoteRequest002
63 * @tc.desc: EFMInterfaceCode::DELETE_APP_KEY.
64 * @tc.type: FUNC
65 * @tc.require: issueI9JGMV
66 */
67 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest002, TestSize.Level1)
68 {
69 OHOS::MessageParcel data;
70 OHOS::MessageParcel reply;
71 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
72
73 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
74
75 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
76 static_cast<uint32_t>(EFMInterfaceCode::DELETE_APP_KEY), data, reply, option), OHOS::NO_ERROR);
77 }
78
79 /**
80 * @tc.name: OnRemoteRequest003
81 * @tc.desc: EFMInterfaceCode::ACQUIRE_ACCESS.
82 * @tc.type: FUNC
83 * @tc.require: issueI9JGMV
84 */
85 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest003, TestSize.Level1)
86 {
87 OHOS::MessageParcel data;
88 OHOS::MessageParcel reply;
89 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
90
91 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
92
93 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
94 static_cast<uint32_t>(EFMInterfaceCode::ACQUIRE_ACCESS), data, reply, option), OHOS::NO_ERROR);
95 }
96
97 /**
98 * @tc.name: OnRemoteRequest004
99 * @tc.desc: EFMInterfaceCode::RELEASE_ACCESS.
100 * @tc.type: FUNC
101 * @tc.require: issueI9JGMV
102 */
103 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest004, TestSize.Level1)
104 {
105 OHOS::MessageParcel data;
106 OHOS::MessageParcel reply;
107 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
108
109 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
110
111 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
112 static_cast<uint32_t>(EFMInterfaceCode::RELEASE_ACCESS), data, reply, option), OHOS::NO_ERROR);
113 }
114
115 /**
116 * @tc.name: OnRemoteRequest005
117 * @tc.desc: EFMInterfaceCode::GET_USER_APP_KEY.
118 * @tc.type: FUNC
119 * @tc.require: issueI9JGMV
120 */
121 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest005, TestSize.Level1)
122 {
123 OHOS::MessageParcel data;
124 OHOS::MessageParcel reply;
125 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
126
127 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
128
129 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
130 static_cast<uint32_t>(EFMInterfaceCode::GET_USER_APP_KEY), data, reply, option), OHOS::NO_ERROR);
131 }
132
133 /**
134 * @tc.name: OnRemoteRequest006
135 * @tc.desc: EFMInterfaceCode::CHANGE_USER_APP_KEYS_LOAD_INFO.
136 * @tc.type: FUNC
137 * @tc.require: issueI9JGMV
138 */
139 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest006, TestSize.Level1)
140 {
141 OHOS::MessageParcel data;
142 OHOS::MessageParcel reply;
143 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
144
145 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
146
147 data.WriteUint32(1);
148 data.WriteString("test");
149 data.WriteBool(false);
150
151 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
152 static_cast<uint32_t>(EFMInterfaceCode::CHANGE_USER_APP_KEYS_LOAD_INFO), data, reply, option), OHOS::NO_ERROR);
153 }
154
155 /**
156 * @tc.name: OnRemoteRequest007
157 * @tc.desc: EFMInterfaceCode::CHANGE_USER_APP_KEYS_LOAD_INFO.
158 * @tc.type: FUNC
159 * @tc.require: issueI9JGMV
160 */
161 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest007, TestSize.Level1)
162 {
163 OHOS::MessageParcel data;
164 OHOS::MessageParcel reply;
165 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
166
167 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
168
169 data.WriteUint32(10000);
170 data.WriteString("test");
171 data.WriteBool(false);
172
173 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
174 static_cast<uint32_t>(EFMInterfaceCode::CHANGE_USER_APP_KEYS_LOAD_INFO), data, reply, option), OHOS::NO_ERROR);
175 }
176
177 /**
178 * @tc.name: OnRemoteRequest008
179 * @tc.desc: EFMInterfaceCode::SET_FILE_PATH_POLICY.
180 * @tc.type: FUNC
181 * @tc.require: issueI9JGMV
182 */
183 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest008, TestSize.Level1)
184 {
185 OHOS::MessageParcel data;
186 OHOS::MessageParcel reply;
187 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
188
189 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
190
191 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
192 static_cast<uint32_t>(EFMInterfaceCode::SET_FILE_PATH_POLICY), data, reply, option), OHOS::NO_ERROR);
193 }
194
195 /**
196 * @tc.name: OnRemoteRequest009
197 * @tc.desc: EFMInterfaceCode::REGISTER_CALLBACK.
198 * @tc.type: FUNC
199 * @tc.require: issueI9JGMV
200 */
201 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest009, TestSize.Level1)
202 {
203 OHOS::MessageParcel data;
204 OHOS::MessageParcel reply;
205 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
206
207 ASSERT_EQ(true, data.WriteInterfaceToken(El5FilekeyManagerInterface::GetDescriptor()));
208
209 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
210 static_cast<uint32_t>(EFMInterfaceCode::REGISTER_CALLBACK), data, reply, option), OHOS::NO_ERROR);
211 }
212
213 /**
214 * @tc.name: OnRemoteRequest010
215 * @tc.desc: data.ReadInterfaceToken() != El5FilekeyManagerInterface::GetDescriptor().
216 * @tc.type: FUNC
217 * @tc.require: issueI9JGMV
218 */
219 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest010, TestSize.Level1)
220 {
221 OHOS::MessageParcel data;
222 OHOS::MessageParcel reply;
223 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
224
225 std::string des = "I don't know";
226 data.WriteInterfaceToken(OHOS::Str8ToStr16(des));
227
228 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(
229 static_cast<uint32_t>(EFMInterfaceCode::GENERATE_APP_KEY), data, reply, option), EFM_ERR_IPC_TOKEN_INVALID);
230 }
231
232 /**
233 * @tc.name: OnRemoteRequest011
234 * @tc.desc: OnRemoteRequest, code < 0.
235 * @tc.type: FUNC
236 * @tc.require: issueI9JGMV
237 */
238 HWTEST_F(El5FilekeyManagerStubTest, OnRemoteRequest011, TestSize.Level1)
239 {
240 OHOS::MessageParcel data;
241 OHOS::MessageParcel reply;
242 OHOS::MessageOption option(OHOS::MessageOption::TF_SYNC);
243
244 std::string des = "I don't know";
245 data.WriteInterfaceToken(OHOS::Str8ToStr16(des));
246 int32_t code = -1;
247
248 ASSERT_EQ(el5FilekeyManagerStub_->OnRemoteRequest(code, data, reply, option), EFM_ERR_IPC_TOKEN_INVALID);
249 }