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 "security_guard_data_collect_sa_test.h"
17
18 #include <thread>
19 #include <vector>
20 #include <fcntl.h>
21 #include <sys/stat.h>
22 #include <sys/types.h>
23 #include <unistd.h>
24 #include <fstream>
25 #include "directory_ex.h"
26 #include "file_ex.h"
27 #include "gmock/gmock.h"
28 #include "system_ability_definition.h"
29 #include "security_guard_define.h"
30 #include "security_guard_log.h"
31 #include "security_guard_utils.h"
32 #include "security_config_update_info.h"
33 #include "security_event_info.h"
34 #include "config_define.h"
35 #define private public
36 #define protected public
37 #include "accesstoken_kit.h"
38 #include "acquire_data_subscribe_manager.h"
39 #include "collector_manager.h"
40 #include "config_data_manager.h"
41 #include "data_collect_manager.h"
42 #include "data_format.h"
43 #include "database_manager.h"
44 #include "data_collect_manager_service.h"
45 #include "security_event_query_callback_proxy.h"
46 #undef private
47 #undef protected
48
49 using namespace testing;
50 using namespace testing::ext;
51 using namespace OHOS::Security::SecurityGuard;
52 using namespace OHOS::Security::SecurityGuardTest;
53 namespace OHOS {
54 std::shared_ptr<Security::SecurityGuard::MockDataFormatInterface> DataFormat::instance_ = nullptr;
55 std::shared_ptr<Security::AccessToken::MockAccessTokenKitInterface>
56 Security::AccessToken::AccessTokenKit::instance_ = nullptr;
57 std::shared_ptr<Security::AccessToken::MockTokenIdKitInterface>
58 Security::AccessToken::TokenIdKit::instance_ = nullptr;
59 std::mutex Security::SecurityGuard::DataFormat::mutex_ {};
60 std::mutex Security::AccessToken::AccessTokenKit::mutex_ {};
61 std::mutex Security::AccessToken::TokenIdKit::mutex_ {};
62 }
63
64 namespace OHOS::Security::SecurityGuardTest {
65 const std::string &SECURITY_GUARD_EVENT_CFG_FILE = SECURITY_GUARD_EVENT_CFG_SOURCE;
66
SetUpTestCase()67 void SecurityGuardDataCollectSaTest::SetUpTestCase()
68 {
69 }
70
TearDownTestCase()71 void SecurityGuardDataCollectSaTest::TearDownTestCase()
72 {
73 DataFormat::DelInterface();
74 AccessToken::AccessTokenKit::DelInterface();
75 AccessToken::TokenIdKit::DelInterface();
76 }
77
SetUp()78 void SecurityGuardDataCollectSaTest::SetUp()
79 {
80 }
81
TearDown()82 void SecurityGuardDataCollectSaTest::TearDown()
83 {
84 }
85
86 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithInvalidFd, TestSize.Level1)
87 {
88 int fd = -1;
89 std::vector<std::u16string> args;
90 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
91
92 EXPECT_EQ(service.Dump(fd, args), BAD_PARAM);
93 }
94
95 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithInvalidArgs, TestSize.Level1)
96 {
97 int fd = 1;
98 std::vector<std::u16string> args;
99 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
100 EXPECT_EQ(service.Dump(fd, args), ERR_OK);
101 }
102
103 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithHelpCommand, TestSize.Level1)
104 {
105 int fd = 1;
106 std::vector<std::u16string> args = { u"-h" };
107 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
108 EXPECT_EQ(service.Dump(fd, args), ERR_OK);
109 }
110
111 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithOtherCommand, TestSize.Level1)
112 {
113 int fd = 1;
114 std::vector<std::u16string> args = { u"-s" };
115 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
116 EXPECT_EQ(service.Dump(fd, args), ERR_OK);
117 }
118
119 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithInvalidEventId01, TestSize.Level1)
120 {
121 int fd = 1;
122 std::vector<std::u16string> args = { u"-i", u"invalid" };
123 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
124 EXPECT_EQ(service.Dump(fd, args), BAD_PARAM);
125 }
126
127 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithInvalidEventId02, TestSize.Level1)
128 {
129 int fd = 1;
130 std::vector<std::u16string> args = { u"-i" };
131 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
132 EXPECT_EQ(service.Dump(fd, args), BAD_PARAM);
133 }
134
135 HWTEST_F(SecurityGuardDataCollectSaTest, TestDumpWithValidEventId, TestSize.Level1)
136 {
137 int fd = 1;
138 std::vector<std::u16string> args = { u"-i", u"12345" };
139 EXPECT_CALL(DatabaseManager::GetInstance(), QueryRecentEventByEventId(_, _))
140 .WillOnce(Return(SUCCESS));
141 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
142 EXPECT_EQ(service.Dump(fd, args), ERR_OK);
143 }
144
145 HWTEST_F(SecurityGuardDataCollectSaTest, DumpEventInfo_Success, TestSize.Level1) {
146 SecEvent secEvent;
147 secEvent.eventId = 1;
148 secEvent.date = "2022-01-01";
149 secEvent.version = "1.0";
150
151 EXPECT_CALL(DatabaseManager::GetInstance(), QueryRecentEventByEventId(1, _))
152 .WillOnce(Return(SUCCESS));
153 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
154 service.DumpEventInfo(1, 1);
155 }
156
157 HWTEST_F(SecurityGuardDataCollectSaTest, DumpEventInfo_QueryError, TestSize.Level1) {
158 EXPECT_CALL(DatabaseManager::GetInstance(), QueryRecentEventByEventId(1, _))
159 .WillOnce(Return(FAILED));
160 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
161 service.DumpEventInfo(1, 1);
162 }
163
164 HWTEST_F(SecurityGuardDataCollectSaTest, GetSecEventsFromConditions_NoTimeCondition, TestSize.Level1) {
165 RequestCondition condition{};
166 EXPECT_CALL(DatabaseManager::GetInstance(), QueryEventByEventId(_, _, _))
167 .WillRepeatedly([] (std::string table, std::vector<int64_t> &eventIds,
__anon51d2fecd0102(std::string table, std::vector<int64_t> &eventIds, std::vector<SecEvent> &events) 168 std::vector<SecEvent> &events) {
169 SecEvent event {};
170 event.eventId = 1;
171 events.emplace_back(event);
172 return SUCCESS;
173 });
174 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
175 std::vector<SecEvent> events = service.GetSecEventsFromConditions(condition);
176 EXPECT_EQ(events[0].eventId, 1);
177 }
178
179 HWTEST_F(SecurityGuardDataCollectSaTest, GetSecEventsFromConditions_WithTimeCondition, TestSize.Level1) {
180 RequestCondition condition;
181 condition.riskEvent = {};
182 condition.auditEvent = {};
183 condition.beginTime = "2022-01-01";
184 condition.endTime = "2022-01-31";
185
186 EXPECT_CALL(DatabaseManager::GetInstance(), QueryEventByEventIdAndDate(_, _, _, _, _))
187 .WillRepeatedly([] (std::string table, std::vector<int64_t> &eventIds, std::vector<SecEvent> &events,
__anon51d2fecd0202(std::string table, std::vector<int64_t> &eventIds, std::vector<SecEvent> &events, std::string beginTime, std::string endTime) 188 std::string beginTime, std::string endTime) {
189 SecEvent event {};
190 event.eventId = 1;
191 events.emplace_back(event);
192 return SUCCESS;
193 });
194 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
195 std::vector<SecEvent> events = service.GetSecEventsFromConditions(condition);
196 EXPECT_EQ(events[0].eventId, 1);
197 }
198
199 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventByRuler_GetEventConfigError001, TestSize.Level1)
200 {
201 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
202 EXPECT_TRUE(obj != nullptr);
203 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillOnce(Return(false));
204 sptr<SecurityEventQueryCallbackProxy> mockProxy = new (std::nothrow) SecurityEventQueryCallbackProxy(obj);
205 SecurityCollector::SecurityEventRuler ruler;
206 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
207 EXPECT_FALSE(service.QueryEventByRuler(mockProxy, ruler));
208 }
209
210 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventByRuler_GetEventConfigError002, TestSize.Level1)
211 {
212 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
213 EXPECT_TRUE(obj != nullptr);
214 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillOnce(Return(false));
215 sptr<SecurityEventQueryCallbackProxy> mockProxy = new (std::nothrow) SecurityEventQueryCallbackProxy(obj);
216 SecurityCollector::SecurityEventRuler ruler;
217 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
218 EXPECT_CALL(*obj, SendRequest).Times(1);
219 mockProxy->OnError("123");
220 EXPECT_FALSE(service.QueryEventByRuler(mockProxy, ruler));
221 }
222
223 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventByRuler_QueryInDatabase, TestSize.Level1)
224 {
225 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
226 EXPECT_TRUE(obj != nullptr);
227
__anon51d2fecd0302(int64_t eventId, EventCfg &config) 228 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillOnce([] (int64_t eventId, EventCfg &config) {
229 config.eventType = 0;
230 return true;
231 });
232 SecEvent event;
233 event.eventId = 1;
234 event.version = 1;
235 event.content = "content";
236 std::vector<SecEvent> events{event};
237 EXPECT_CALL(DatabaseManager::GetInstance(), QueryEventByEventId(_, _)).WillRepeatedly(Return(true));
238 sptr<SecurityEventQueryCallbackProxy> mockProxy = new (std::nothrow) SecurityEventQueryCallbackProxy(obj);
239 SecurityCollector::SecurityEventRuler ruler;
240 EXPECT_CALL(*obj, SendRequest).Times(1);
241 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
242 EXPECT_TRUE(service.QueryEventByRuler(mockProxy, ruler));
243 }
244
245 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventByRuler_QueryInCollector, TestSize.Level1)
246 {
__anon51d2fecd0402(int64_t eventId, EventCfg &config) 247 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillOnce([] (int64_t eventId, EventCfg &config) {
248 config.eventType = 1;
249 return true;
250 });
251 SecurityCollector::SecurityEvent event;
252 event.eventId_ = 1;
253 event.version_ = 1;
254 event.content_ = "content";
255 std::vector<SecurityCollector::SecurityEvent> events{event};
256 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), QuerySecurityEvent(_, _)).WillOnce(Return(SUCCESS));
257 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
258 EXPECT_TRUE(obj != nullptr);
259 sptr<SecurityEventQueryCallbackProxy> mockProxy = new (std::nothrow) SecurityEventQueryCallbackProxy(obj);
260 SecurityCollector::SecurityEventRuler ruler;
261 EXPECT_CALL(*obj, SendRequest).Times(1);
262 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
263 EXPECT_TRUE(service.QueryEventByRuler(mockProxy, ruler));
264 }
265
266 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventByRuler_NotSupportType, TestSize.Level1)
267 {
268 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly([] (
__anon51d2fecd0502( int64_t eventId, EventCfg &config) 269 int64_t eventId, EventCfg &config) {
270 config.eventType = 2;
271 return true;
272 });
273 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
274 EXPECT_TRUE(obj != nullptr);
275 sptr<SecurityEventQueryCallbackProxy> mockProxy = new (std::nothrow) SecurityEventQueryCallbackProxy(obj);
276 SecurityCollector::SecurityEventRuler ruler;
277 EXPECT_CALL(*obj, SendRequest).Times(1);
278
279 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
280 EXPECT_TRUE(service.QueryEventByRuler(mockProxy, ruler));
281 }
282
283 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventByRuler_BeginTimeEmpty, TestSize.Level1)
284 {
285 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly([] (
__anon51d2fecd0602( int64_t eventId, EventCfg &config) 286 int64_t eventId, EventCfg &config) {
287 config.eventType = 2;
288 return true;
289 });
290 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
291 EXPECT_TRUE(obj != nullptr);
292 sptr<SecurityEventQueryCallbackProxy> mockProxy = new (std::nothrow) SecurityEventQueryCallbackProxy(obj);
293 SecurityCollector::SecurityEventRuler ruler(2, "", "11", "tt");
294 EXPECT_CALL(*obj, SendRequest).Times(1);
295
296 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
297 EXPECT_TRUE(service.QueryEventByRuler(mockProxy, ruler));
298 }
299
300 HWTEST_F(SecurityGuardDataCollectSaTest, TestPushDataCollectTask_NullProxy, TestSize.Level1)
301 {
302 std::shared_ptr<std::promise<int32_t>> promise = std::make_shared<std::promise<int32_t>>();
303 EXPECT_TRUE(promise != nullptr);
304 sptr<MockRemoteObject> mockObj = nullptr;
305 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
306 service.PushDataCollectTask(mockObj, "conditions", "devId", promise);
307 EXPECT_EQ(0, promise->get_future().get());
308 }
309
310 HWTEST_F(SecurityGuardDataCollectSaTest, TestPushDataCollectTask_EmptyConditions, TestSize.Level1)
311 {
312 std::shared_ptr<std::promise<int32_t>> promise = std::make_shared<std::promise<int32_t>>();
313 EXPECT_TRUE(promise != nullptr);
314 sptr<MockRemoteObject> mockObj(new (std::nothrow) MockRemoteObject());
315 EXPECT_TRUE(mockObj != nullptr);
316 EXPECT_CALL(*(DataFormat::GetInterface()), ParseConditions).WillOnce([]
__anon51d2fecd0702(std::string conditions, RequestCondition &reqCondition) 317 (std::string conditions, RequestCondition &reqCondition) {
318 reqCondition = {};
319 });
320 EXPECT_CALL(*mockObj, SendRequest).Times(1);
321 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
322 ON_CALL(*mockObj, SendRequest)
__anon51d2fecd0802(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) 323 .WillByDefault([&service](uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) {
324 service.OnRemoteRequest(code, data, reply, option);
325 return SUCCESS;
326 });
327 service.PushDataCollectTask(mockObj, "", "devId", promise);
328 EXPECT_EQ(0, promise->get_future().get());
329 }
330
331 HWTEST_F(SecurityGuardDataCollectSaTest, TestPushDataCollectTask_ValidConditions01, TestSize.Level1)
332 {
333 std::shared_ptr<std::promise<int32_t>> promise = std::make_shared<std::promise<int32_t>>();
334 EXPECT_TRUE(promise != nullptr);
335 EXPECT_CALL(*(DataFormat::GetInterface()), ParseConditions).WillOnce([]
__anon51d2fecd0902(std::string conditions, RequestCondition &reqCondition) 336 (std::string conditions, RequestCondition &reqCondition) {
337 reqCondition.auditEvent = {1};
338 });
339 EXPECT_CALL(DatabaseManager::GetInstance(), QueryEventByEventId(_, _, _))
340 .WillRepeatedly([] (std::string table, std::vector<int64_t> &eventIds,
__anon51d2fecd0a02(std::string table, std::vector<int64_t> &eventIds, std::vector<SecEvent> &events) 341 std::vector<SecEvent> &events) {
342 SecEvent event {};
343 event.eventId = 1;
344 events.emplace_back(event);
345 return SUCCESS;
346 });
347 sptr<MockRemoteObject> mockObj(new (std::nothrow) MockRemoteObject());
348 EXPECT_CALL(*mockObj, SendRequest).Times(1);
349 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
350 service.PushDataCollectTask(mockObj, "conditions", "devId", promise);
351 EXPECT_EQ(1, promise->get_future().get());
352 }
353
354 HWTEST_F(SecurityGuardDataCollectSaTest, TestPushDataCollectTask_ValidConditions02, TestSize.Level1)
355 {
356 std::shared_ptr<std::promise<int32_t>> promise = std::make_shared<std::promise<int32_t>>();
357 EXPECT_TRUE(promise != nullptr);
358 sptr<MockRemoteObject> mockObj(new (std::nothrow) MockRemoteObject());
359 EXPECT_TRUE(mockObj != nullptr);
360 EXPECT_CALL(*(DataFormat::GetInterface()), ParseConditions).WillOnce([]
__anon51d2fecd0b02(std::string conditions, RequestCondition &reqCondition) 361 (std::string conditions, RequestCondition &reqCondition) {
362 reqCondition.auditEvent = {1};
363 });
364 EXPECT_CALL(DatabaseManager::GetInstance(), QueryEventByEventId(_, _, _))
365 .WillRepeatedly([] (std::string table, std::vector<int64_t> &eventIds,
__anon51d2fecd0c02(std::string table, std::vector<int64_t> &eventIds, std::vector<SecEvent> &events) 366 std::vector<SecEvent> &events) {
367 SecEvent event {};
368 event.eventId = 1;
369 return SUCCESS;
370 });
371 EXPECT_CALL(*mockObj, SendRequest).Times(1);
372 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
373 service.PushDataCollectTask(mockObj, "conditions", "devId", promise);
374 EXPECT_EQ(0, promise->get_future().get());
375 }
376
377 HWTEST_F(SecurityGuardDataCollectSaTest, RequestDataSubmit_NoPermission, TestSize.Level1)
378 {
379 int64_t eventId = 1;
380 std::string version = "1.0";
381 std::string time = "2022-01-01";
382 std::string content = "content";
383
384 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken).WillRepeatedly(
385 Return(AccessToken::PermissionState::PERMISSION_DENIED));
386 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
387 service.OnAddSystemAbility(RISK_ANALYSIS_MANAGER_SA_ID, "deviceId");
388 int32_t result = service.RequestDataSubmit(eventId, version, time, content);
389 EXPECT_EQ(result, NO_PERMISSION);
390 }
391
392 HWTEST_F(SecurityGuardDataCollectSaTest, RequestDataSubmit_BadParam, TestSize.Level1)
393 {
394 int64_t eventId = 1;
395 std::string version = "1.0";
396 std::string time = "2022-01-01";
397 std::string content = "content";
398
399 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken).WillOnce(
400 Return(AccessToken::PermissionState::PERMISSION_GRANTED));
401 EXPECT_CALL(*(DataFormat::GetInterface()), CheckRiskContent).WillOnce(Return(false));
402 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
403 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
404 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
405 .WillOnce(Return(true));
406 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
407 int32_t result = service.RequestDataSubmit(eventId, version, time, content);
408 EXPECT_EQ(result, BAD_PARAM);
409 }
410
411 HWTEST_F(SecurityGuardDataCollectSaTest, RequestDataSubmit_Success01, TestSize.Level1)
412 {
413 int64_t eventId = 1;
414 std::string version = "1.0";
415 std::string time = "2022-01-01";
416 std::string content = "content";
417
418 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
419 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
420 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
421 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
422 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
423 .WillOnce(Return(true));
424 EXPECT_CALL(*(DataFormat::GetInterface()), CheckRiskContent).WillOnce(Return(true));
425 EXPECT_CALL(DatabaseManager::GetInstance(), InsertEvent).WillRepeatedly(Return(FAILED));
426 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
427 int32_t result = service.RequestDataSubmit(eventId, version, time, content);
428 EXPECT_EQ(result, SUCCESS);
429 }
430
431 HWTEST_F(SecurityGuardDataCollectSaTest, RequestDataSubmit_Success02, TestSize.Level1)
432 {
433 int64_t eventId = 1;
434 std::string version = "1.0";
435 std::string time = "2022-01-01";
436 std::string content = "content";
437
438 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
439 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
440 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
441 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
442 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
443 .WillOnce(Return(true));
444 EXPECT_CALL(*(DataFormat::GetInterface()), CheckRiskContent).WillOnce(Return(true));
445 EXPECT_CALL(DatabaseManager::GetInstance(), InsertEvent).WillRepeatedly(Return(SUCCESS));
446 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
447 int32_t result = service.RequestDataSubmit(eventId, version, time, content);
448 EXPECT_EQ(result, SUCCESS);
449 }
450
451 HWTEST_F(SecurityGuardDataCollectSaTest, RequestDataSubmit_Success03, TestSize.Level1)
452 {
453 int64_t eventId = 1;
454 std::string version = "1.0";
455 std::string time = "2022-01-01";
456 std::string content = "content";
457
458 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
459 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
460 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
461 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
462 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
463 .WillOnce(Return(true));
464 EXPECT_CALL(*(DataFormat::GetInterface()), CheckRiskContent).WillOnce(Return(true));
465 EXPECT_CALL(DatabaseManager::GetInstance(), InsertEvent).WillRepeatedly(Return(SUCCESS));
466 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
467 int32_t result = service.RequestDataSubmit(eventId, version, time, content, false);
468 EXPECT_EQ(result, SUCCESS);
469 }
470
471 HWTEST_F(SecurityGuardDataCollectSaTest, RequestRiskData01, TestSize.Level1)
472 {
473 std::string devId = "devId";
474 std::string eventList = "eventList";
475 sptr<IRemoteObject> obj = nullptr;
476
477 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
478 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_DENIED));
479 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
480 int32_t result = service.RequestRiskData(devId, eventList, obj);
481 EXPECT_EQ(result, NO_PERMISSION);
482 }
483
484 HWTEST_F(SecurityGuardDataCollectSaTest, RequestRiskData02, TestSize.Level1)
485 {
486 std::string devId = "devId";
487 std::string eventList = "eventList";
488 sptr<IRemoteObject> obj = nullptr;
489
490 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
491 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
492 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
493 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
494 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
495 .WillOnce(Return(true));
496 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
497 int32_t result = service.RequestRiskData(devId, eventList, obj);
498 service.OnRemoveSystemAbility(0, "dd");
499 EXPECT_EQ(result, SUCCESS);
500 }
501
502 HWTEST_F(SecurityGuardDataCollectSaTest, RequestRiskData03, TestSize.Level1)
503 {
504 std::string devId = "devId";
505 std::string eventList = "eventList";
506 sptr<IRemoteObject> obj = nullptr;
507
508 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
509 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
510 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
511 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
512 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
513 .WillOnce(Return(false));
514 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
515 int32_t result = service.RequestRiskData(devId, eventList, obj);
516 EXPECT_EQ(result, NO_SYSTEMCALL);
517 }
518
519 HWTEST_F(SecurityGuardDataCollectSaTest, Subscribe01, TestSize.Level1)
520 {
521 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
522 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
523
524 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
525 .WillRepeatedly(Return(AccessToken::PermissionState::PERMISSION_DENIED));
526 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
527 int32_t result = service.Subscribe(subscribeInfo, obj);
528 EXPECT_EQ(result, NO_PERMISSION);
529 }
530
531 HWTEST_F(SecurityGuardDataCollectSaTest, Unsubscribe01, TestSize.Level1)
532 {
533 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
534 sptr<MockRemoteObject> mockObj(new (std::nothrow) MockRemoteObject());
535
536 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
537 .WillRepeatedly(Return(AccessToken::PermissionState::PERMISSION_DENIED));
538 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
539 int32_t result = service.Unsubscribe(subscribeInfo, mockObj);
540 EXPECT_EQ(result, NO_PERMISSION);
541 }
542
543 HWTEST_F(SecurityGuardDataCollectSaTest, Subscribe02, TestSize.Level1)
544 {
545 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
546 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
547
548 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
549 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
550 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
551 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
552 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
553 .WillOnce(Return(false));
554 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
555 int32_t result = service.Subscribe(subscribeInfo, obj);
556 EXPECT_EQ(result, NO_SYSTEMCALL);
557 }
558
559 HWTEST_F(SecurityGuardDataCollectSaTest, Unsubscribe02, TestSize.Level1)
560 {
561 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
562 sptr<MockRemoteObject> mockObj(new (std::nothrow) MockRemoteObject());
563
564 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
565 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
566 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
567 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
568 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
569 .WillOnce(Return(false));
570 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
571 int32_t result = service.Unsubscribe(subscribeInfo, mockObj);
572 EXPECT_EQ(result, NO_SYSTEMCALL);
573 }
574
575 HWTEST_F(SecurityGuardDataCollectSaTest, Subscribe03, TestSize.Level1)
576 {
577 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
578 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
579 sptr<IPCObjectProxy::DeathRecipient> rec = nullptr;
580 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
581 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
582 .WillRepeatedly(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
583 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
584 .WillRepeatedly(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
585 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
586 .WillRepeatedly(Return(true));
587 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillOnce(Return(false));
588 EXPECT_CALL(*obj, AddDeathRecipient(_))
__anon51d2fecd0d02(const sptr<IPCObjectProxy::DeathRecipient> &recipient) 589 .WillRepeatedly([&rec] (const sptr<IPCObjectProxy::DeathRecipient> &recipient) {
590 rec = recipient;
591 return true;
592 });
593 int32_t result = service.Subscribe(subscribeInfo, obj);
594 EXPECT_NE(result, SUCCESS);
595
596 EXPECT_CALL(*obj, RemoveDeathRecipient).Times(1);
597 result = service.Unsubscribe(subscribeInfo, obj);
598 EXPECT_EQ(result, SUCCESS);
599 }
600
601 HWTEST_F(SecurityGuardDataCollectSaTest, InsertSubscribeRecord_Success, TestSize.Level1)
602 {
603 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
604 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
605 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillOnce(Return(SUCCESS));
606 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb).WillOnce(Return(SUCCESS));
607 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(Return(true));
608 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, obj);
609 EXPECT_EQ(result, SUCCESS);
610 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, obj);
611 EXPECT_EQ(result, SUCCESS);
612 }
613
614 HWTEST_F(SecurityGuardDataCollectSaTest, InsertSubscribeRecord_Fail01, TestSize.Level1)
615 {
616 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
617 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
618 sptr<MockRemoteObject> obj2(new (std::nothrow) MockRemoteObject());
619 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillOnce(Return(FAILED)).WillRepeatedly(Return(SUCCESS));
620 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(Return(true));
621 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, obj);
622 EXPECT_NE(result, SUCCESS);
623 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, obj);
624 EXPECT_EQ(result, SUCCESS);
625 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, obj2);
626 EXPECT_EQ(result, SUCCESS);
627 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, obj);
628 EXPECT_EQ(result, SUCCESS);
629 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, obj2);
630 EXPECT_EQ(result, SUCCESS);
631 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, obj);
632 EXPECT_EQ(result, SUCCESS);
633 }
634
635 HWTEST_F(SecurityGuardDataCollectSaTest, Publish_WithSubscribers, TestSize.Level1)
636 {
637 SecurityCollector::Event event {
638 .eventId = 1,
639 .version = "version",
640 .content = "content"
641 };
642 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event));
643 }
644
645 HWTEST_F(SecurityGuardDataCollectSaTest, Publish_NullProxy, TestSize.Level1)
646 {
647 SecurityCollector::Event event2 {
648 .eventId = 2,
649 .version = "version",
650 .content = "content",
651 .extra = ""
652 };
653 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event2);
654 sptr<MockRemoteObject> obj = nullptr;
655 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillRepeatedly(Return(SUCCESS));
656 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb).WillRepeatedly(Return(SUCCESS));
657 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(Return(true));
658 EXPECT_CALL(ConfigDataManager::GetInstance(), GetIsBatchUpload).WillOnce(Return(false)).WillOnce(Return(true));
659 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, obj);
660 EXPECT_EQ(result, SUCCESS);
661 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event2));
662 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event2));
663 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, obj);
664 EXPECT_EQ(result, SUCCESS);
665 }
666
667 HWTEST_F(SecurityGuardDataCollectSaTest, Publish_NotNullProxy, TestSize.Level1)
668 {
669 SecurityCollector::Event event2 {
670 .eventId = SecurityCollector::FILE_EVENTID,
671 .version = "version",
672 .content = "content",
673 .extra = ""
674 };
675 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event2);
676 sptr<MockRemoteObject> mockObject(new (std::nothrow) MockRemoteObject());
677 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillRepeatedly(Return(SUCCESS));
678 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb).WillRepeatedly(Return(SUCCESS));
679 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
680 EXPECT_CALL(*mockObject, SendRequest)
__anon51d2fecd0e02(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) 681 .WillOnce([&service](uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) {
682 service.OnRemoteRequest(code, data, reply, option);
683 return SUCCESS;
684 });
685 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(Return(true));
686 EXPECT_CALL(ConfigDataManager::GetInstance(), GetIsBatchUpload).WillRepeatedly(Return(false));
687 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, mockObject);
688 EXPECT_EQ(result, SUCCESS);
689 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event2));
690 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId,
691 mockObject);
692 EXPECT_EQ(result, SUCCESS);
693 }
694
695 HWTEST_F(SecurityGuardDataCollectSaTest, Publish_DifferentEventId01, TestSize.Level1)
696 {
697 SecurityCollector::Event event2 {
698 .eventId = 1,
699 .version = "version",
700 .content = "content",
701 .extra = ""
702 };
703 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event2);
704 sptr<MockRemoteObject> mockObj(new (std::nothrow) MockRemoteObject());
705 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillRepeatedly(Return(SUCCESS));
706 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb).WillRepeatedly(Return(SUCCESS));
707 EXPECT_CALL(ConfigDataManager::GetInstance(), GetIsBatchUpload).WillRepeatedly(Return(false));
708 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
709 EXPECT_CALL(*mockObj, SendRequest)
__anon51d2fecd0f02(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) 710 .WillOnce([&service](uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) {
711 service.OnRemoteRequest(code, data, reply, option);
712 return SUCCESS;
713 });
714 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, mockObj);
715 EXPECT_EQ(result, SUCCESS);
716 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event2));
717 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId,
718 mockObj);
719 EXPECT_EQ(result, SUCCESS);
720 }
721
722 HWTEST_F(SecurityGuardDataCollectSaTest, Publish_DifferentEventId02, TestSize.Level1)
723 {
724 SecurityCollector::Event event2 {
725 .eventId = SecurityCollector::PROCESS_EVENTID,
726 .version = "version",
727 .content = "content",
728 .extra = ""
729 };
730 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event2);
731 sptr<MockRemoteObject> object(new (std::nothrow) MockRemoteObject());
732 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillRepeatedly(Return(SUCCESS));
733 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb).WillRepeatedly(Return(SUCCESS));
734 EXPECT_CALL(ConfigDataManager::GetInstance(), GetIsBatchUpload).WillRepeatedly(Return(false));
735 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
736 EXPECT_CALL(*object, SendRequest)
__anon51d2fecd1002(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) 737 .WillOnce([&service](uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) {
738 service.OnRemoteRequest(code, data, reply, option);
739 return SUCCESS;
740 });
741 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, object);
742 EXPECT_EQ(result, SUCCESS);
743 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event2));
744 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, object);
745 EXPECT_EQ(result, SUCCESS);
746 }
747
748 HWTEST_F(SecurityGuardDataCollectSaTest, Publish_DifferentEventId03, TestSize.Level1)
749 {
750 SecurityCollector::Event event2 {
751 .eventId = SecurityCollector::NETWORK_EVENTID,
752 .version = "version",
753 .content = "content",
754 .extra = ""
755 };
756 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event2);
757 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
758 EXPECT_CALL(DatabaseManager::GetInstance(), SubscribeDb).WillRepeatedly(Return(SUCCESS));
759 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb).WillRepeatedly(Return(SUCCESS));
760 EXPECT_CALL(ConfigDataManager::GetInstance(), GetIsBatchUpload).WillRepeatedly(Return(false));
761 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
762 EXPECT_CALL(*obj, SendRequest)
__anon51d2fecd1102(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) 763 .WillOnce([&service](uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) {
764 service.OnRemoteRequest(code, data, reply, option);
765 return SUCCESS;
766 });
767 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeRecord(subscribeInfo, obj);
768 EXPECT_EQ(result, SUCCESS);
769 EXPECT_TRUE(AcquireDataSubscribeManager::GetInstance().BatchPublish(event2));
770 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecord(subscribeInfo.GetEvent().eventId, obj);
771 EXPECT_EQ(result, SUCCESS);
772 }
773
774 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrSubscribeSc01, TestSize.Level1)
775 {
776 AcquireDataSubscribeManager adsm {};
777 SecurityCollector::Event event {
778 .eventId = 111
779 };
780 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
781 adsm.scSubscribeMap_.insert({111,
782 std::make_shared<AcquireDataSubscribeManager::SecurityCollectorSubscriber>(event)});
783 int result = adsm.SubscribeSc(111, obj);
784 EXPECT_EQ(result, SUCCESS);
785 }
786
787 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrSubscribeSc02, TestSize.Level1)
788 {
789 AcquireDataSubscribeManager adsm {};
790 SecurityCollector::Event event {
791 .eventId = 111
792 };
793 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1202(int64_t eventId, EventCfg &config) 794 [] (int64_t eventId, EventCfg &config) {
795 config.dbTable = "risk_event";
796 config.eventType = 3;
797 config.prog = "security_guard";
798 return true;
799 });
800 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), StartCollectors).WillOnce(
801 Return(false));
802 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
803 int result = adsm.SubscribeSc(111, obj);
804 EXPECT_EQ(result, FAILED);
805 result = adsm.UnSubscribeSc(111);
806 EXPECT_EQ(result, FAILED);
807 }
808
809 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrSubscribeSc03, TestSize.Level1)
810 {
811 AcquireDataSubscribeManager adsm {};
812 SecurityCollector::Event event {
813 .eventId = 111
814 };
815 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1302(int64_t eventId, EventCfg &config) 816 [] (int64_t eventId, EventCfg &config) {
817 config.dbTable = "risk_event";
818 config.eventType = 3;
819 config.prog = "";
820 return true;
821 });
822 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
823 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Subscribe(_)).WillOnce(Return(FAILED));
824 int result = adsm.SubscribeSc(111, obj);
825 EXPECT_EQ(result, FAILED);
826 result = adsm.UnSubscribeSc(111);
827 EXPECT_EQ(result, FAILED);
828 }
829
830 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrSubscribeSc04, TestSize.Level1)
831 {
832 AcquireDataSubscribeManager adsm {};
833 SecurityCollector::Event event {
834 .eventId = 111
835 };
836 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1402(int64_t eventId, EventCfg &config) 837 [] (int64_t eventId, EventCfg &config) {
838 config.dbTable = "risk_event";
839 config.eventType = 3;
840 config.prog = "";
841 return true;
842 });
843 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
844 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Subscribe(_)).WillOnce(Return(SUCCESS));
845 int result = adsm.SubscribeSc(111, obj);
846 EXPECT_EQ(result, SUCCESS);
847 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Unsubscribe(_)).WillOnce(
848 Return(SUCCESS)).WillOnce(Return(FAILED));
849 result = adsm.UnSubscribeSc(111);
850 EXPECT_EQ(result, SUCCESS);
851 AcquireDataSubscribeManager::GetInstance().RemoveSubscribeRecordOnRemoteDied(obj);
852 auto subscriber = std::make_shared<AcquireDataSubscribeManager::SecurityCollectorSubscriber>(event);
853 adsm.scSubscribeMap_.emplace(event.eventId, subscriber);
854 result = adsm.UnSubscribeSc(111);
855 EXPECT_EQ(result, FAILED);
856 }
857
858 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrSubscribeSc05, TestSize.Level1)
859 {
860 AcquireDataSubscribeManager adsm {};
861 SecurityCollector::Event event {
862 .eventId = 111
863 };
864 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1502(int64_t eventId, EventCfg &config) 865 [] (int64_t eventId, EventCfg &config) {
866 return false;
867 });
868 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
869 int result = adsm.SubscribeSc(111, obj);
870 EXPECT_EQ(result, BAD_PARAM);
871 }
872
873 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrSubscribeSc06, TestSize.Level1)
874 {
875 AcquireDataSubscribeManager adsm {};
876 SecurityCollector::Event event {
877 .eventId = 111
878 };
879 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1602(int64_t eventId, EventCfg &config) 880 [] (int64_t eventId, EventCfg &config) {
881 config.dbTable = "risk_event";
882 config.eventType = 3;
883 config.prog = "security_guard";
884 return true;
885 });
886 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), StartCollectors).WillOnce(
887 Return(false));
888 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
889 int result = adsm.SubscribeSc(111, obj);
890 EXPECT_EQ(result, FAILED);
891
892 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), StopCollectors).WillOnce(
893 Return(false));
894 auto collectorListenner = std::make_shared<AcquireDataSubscribeManager::CollectorListenner>(event);
895 adsm.eventToListenner_.emplace(event.eventId, collectorListenner);
896 result = adsm.UnSubscribeSc(111);
897 EXPECT_EQ(result, FAILED);
898 }
899
900 HWTEST_F(SecurityGuardDataCollectSaTest, AcquireDataSubscrUnsubscribeSc01, TestSize.Level1)
901 {
902 AcquireDataSubscribeManager adsm {};
__anon51d2fecd1702(int64_t eventId, EventCfg &config) 903 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillOnce([] (int64_t eventId, EventCfg &config) {
904 config.dbTable = "risk_event";
905 config.eventType = 3;
906 config.prog = "";
907 return false;
908 });
909 int result = adsm.UnSubscribeSc(111);
910 EXPECT_EQ(result, BAD_PARAM);
911 }
912
913 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd01, TestSize.Level1)
914 {
915 MessageParcel data;
916 MessageParcel reply;
917 MessageOption option;
918
919 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
920 data.WriteInt32(DataCollectManagerService::CMD_DATA_REQUEST);
921 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
922 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_COLLECT, data, reply, option);
923 EXPECT_EQ(result, BAD_PARAM);
924 }
925
926 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd02, TestSize.Level1)
927 {
928 MessageParcel data;
929 MessageParcel reply;
930 MessageOption option;
931
932 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
933 data.WriteInt32(DataCollectManagerService::CMD_DATA_REQUEST);
934 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
935 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_REQUEST, data, reply, option);
936 EXPECT_EQ(result, BAD_PARAM);
937 }
938
939 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd03, TestSize.Level1)
940 {
941 MessageParcel data;
942 MessageParcel reply;
943 MessageOption option;
944
945 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
946 data.WriteInt32(DataCollectManagerService::CMD_DATA_SUBSCRIBE);
947 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
948 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_SUBSCRIBE, data, reply, option);
949 EXPECT_EQ(result, BAD_PARAM);
950 }
951
952 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd04, TestSize.Level1)
953 {
954 MessageParcel data;
955 MessageParcel reply;
956 MessageOption option;
957
958 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
959 data.WriteInt32(DataCollectManagerService::CMD_DATA_UNSUBSCRIBE);
960 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
961 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_UNSUBSCRIBE, data, reply, option);
962 EXPECT_EQ(result, BAD_PARAM);
963 }
964
965 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd05, TestSize.Level1)
966 {
967 MessageParcel data;
968 MessageParcel reply;
969 MessageOption option;
970
971 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
972 data.WriteInt32(DataCollectManagerService::CMD_SECURITY_EVENT_QUERY);
973 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
974 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_EVENT_QUERY,
975 data, reply, option);
976 EXPECT_EQ(result, BAD_PARAM);
977 }
978
979 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd06, TestSize.Level1)
980 {
981 MessageParcel data;
982 MessageParcel reply;
983 MessageOption option;
984
985 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
986 data.WriteInt64(0);
987 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
988 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_COLLECT, data, reply, option);
989 EXPECT_EQ(result, BAD_PARAM);
990 }
991
992 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd07, TestSize.Level1)
993 {
994 MessageParcel data;
995 MessageParcel reply;
996 MessageOption option;
997
998 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
999 data.WriteInt64(0);
1000 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1001 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_REQUEST, data, reply, option);
1002 EXPECT_EQ(result, BAD_PARAM);
1003 }
1004
1005 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd08, TestSize.Level1)
1006 {
1007 MessageParcel data;
1008 MessageParcel reply;
1009 MessageOption option;
1010
1011 SecurityCollector::Event event {
1012 .eventId = 0,
1013 .version = "version",
1014 .content = "content",
1015 .extra = ""
1016 };
1017 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event);
1018 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1019 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1020 data.WriteParcelable(&subscribeInfo);
1021 data.WriteRemoteObject(obj);
1022 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1023 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_SUBSCRIBE, data, reply, option);
1024 EXPECT_EQ(result, BAD_PARAM);
1025 }
1026
1027 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd09, TestSize.Level1)
1028 {
1029 MessageParcel data;
1030 MessageParcel reply;
1031 MessageOption option;
1032
1033 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1034 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1035 data.WriteRemoteObject(obj);
1036
1037 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken).WillRepeatedly(
1038 Return(AccessToken::PermissionState::PERMISSION_DENIED));
1039 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(Return(true));
1040 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1041 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_UNSUBSCRIBE, data, reply, option);
1042 EXPECT_EQ(result, BAD_PARAM);
1043 }
1044
1045 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd10, TestSize.Level1)
1046 {
1047 MessageParcel data;
1048 MessageParcel reply;
1049 MessageOption option;
1050
1051 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1052 data.WriteUint32(MAX_QUERY_EVENT_SIZE + 1);
1053 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1054 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_EVENT_QUERY,
1055 data, reply, option);
1056 EXPECT_EQ(result, BAD_PARAM);
1057 }
1058
1059 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd11, TestSize.Level1)
1060 {
1061 MessageParcel data;
1062 MessageParcel reply;
1063 MessageOption option;
1064
1065 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1066 data.WriteUint32(1);
1067 SecurityCollector::SecurityEventRuler ruler;
1068 data.WriteParcelable(&ruler);
1069 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1070 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_EVENT_QUERY,
1071 data, reply, option);
1072 EXPECT_EQ(result, BAD_PARAM);
1073 }
1074
1075 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd12, TestSize.Level1)
1076 {
1077 MessageParcel data;
1078 MessageParcel reply;
1079 MessageOption option;
1080
1081 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1082 data.WriteUint32(1);
1083 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1084 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_COLLECTOR_START,
1085 data, reply, option);
1086 EXPECT_EQ(result, BAD_PARAM);
1087 }
1088
1089 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd13, TestSize.Level1)
1090 {
1091 MessageParcel data;
1092 MessageParcel reply;
1093 MessageOption option;
1094 SecurityCollector::Event event {};
1095 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event, -1, false);
1096 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1097 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1098 data.WriteRemoteObject(obj);
1099
1100 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1101 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_COLLECTOR_START,
1102 data, reply, option);
1103 EXPECT_EQ(result, BAD_PARAM);
1104 }
1105
1106 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd14, TestSize.Level1)
1107 {
1108 MessageParcel data;
1109 MessageParcel reply;
1110 MessageOption option;
1111
1112 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1113 data.WriteUint32(1);
1114 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1115 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_COLLECTOR_START,
1116 data, reply, option);
1117 EXPECT_EQ(result, BAD_PARAM);
1118 }
1119
1120 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd15, TestSize.Level1)
1121 {
1122 MessageParcel data;
1123 MessageParcel reply;
1124 MessageOption option;
1125
1126 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1127 data.WriteFileDescriptor(-1);
1128 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1129 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_CONFIG_UPDATE,
1130 data, reply, option);
1131 EXPECT_EQ(result, BAD_PARAM);
1132 }
1133
1134 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd16, TestSize.Level1)
1135 {
1136 MessageParcel data;
1137 MessageParcel reply;
1138 MessageOption option;
1139
1140 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1141 data.WriteString("test");
1142 data.WriteFileDescriptor(-1);
1143 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1144 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_CONFIG_UPDATE,
1145 data, reply, option);
1146 EXPECT_EQ(result, BAD_PARAM);
1147 }
1148
1149 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd17, TestSize.Level1)
1150 {
1151 MessageParcel data;
1152 MessageParcel reply;
1153 MessageOption option;
1154
1155 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1156 data.WriteString("test");
1157 data.WriteFileDescriptor(1);
1158 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1159 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken).WillOnce(
1160 Return(AccessToken::PermissionState::PERMISSION_DENIED));
1161 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_CONFIG_UPDATE,
1162 data, reply, option);
1163 EXPECT_EQ(result, NO_PERMISSION);
1164 }
1165
1166 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd19, TestSize.Level1)
1167 {
1168 MessageParcel data;
1169 MessageParcel reply;
1170 MessageOption option;
1171 SecurityCollector::Event event {};
1172 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo(event, -1, false);
1173 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1174 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1175 data.WriteRemoteObject(obj);
1176
1177 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1178 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_COLLECTOR_STOP,
1179 data, reply, option);
1180 EXPECT_EQ(result, BAD_PARAM);
1181 }
1182
1183 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithDataRequestCmd20, TestSize.Level1)
1184 {
1185 MessageParcel data;
1186 MessageParcel reply;
1187 MessageOption option;
1188
1189 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1190 data.WriteUint32(1);
1191 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1192 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_SECURITY_COLLECTOR_STOP,
1193 data, reply, option);
1194 EXPECT_EQ(result, BAD_PARAM);
1195 }
1196
1197 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithInvalidCmd, TestSize.Level1)
1198 {
1199 MessageParcel data;
1200 MessageParcel reply;
1201 MessageOption option;
1202
1203 data.WriteInterfaceToken(IDataCollectManager::GetDescriptor());
1204 data.WriteInt32(100);
1205 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1206 int32_t result = service.OnRemoteRequest(100, data, reply, option);
1207
1208 EXPECT_EQ(result, 305);
1209 }
1210
1211 HWTEST_F(SecurityGuardDataCollectSaTest, TestOnRemoteRequestWithInvalidToken, TestSize.Level1)
1212 {
1213 MessageParcel data;
1214 MessageParcel reply;
1215 MessageOption option;
1216 data.WriteInterfaceToken(u"InvalidToken");
1217 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1218 int32_t result = service.OnRemoteRequest(DataCollectManagerService::CMD_DATA_COLLECT, data, reply, option);
1219
1220 EXPECT_EQ(result, 305);
1221 }
1222
1223 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent, TestSize.Level1)
1224 {
1225 SecurityCollector::SecurityEventRuler rule(11111);
1226 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1227 rules.emplace_back(rule);
1228 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1229
1230 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1231 .WillRepeatedly(Return(AccessToken::PermissionState::PERMISSION_DENIED));
1232 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1233 int32_t result = service.QuerySecurityEvent(rules, obj, "");
1234 EXPECT_EQ(result, NO_PERMISSION);
1235 }
1236
1237 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent01, TestSize.Level1)
1238 {
1239 SecurityCollector::SecurityEventRuler rule(11111);
1240 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1241 rules.emplace_back(rule);
1242 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1243 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillRepeatedly(Return(false));
1244 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1245 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1246 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1247 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1248 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1249 .WillOnce(Return(true));
1250 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1251 int32_t result = service.QuerySecurityEvent(rules, obj, "");
1252 EXPECT_EQ(result, SUCCESS);
1253 }
1254
1255 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent02, TestSize.Level1)
1256 {
1257 SecurityCollector::SecurityEventRuler rule(11111);
1258 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1259 rules.emplace_back(rule);
1260 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1261 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillRepeatedly(Return(false));
1262 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1263 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1264 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1265 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1266 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1267 .WillOnce(Return(false));
1268 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1269 int32_t result = service.QuerySecurityEvent(rules, obj, "");
1270 EXPECT_EQ(result, NO_SYSTEMCALL);
1271 }
1272
1273 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent03, TestSize.Level1)
1274 {
1275 SecurityCollector::SecurityEventRuler rule(11111);
1276 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1277 rules.emplace_back(rule);
1278 sptr<MockRemoteObject> obj = nullptr;
1279
1280 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1281 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1282 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1283 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1284 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1285 .WillOnce(Return(true));
1286 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1287 int32_t result = service.QuerySecurityEvent(rules, obj, "");
1288 EXPECT_EQ(result, NULL_OBJECT);
1289 }
1290
1291 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent04, TestSize.Level1)
1292 {
1293 SecurityCollector::SecurityEventRuler rule(11111);
1294 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1295 rules.emplace_back(rule);
1296 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1297 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillRepeatedly(Return(true));
1298 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1299 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1300 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1301 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1302 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1303 .WillOnce(Return(true));
1304 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1305 int32_t result = service.QuerySecurityEvent(rules, obj, "");
1306 EXPECT_EQ(result, SUCCESS);
1307 }
1308
1309 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent05, TestSize.Level1)
1310 {
1311 SecurityCollector::SecurityEventRuler rule(11111);
1312 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1313 rules.emplace_back(rule);
1314 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1315 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillRepeatedly(Return(false));
1316 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1317 int32_t result = service.QuerySecurityEvent(rules, obj, "securityGroup");
1318 EXPECT_EQ(result, BAD_PARAM);
1319 }
1320
1321 HWTEST_F(SecurityGuardDataCollectSaTest, QuerySecurityEvent07, TestSize.Level1)
1322 {
1323 SecurityCollector::SecurityEventRuler rule(11111);
1324 std::vector<SecurityCollector::SecurityEventRuler> rules {};
1325 rules.emplace_back(rule);
1326 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1327 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillRepeatedly(
__anon51d2fecd1802(const std::string &groupName, EventGroupCfg &config) 1328 [] (const std::string &groupName, EventGroupCfg &config) {
1329 config.eventList.insert(11111);
1330 config.permissionList.insert("testPermission");
1331 return true;
1332 });
1333 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1334 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED)).WillOnce(
1335 Return(AccessToken::PermissionState::PERMISSION_DENIED)).WillOnce(
1336 Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1337 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1338 .WillRepeatedly(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1339 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1340 .WillOnce(Return(true)).WillOnce(Return(false));
1341 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1342 int32_t result = service.QuerySecurityEvent(rules, obj, "securityGroup");
1343 EXPECT_EQ(result, SUCCESS);
1344 result = service.QuerySecurityEvent(rules, obj, "securityGroup");
1345 EXPECT_EQ(result, NO_PERMISSION);
1346 result = service.QuerySecurityEvent(rules, obj, "securityGroup");
1347 EXPECT_EQ(result, NO_SYSTEMCALL);
1348 }
1349
1350 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStart01, TestSize.Level1)
1351 {
1352 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1353 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1354
1355 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1356 .WillRepeatedly(Return(AccessToken::PermissionState::PERMISSION_DENIED));
1357 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1358 int32_t result = service.CollectorStart(subscribeInfo, obj);
1359 EXPECT_EQ(result, NO_PERMISSION);
1360 }
1361
1362 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStart02, TestSize.Level1)
1363 {
1364 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1365 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1366
1367 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1368 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1369 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1370 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1371 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1372 .WillOnce(Return(false));
1373 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1374 int32_t result = service.CollectorStart(subscribeInfo, obj);
1375 EXPECT_EQ(result, NO_SYSTEMCALL);
1376 }
1377
1378 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStart03, TestSize.Level1)
1379 {
1380 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1381 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1382
1383 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1384 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1385 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1386 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1387 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1388 .WillOnce(Return(true));
1389 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), CollectorStart(_)).WillOnce(Return(FAILED));
1390 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1391 int32_t result = service.CollectorStart(subscribeInfo, obj);
1392 EXPECT_EQ(result, FAILED);
1393 }
1394
1395 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStart04, TestSize.Level1)
1396 {
1397 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1398 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1399
1400 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1401 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1402 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1403 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1404 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1405 .WillOnce(Return(true));
1406 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), CollectorStart(_)).WillOnce(Return(SUCCESS));
1407 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1408 int32_t result = service.CollectorStart(subscribeInfo, obj);
1409 EXPECT_EQ(result, SUCCESS);
1410 }
1411
1412 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStop01, TestSize.Level1)
1413 {
1414 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1415 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1416
1417 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1418 .WillRepeatedly(Return(AccessToken::PermissionState::PERMISSION_DENIED));
1419 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1420 int32_t result = service.CollectorStop(subscribeInfo, obj);
1421 EXPECT_EQ(result, NO_PERMISSION);
1422 }
1423
1424 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStop02, TestSize.Level1)
1425 {
1426 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1427 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1428
1429 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1430 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1431 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1432 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1433 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1434 .WillOnce(Return(false));
1435 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1436 int32_t result = service.CollectorStop(subscribeInfo, obj);
1437 EXPECT_EQ(result, NO_SYSTEMCALL);
1438 }
1439
1440 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStop03, TestSize.Level1)
1441 {
1442 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1443 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1444
1445 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1446 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1447 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1448 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1449 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1450 .WillOnce(Return(true));
1451 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), CollectorStop(_)).WillOnce(Return(FAILED));
1452 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1453 int32_t result = service.CollectorStop(subscribeInfo, obj);
1454 EXPECT_EQ(result, FAILED);
1455 }
1456
1457 HWTEST_F(SecurityGuardDataCollectSaTest, CollectorStop04, TestSize.Level1)
1458 {
1459 SecurityCollector::SecurityCollectorSubscribeInfo subscribeInfo{};
1460 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1461
1462 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1463 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1464 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1465 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1466 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1467 .WillOnce(Return(true));
1468 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), CollectorStop(_)).WillOnce(Return(SUCCESS));
1469 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1470 int32_t result = service.CollectorStop(subscribeInfo, obj);
1471 EXPECT_EQ(result, SUCCESS);
1472 }
1473
1474 HWTEST_F(SecurityGuardDataCollectSaTest, IsApiHasPermission01, TestSize.Level1)
1475 {
1476 const std::string api = "testString";
1477 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1478 int32_t result = service.IsApiHasPermission(api);
1479 EXPECT_EQ(result, FAILED);
1480 }
1481
1482 HWTEST_F(SecurityGuardDataCollectSaTest, ConfigUpdate01, TestSize.Level1)
1483 {
1484 SecurityGuard::SecurityConfigUpdateInfo subscribeInfo{};
1485 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1486 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_DENIED));
1487 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1488 int32_t result = service.ConfigUpdate(subscribeInfo);
1489 EXPECT_EQ(result, NO_PERMISSION);
1490 }
1491
1492 HWTEST_F(SecurityGuardDataCollectSaTest, ConfigUpdate02, TestSize.Level1)
1493 {
1494 SecurityGuard::SecurityConfigUpdateInfo subscribeInfo{};
1495 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1496 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1497 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1498 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1499 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1500 .WillOnce(Return(false));
1501 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1502 int32_t result = service.ConfigUpdate(subscribeInfo);
1503 EXPECT_EQ(result, NO_SYSTEMCALL);
1504 }
1505
1506 HWTEST_F(SecurityGuardDataCollectSaTest, ConfigUpdate03, TestSize.Level1)
1507 {
1508 SecurityGuard::SecurityConfigUpdateInfo subscribeInfo{};
1509 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1510 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1511 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1512 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1513 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1514 .WillOnce(Return(true));
1515 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1516 int32_t result = service.ConfigUpdate(subscribeInfo);
1517 EXPECT_EQ(result, BAD_PARAM);
1518 }
1519
1520 HWTEST_F(SecurityGuardDataCollectSaTest, ConfigUpdate04, TestSize.Level1)
1521 {
1522 SecurityGuard::SecurityConfigUpdateInfo subscribeInfo(-1,
1523 SECURITY_GUARD_EVENT_CFG_FILE);
1524 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1525
1526 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1527 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1528 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1529 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1530 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1531 .WillOnce(Return(true));
1532 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1533 int32_t result = service.ConfigUpdate(subscribeInfo);
1534 EXPECT_EQ(result, FAILED);
1535 }
1536
1537 HWTEST_F(SecurityGuardDataCollectSaTest, WriteRemoteFileToLocal01, TestSize.Level1)
1538 {
1539 std::ofstream out("/data/test/unittest/resource/test.json");
1540 std::string errtmp = R"({
1541 "version":"001",
1542 "apps":""
1543 })";
1544 out << errtmp << std::endl;
1545 int32_t fd = open("/data/test/unittest/resource/test.json", O_RDONLY);
1546 SecurityGuard::SecurityConfigUpdateInfo subscribeInfo(fd, "test.json");
1547
1548 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1549 std::string toPath = "/data/test/unittest/resource/";
1550 int32_t result = service.WriteRemoteFileToLocal(subscribeInfo, toPath + "testFile.json");
1551 close(fd);
1552 EXPECT_EQ(result, FAILED);
1553 }
1554
1555 HWTEST_F(SecurityGuardDataCollectSaTest, WriteRemoteFileToLocal02, TestSize.Level1)
1556 {
1557 std::ofstream out("/data/test/unittest/resource/test.json");
1558 std::string errtmp = R"({
1559 "version":"001",
1560 "apps":""
1561 })";
1562 out << errtmp << std::endl;
1563 int32_t fd = 0;
1564 SecurityGuard::SecurityConfigUpdateInfo subscribeInfo(fd, "test.json");
1565
1566 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1567 std::string toPath = "/data/test/unittest/resource/";
1568 int32_t result = service.WriteRemoteFileToLocal(subscribeInfo, toPath + "testFile.json");
1569 EXPECT_EQ(result, FAILED);
1570 }
1571
1572 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventConfig001, TestSize.Level1)
1573 {
1574 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1575 std::string queryInfo;
1576 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1577 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_DENIED));
1578 int32_t ret = service.QuerySecurityEventConfig(queryInfo);
1579 EXPECT_EQ(ret, NO_PERMISSION);
1580 }
1581
1582 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventConfig002, TestSize.Level1)
1583 {
1584 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1585 std::string queryInfo;
1586 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), VerifyAccessToken)
1587 .WillOnce(Return(AccessToken::PermissionState::PERMISSION_GRANTED));
1588 EXPECT_CALL(*(AccessToken::AccessTokenKit::GetInterface()), GetTokenType)
1589 .WillOnce(Return(AccessToken::TypeATokenTypeEnum::TOKEN_HAP));
1590 EXPECT_CALL(*(AccessToken::TokenIdKit::GetInterface()), IsSystemAppByFullTokenID)
1591 .WillOnce(Return(true));
1592 std::vector<EventCfg> emptyVector{};
1593 EXPECT_CALL(ConfigDataManager::GetInstance(), GetAllEventConfigs).WillOnce(Return(emptyVector));
1594 int32_t ret = service.QuerySecurityEventConfig(queryInfo);
1595 EXPECT_EQ(ret, SUCCESS);
1596 }
1597
1598 HWTEST_F(SecurityGuardDataCollectSaTest, QueryEventConfig003, TestSize.Level1)
1599 {
1600 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1601 EventCfg cfg {};
1602 std::string queryInfo;
1603 std::vector<EventCfg> vector{};
1604 vector.emplace_back(cfg);
1605 EXPECT_CALL(ConfigDataManager::GetInstance(), GetAllEventConfigs).WillOnce(Return(vector));
1606 int32_t ret = service.QueryEventConfig(queryInfo);
1607 EXPECT_EQ(ret, SUCCESS);
1608 }
1609
1610 HWTEST_F(SecurityGuardDataCollectSaTest, ParseTrustListFile001, TestSize.Level1)
1611 {
1612 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1613 EXPECT_FALSE(service.ParseTrustListFile(""));
1614 }
1615
1616 HWTEST_F(SecurityGuardDataCollectSaTest, SubscribeScInSg, TestSize.Level1)
1617 {
1618 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1619 SecurityCollector::Event event {};
1620 event.eventId = 0;
1621 auto collectorListenner = std::make_shared<AcquireDataSubscribeManager::CollectorListenner>(event);
1622 AcquireDataSubscribeManager::GetInstance().eventToListenner_.emplace(event.eventId, collectorListenner);
1623 int ret = AcquireDataSubscribeManager::GetInstance().SubscribeScInSg(0, obj);
1624 EXPECT_CALL(*(DataFormat::GetInterface()), CheckRiskContent).WillOnce(Return(false)).WillOnce(Return(true));
1625 AcquireDataSubscribeManager::GetInstance().UploadEvent(event);
1626 AcquireDataSubscribeManager::GetInstance().UploadEvent(event);
1627 EXPECT_EQ(ret, SUCCESS);
1628 AcquireDataSubscribeManager::GetInstance().eventToListenner_.clear();
1629 }
1630
1631 HWTEST_F(SecurityGuardDataCollectSaTest, SubscribeScInSg01, TestSize.Level1)
1632 {
1633 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1634 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), StartCollectors).WillOnce(
1635 Return(true));
1636 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), Mute).WillOnce(
1637 Return(SUCCESS));
1638 SecurityCollector::SecurityCollectorEventMuteFilter collectorFilter {};
1639 collectorFilter.eventId = 1;
1640 collectorFilter.isSetMute = true;
1641 AcquireDataSubscribeManager::GetInstance().muteCache_[1][obj].emplace_back(collectorFilter);
1642 int ret = AcquireDataSubscribeManager::GetInstance().SubscribeScInSg(1, obj);
1643 EXPECT_EQ(ret, SUCCESS);
1644 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1645 AcquireDataSubscribeManager::GetInstance().eventToListenner_.clear();
1646 }
1647
1648 HWTEST_F(SecurityGuardDataCollectSaTest, SubscribeScInSg02, TestSize.Level1)
1649 {
1650 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1651 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), StartCollectors).WillOnce(
1652 Return(true));
1653 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), Unmute).WillOnce(
1654 Return(FAILED));
1655 SecurityCollector::SecurityCollectorEventMuteFilter collectorFilter {};
1656 collectorFilter.eventId = 1;
1657 collectorFilter.isSetMute = false;
1658 AcquireDataSubscribeManager::GetInstance().muteCache_[1][obj].emplace_back(collectorFilter);
1659 int ret = AcquireDataSubscribeManager::GetInstance().SubscribeScInSg(1, obj);
1660 EXPECT_EQ(ret, SUCCESS);
1661 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1662 }
1663
1664 HWTEST_F(SecurityGuardDataCollectSaTest, SubscribeScInSc, TestSize.Level1)
1665 {
1666 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1667 SecurityCollector::Event event {};
1668 event.eventId = 0;
1669 auto subscriber = std::make_shared<AcquireDataSubscribeManager::SecurityCollectorSubscriber>(event);
1670 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.emplace(event.eventId, subscriber);
1671 int ret = AcquireDataSubscribeManager::GetInstance().SubscribeScInSc(0, obj);
1672 EXPECT_EQ(ret, SUCCESS);
1673 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.clear();
1674 }
1675
1676 HWTEST_F(SecurityGuardDataCollectSaTest, SubscribeScInSc01, TestSize.Level1)
1677 {
1678 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1679 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Subscribe).WillOnce(
1680 Return(SecurityCollector::SUCCESS));
1681 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Mute).WillOnce(
1682 Return(SecurityCollector::SUCCESS));
1683 SecurityCollector::SecurityCollectorEventMuteFilter collectorFilter {};
1684 collectorFilter.eventId = 1;
1685 collectorFilter.isSetMute = true;
1686 AcquireDataSubscribeManager::GetInstance().muteCache_[1][obj].emplace_back(collectorFilter);
1687 int ret = AcquireDataSubscribeManager::GetInstance().SubscribeScInSc(1, obj);
1688 EXPECT_EQ(ret, SUCCESS);
1689 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.clear();
1690 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1691 }
1692
1693 HWTEST_F(SecurityGuardDataCollectSaTest, SubscribeScInSc02, TestSize.Level1)
1694 {
1695 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1696 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Subscribe).WillOnce(
1697 Return(SecurityCollector::SUCCESS));
1698 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Unmute).WillOnce(
1699 Return(SecurityCollector::SUCCESS));
1700 SecurityCollector::SecurityCollectorEventMuteFilter collectorFilter {};
1701 collectorFilter.eventId = 1;
1702 collectorFilter.isSetMute = false;
1703 AcquireDataSubscribeManager::GetInstance().muteCache_[1][obj].emplace_back(collectorFilter);
1704 int ret = AcquireDataSubscribeManager::GetInstance().SubscribeScInSc(1, obj);
1705 EXPECT_EQ(ret, SUCCESS);
1706 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.clear();
1707 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1708 }
1709
1710 HWTEST_F(SecurityGuardDataCollectSaTest, UnSubscribeScAndDb, TestSize.Level1)
1711 {
1712 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1713 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb(_, _))
1714 .WillOnce(Return(FAILED));
1715 int ret = AcquireDataSubscribeManager::GetInstance().UnSubscribeScAndDb(111);
1716 EXPECT_EQ(ret, FAILED);
1717 }
1718
1719 HWTEST_F(SecurityGuardDataCollectSaTest, UnSubscribeScAndDb01, TestSize.Level1)
1720 {
1721 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1722 EXPECT_CALL(DatabaseManager::GetInstance(), UnSubscribeDb(_, _)).WillOnce(Return(SUCCESS));
1723 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(Return(false));
1724 int ret = AcquireDataSubscribeManager::GetInstance().UnSubscribeScAndDb(111);
1725 EXPECT_EQ(ret, BAD_PARAM);
1726 }
1727
1728 HWTEST_F(SecurityGuardDataCollectSaTest, IsEventGroupHasPermission, TestSize.Level1)
1729 {
1730 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillRepeatedly(
__anon51d2fecd1902(const std::string &groupName, EventGroupCfg &config) 1731 [] (const std::string &groupName, EventGroupCfg &config) {
1732 config.permissionList.insert("testPermission");
1733 return true;
1734 });
1735
1736 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1737 int32_t result = service.IsEventGroupHasPermission("securityGroup", {11111});
1738 EXPECT_EQ(result, BAD_PARAM);
1739 }
1740
1741 HWTEST_F(SecurityGuardDataCollectSaTest, Mute, TestSize.Level1)
1742 {
1743 SecurityEventFilter subscribeMute {};
1744 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1745 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1746 int32_t result = service.Mute(subscribeMute, obj, "111");
1747 EXPECT_EQ(result, BAD_PARAM);
1748 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillOnce(Return(false));
1749 subscribeMute.filter_.eventGroup = "securityGroup";
1750 result = service.Mute(subscribeMute, obj, "111");
1751 EXPECT_EQ(result, BAD_PARAM);
1752 }
1753
1754 HWTEST_F(SecurityGuardDataCollectSaTest, Unmute, TestSize.Level1)
1755 {
1756 SecurityEventFilter subscribeMute {};
1757 DataCollectManagerService service(DATA_COLLECT_MANAGER_SA_ID, true);
1758 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1759 int32_t result = service.Unmute(subscribeMute, obj, "111");
1760 EXPECT_EQ(result, BAD_PARAM);
1761 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventGroupConfig).WillOnce(Return(false));
1762 subscribeMute.filter_.eventGroup = "securityGroup";
1763 result = service.Unmute(subscribeMute, obj, "111");
1764 EXPECT_EQ(result, BAD_PARAM);
1765 }
1766
1767 HWTEST_F(SecurityGuardDataCollectSaTest, InsertSubscribeMute, TestSize.Level1)
1768 {
1769 SecurityEventFilter subscribeMute {};
1770 subscribeMute.filter_.eventId = 111;
1771 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1a02(int64_t eventId, EventCfg &config) 1772 [] (int64_t eventId, EventCfg &config) {
1773 config.dbTable = "risk_event";
1774 config.eventType = 3;
1775 config.prog = "security_guard";
1776 return true;
1777 });
1778 SecurityCollector::SecurityCollectorEventMuteFilter collectorFilter {};
1779 collectorFilter.eventId = 111;
1780 SecurityCollector::Event event {
1781 .eventId = 111
1782 };
1783 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1784 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1785 EXPECT_EQ(result, SUCCESS);
1786
1787 auto collectorListenner = std::make_shared<AcquireDataSubscribeManager::CollectorListenner>(event);
1788 AcquireDataSubscribeManager::GetInstance().eventToListenner_.emplace(event.eventId, collectorListenner);
1789 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), Mute).WillOnce(
1790 Return(false)).WillOnce(Return(true));
1791 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1792 EXPECT_EQ(result, FAILED);
1793 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1794 EXPECT_EQ(result, SUCCESS);
1795 constexpr size_t maxMute = 255;
1796 for (size_t i = 0; i < maxMute; i++) {
1797 AcquireDataSubscribeManager::GetInstance().muteCache_[111][obj].emplace_back(collectorFilter);
1798 }
1799 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1800 EXPECT_EQ(result, BAD_PARAM);
1801 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1802 EXPECT_EQ(result, BAD_PARAM);
1803 AcquireDataSubscribeManager::GetInstance().eventToListenner_.clear();
1804 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1805 }
1806
1807 HWTEST_F(SecurityGuardDataCollectSaTest, InsertSubscribeMute01, TestSize.Level1)
1808 {
1809 SecurityEventFilter subscribeMute {};
1810 subscribeMute.filter_.eventId = 111;
1811 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1b02(int64_t eventId, EventCfg &config) 1812 [] (int64_t eventId, EventCfg &config) {
1813 config.dbTable = "risk_event";
1814 config.eventType = 3;
1815 config.prog = "";
1816 return true;
1817 });
1818 SecurityCollector::Event event {
1819 .eventId = 111
1820 };
1821 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1822 int32_t result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1823 EXPECT_EQ(result, SUCCESS);
1824 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.insert({111,
1825 std::make_shared<AcquireDataSubscribeManager::SecurityCollectorSubscriber>(event)});
1826
1827 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Mute).WillOnce(
1828 Return(FAILED)).WillOnce(Return(SUCCESS));
1829 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1830 EXPECT_EQ(result, FAILED);
1831 result = AcquireDataSubscribeManager::GetInstance().InsertSubscribeMute(subscribeMute, obj, "1111");
1832 EXPECT_EQ(result, SUCCESS);
1833 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.clear();
1834 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1835 }
1836
1837 HWTEST_F(SecurityGuardDataCollectSaTest, RemoveSubscribeMute, TestSize.Level1)
1838 {
1839 SecurityEventFilter subscribeMute {};
1840 subscribeMute.filter_.eventId = 111;
1841 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1c02(int64_t eventId, EventCfg &config) 1842 [] (int64_t eventId, EventCfg &config) {
1843 config.dbTable = "risk_event";
1844 config.eventType = 3;
1845 config.prog = "security_guard";
1846 return true;
1847 });
1848 SecurityCollector::SecurityCollectorEventMuteFilter collectorFilter {};
1849 collectorFilter.eventId = 111;
1850 SecurityCollector::Event event {
1851 .eventId = 111
1852 };
1853 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1854 int32_t result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1855 EXPECT_EQ(result, SUCCESS);
1856
1857 auto collectorListenner = std::make_shared<AcquireDataSubscribeManager::CollectorListenner>(event);
1858 AcquireDataSubscribeManager::GetInstance().eventToListenner_.emplace(event.eventId, collectorListenner);
1859 EXPECT_CALL(SecurityCollector::DataCollection::GetInstance(), Unmute).WillOnce(
1860 Return(false)).WillOnce(Return(true));
1861 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1862 EXPECT_EQ(result, FAILED);
1863 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1864 EXPECT_EQ(result, SUCCESS);
1865 constexpr size_t maxMute = 255;
1866 for (size_t i = 0; i < maxMute; i++) {
1867 AcquireDataSubscribeManager::GetInstance().muteCache_[111][obj].emplace_back(collectorFilter);
1868 }
1869 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1870 EXPECT_EQ(result, BAD_PARAM);
1871 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1872 EXPECT_EQ(result, BAD_PARAM);
1873 AcquireDataSubscribeManager::GetInstance().eventToListenner_.clear();
1874 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1875 }
1876
1877 HWTEST_F(SecurityGuardDataCollectSaTest, RemoveSubscribeMute01, TestSize.Level1)
1878 {
1879 SecurityEventFilter subscribeMute {};
1880 subscribeMute.filter_.eventId = 111;
1881 EXPECT_CALL(ConfigDataManager::GetInstance(), GetEventConfig).WillRepeatedly(
__anon51d2fecd1d02(int64_t eventId, EventCfg &config) 1882 [] (int64_t eventId, EventCfg &config) {
1883 config.dbTable = "risk_event";
1884 config.eventType = 3;
1885 config.prog = "";
1886 return true;
1887 });
1888 SecurityCollector::Event event {
1889 .eventId = 111
1890 };
1891 sptr<MockRemoteObject> obj(new (std::nothrow) MockRemoteObject());
1892 int32_t result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1893 EXPECT_EQ(result, SUCCESS);
1894 AcquireDataSubscribeManager::GetInstance().scSubscribeMap_.insert({111,
1895 std::make_shared<AcquireDataSubscribeManager::SecurityCollectorSubscriber>(event)});
1896
1897 EXPECT_CALL(SecurityCollector::CollectorManager::GetInstance(), Unmute).WillOnce(
1898 Return(FAILED)).WillOnce(Return(SUCCESS));
1899 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1900 EXPECT_EQ(result, FAILED);
1901 result = AcquireDataSubscribeManager::GetInstance().RemoveSubscribeMute(subscribeMute, obj, "1111");
1902 EXPECT_EQ(result, SUCCESS);
1903 AcquireDataSubscribeManager::GetInstance().eventToListenner_.clear();
1904 AcquireDataSubscribeManager::GetInstance().muteCache_.clear();
1905 }
1906 }
1907