• 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 <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