• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "dlp_feature_info_test.h"
17 #include <gtest/gtest.h>
18 #include <securec.h>
19 #include "dlp_feature_info.h"
20 #include "dlp_permission.h"
21 #include "dlp_permission_log.h"
22 #include "huks_apply_permission_test_common.h"
23 
24 using namespace testing::ext;
25 using namespace OHOS;
26 using namespace OHOS::Security::DlpPermission;
27 using namespace std;
28 
29 namespace {
30 static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {
31     LOG_CORE, SECURITY_DOMAIN_DLP_PERMISSION, "DlpFeatureInfoTest" };
32 static const std::string MDM_ENABLE_VALUE = "status";
33 static const std::string MDM_BUNDLE_NAME = "appId";
34 }
35 
SetUpTestCase()36 void DlpFeatureInfoTest::SetUpTestCase() {}
37 
TearDownTestCase()38 void DlpFeatureInfoTest::TearDownTestCase() {}
39 
SetUp()40 void DlpFeatureInfoTest::SetUp() {}
41 
TearDown()42 void DlpFeatureInfoTest::TearDown() {}
43 
44 /**
45  * @tc.name: SaveDlpFeatureInfoToFile001
46  * @tc.desc: SaveDlpFeatureInfoToFile test
47  * @tc.type: FUNC
48  * @tc.require:
49  */
50 HWTEST_F(DlpFeatureInfoTest, SaveDlpFeatureInfoToFile001, TestSize.Level0)
51 {
52     DLP_LOG_INFO(LABEL, "SaveDlpFeatureInfoToFile001");
53 
54     int32_t ret = SetIdsTokenForAcrossAccountsPermission();
55     EXPECT_EQ(ret, DLP_OK);
56 
57     uint32_t dlpFeatureInfo = 1;
58     std::string callerBundleName = "com.dlpFeatureInfo.test";
59     unordered_json featureJson;
60     featureJson[MDM_BUNDLE_NAME] = callerBundleName;
61     featureJson[MDM_ENABLE_VALUE] = dlpFeatureInfo;
62 
63     ret = DlpFeatureInfo::SaveDlpFeatureInfoToFile(featureJson);
64     EXPECT_NE(ret, DLP_SERVICE_ERROR_VALUE_INVALID);
65 }
66 
67 /**
68  * @tc.name: SaveDlpFeatureInfoToFile002
69  * @tc.desc: SaveDlpFeatureInfoToFile have no status
70  * @tc.type: FUNC
71  * @tc.require:
72  */
73 HWTEST_F(DlpFeatureInfoTest, SaveDlpFeatureInfoToFile002, TestSize.Level0)
74 {
75     DLP_LOG_INFO(LABEL, "SaveDlpFeatureInfoToFile002");
76 
77     std::string callerBundleName = "com.dlpFeatureInfo.test";
78     unordered_json featureJson;
79     featureJson[MDM_BUNDLE_NAME] = callerBundleName;
80 
81     int32_t ret = DlpFeatureInfo::SaveDlpFeatureInfoToFile(featureJson);
82     EXPECT_EQ(ret, DLP_SERVICE_ERROR_VALUE_INVALID);
83 }
84 
85 /**
86  * @tc.name: SaveDlpFeatureInfoToFile003
87  * @tc.desc: SaveDlpFeatureInfoToFile have invalid dlpFeatureInfo
88  * @tc.type: FUNC
89  * @tc.require:
90  */
91 HWTEST_F(DlpFeatureInfoTest, SaveDlpFeatureInfoToFile003, TestSize.Level0)
92 {
93     DLP_LOG_INFO(LABEL, "SaveDlpFeatureInfoToFile003");
94 
95     uint32_t dlpFeatureInfo = -1;
96     std::string callerBundleName = "com.dlpFeatureInfo.test";
97     unordered_json featureJson;
98     featureJson[MDM_BUNDLE_NAME] = callerBundleName;
99     featureJson[MDM_ENABLE_VALUE] = dlpFeatureInfo;
100 
101     int32_t ret = DlpFeatureInfo::SaveDlpFeatureInfoToFile(featureJson);
102     EXPECT_EQ(ret, DLP_SERVICE_ERROR_VALUE_INVALID);
103 }
104 
105 /**
106  * @tc.name: SaveDlpFeatureInfoToFile004
107  * @tc.desc: SaveDlpFeatureInfoToFile have no huks permission
108  * @tc.type: FUNC
109  * @tc.require:
110  */
111 HWTEST_F(DlpFeatureInfoTest, SaveDlpFeatureInfoToFile004, TestSize.Level0)
112 {
113     DLP_LOG_INFO(LABEL, "SaveDlpFeatureInfoToFile004");
114 
115     uint32_t dlpFeatureInfo = 1;
116     std::string callerBundleName = "com.dlpFeatureInfo.test";
117     unordered_json featureJson;
118     featureJson[MDM_BUNDLE_NAME] = callerBundleName;
119     featureJson[MDM_ENABLE_VALUE] = dlpFeatureInfo;
120 
121     int32_t ret = DlpFeatureInfo::SaveDlpFeatureInfoToFile(featureJson);
122     EXPECT_NE(ret, DLP_SERVICE_ERROR_MEMORY_OPERATE_FAIL);
123 }