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 <gtest/gtest.h>
17
18 #include "edm_ipc_interface_code.h"
19 #include "func_code.h"
20 #include "kiosk_feature.h"
21 #define private public
22 #include "kiosk_feature_plugin.h"
23 #undef private
24 #include "parameters.h"
25 #include "utils.h"
26
27 using namespace testing::ext;
28 using namespace testing;
29
30 namespace OHOS {
31 namespace EDM {
32 namespace TEST {
33
34 class KioskFeaturePluginTest : public testing::Test {
35 protected:
36 static void SetUpTestSuite(void);
37
38 static void TearDownTestSuite(void);
39 };
40
SetUpTestSuite(void)41 void KioskFeaturePluginTest::SetUpTestSuite(void)
42 {
43 Utils::SetEdmInitialEnv();
44 }
45
TearDownTestSuite(void)46 void KioskFeaturePluginTest::TearDownTestSuite(void)
47 {
48 Utils::ResetTokenTypeAndUid();
49 ASSERT_TRUE(Utils::IsOriginalUTEnv());
50 std::cout << "now ut process is orignal ut env : " << Utils::IsOriginalUTEnv() << std::endl;
51 }
52
53 /**
54 * @tc.name: TestPluginBasicInfo
55 * @tc.desc: Test TestPluginBasicInfo function.
56 * @tc.type: FUNC
57 */
58 HWTEST_F(KioskFeaturePluginTest, TestPluginBasicInfo, TestSize.Level1)
59 {
60 std::shared_ptr<IPlugin> plugin = KioskFeaturePlugin::GetPlugin();
61 std::uint32_t code = plugin->GetCode();
62 EXPECT_TRUE(code == EdmInterfaceCode::SET_KIOSK_FEATURE);
63 std::string policyName = plugin->GetPolicyName();
64 EXPECT_TRUE(policyName == PolicyName::POLICY_SET_KIOSK_FEATURE);
65 std::string permissionName =
66 plugin->GetPermission(FuncOperateType::SET, IPlugin::PermissionType::SUPER_DEVICE_ADMIN, "");
67 EXPECT_TRUE(permissionName == EdmPermission::PERMISSION_ENTERPRISE_SET_KIOSK);
68 }
69
70 /**
71 * @tc.name: TestOnSetPolicyInputNull
72 * @tc.desc: Test TestOnSetPolicy function.
73 * @tc.type: FUNC
74 */
75 HWTEST_F(KioskFeaturePluginTest, TestOnSetPolicyInputNull, TestSize.Level1)
76 {
77 std::shared_ptr<KioskFeaturePlugin> plugin = std::make_shared<KioskFeaturePlugin>();
78 std::vector<int32_t> data;
79 std::vector<int32_t> currentData;
80 std::vector<int32_t> mergeData;
81 ErrCode errCode = plugin->OnSetPolicy(data, currentData, mergeData, EdmConstants::DEFAULT_USER_ID);
82 EXPECT_TRUE(errCode == ERR_OK);
83 ASSERT_FALSE(OHOS::system::GetBoolParameter(
84 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_NOTIFICATION_CENTER, false));
85 ASSERT_FALSE(OHOS::system::GetBoolParameter(EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_CONTROL_CENTER,
86 false));
87 }
88
89 /**
90 * @tc.name: TestOnSetPolicyAllowNotifyCenter
91 * @tc.desc: Test TestOnSetPolicy function.
92 * @tc.type: FUNC
93 */
94 HWTEST_F(KioskFeaturePluginTest, TestOnSetPolicyAllowNotifyCenter, TestSize.Level1)
95 {
96 std::shared_ptr<KioskFeaturePlugin> plugin = std::make_shared<KioskFeaturePlugin>();
97 std::vector<int32_t> data;
98 data.push_back(static_cast<int32_t>(KioskFeature::ALLOW_NOTIFICATION_CENTER));
99 data.push_back(static_cast<int32_t>(KioskFeature::ALLOW_CONTROL_CENTER));
100 std::vector<int32_t> currentData;
101 std::vector<int32_t> mergeData;
102 ErrCode errCode = plugin->OnSetPolicy(data, currentData, mergeData, EdmConstants::DEFAULT_USER_ID);
103 EXPECT_TRUE(errCode == ERR_OK);
104 ASSERT_TRUE(OHOS::system::GetBoolParameter(
105 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_NOTIFICATION_CENTER, false));
106 ASSERT_TRUE(OHOS::system::GetBoolParameter(
107 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_CONTROL_CENTER, false));
108 }
109
110 /**
111 * @tc.name: TestSetDefaultKioskFeaturesTrue
112 * @tc.desc: Test SetDefaultKioskFeatures function.
113 * @tc.type: FUNC
114 */
115 HWTEST_F(KioskFeaturePluginTest, TestSetDefaultKioskFeaturesTrue, TestSize.Level1)
116 {
117 std::shared_ptr<KioskFeaturePlugin> plugin = std::make_shared<KioskFeaturePlugin>();
118 plugin->SetDefaultKioskFeatures(true);
119 ASSERT_TRUE(OHOS::system::GetBoolParameter(
120 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_NOTIFICATION_CENTER, false));
121 ASSERT_TRUE(OHOS::system::GetBoolParameter(EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_CONTROL_CENTER,
122 false));
123 }
124
125 /**
126 * @tc.name: TestSetDefaultKioskFeaturesFalse
127 * @tc.desc: Test SetDefaultKioskFeatures function.
128 * @tc.type: FUNC
129 */
130 HWTEST_F(KioskFeaturePluginTest, TestSetDefaultKioskFeaturesFalse, TestSize.Level1)
131 {
132 std::shared_ptr<KioskFeaturePlugin> plugin = std::make_shared<KioskFeaturePlugin>();
133 plugin->SetDefaultKioskFeatures(false);
134 ASSERT_FALSE(OHOS::system::GetBoolParameter(
135 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_NOTIFICATION_CENTER, false));
136 ASSERT_FALSE(OHOS::system::GetBoolParameter(
137 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_CONTROL_CENTER, false));
138 }
139
140 /**
141 * @tc.name: TestSetSpecifiedKioskFeaturesNormal
142 * @tc.desc: Test SetSpecifiedKioskFeatures function.
143 * @tc.type: FUNC
144 */
145 HWTEST_F(KioskFeaturePluginTest, TestSetSpecifiedKioskFeaturesNormal, TestSize.Level1)
146 {
147 std::shared_ptr<KioskFeaturePlugin> plugin = std::make_shared<KioskFeaturePlugin>();
148 ErrCode retOne = plugin->SetSpecifiedKioskFeatures(static_cast<int32_t>(KioskFeature::ALLOW_NOTIFICATION_CENTER));
149 EXPECT_TRUE(retOne == ERR_OK);
150 ASSERT_TRUE(OHOS::system::GetBoolParameter(
151 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_NOTIFICATION_CENTER, false));
152 ErrCode retTwo = plugin->SetSpecifiedKioskFeatures(static_cast<int32_t>(KioskFeature::ALLOW_CONTROL_CENTER));
153 EXPECT_TRUE(retTwo == ERR_OK);
154 ASSERT_TRUE(OHOS::system::GetBoolParameter(
155 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_CONTROL_CENTER, false));
156 ErrCode retInvalidCode = plugin->SetSpecifiedKioskFeatures(100);
157 EXPECT_TRUE(retInvalidCode == EdmReturnErrCode::PARAMETER_VERIFICATION_FAILED);
158 }
159
160 /**
161 * @tc.name: TestOnAdminRemove
162 * @tc.desc: Test TestOnAdminRemove function.
163 * @tc.type: FUNC
164 */
165 HWTEST_F(KioskFeaturePluginTest, TestOnAdminRemove, TestSize.Level1)
166 {
167 std::shared_ptr<KioskFeaturePlugin> plugin = std::make_shared<KioskFeaturePlugin>();
168 std::vector<int32_t> data;
169 std::vector<int32_t> mergeData;
170 ErrCode retOne = plugin->OnAdminRemove("", data, mergeData, EdmConstants::DEFAULT_USER_ID);
171 EXPECT_TRUE(retOne == ERR_OK);
172 ASSERT_FALSE(OHOS::system::GetBoolParameter(
173 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_NOTIFICATION_CENTER, false));
174 ASSERT_FALSE(OHOS::system::GetBoolParameter(
175 EdmConstants::ApplicationManager::PARAM_EDM_KIOSK_ALLOW_CONTROL_CENTER, false));
176 }
177
178 } // namespace TEST
179 } // namespace EDM
180 } // namespace OHOS