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 }