1 /* 2 * Copyright (c) 2022-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 #ifndef EDM_UNIT_TEST_IPLUGIN_TEMPLATE_TEST_H 17 #define EDM_UNIT_TEST_IPLUGIN_TEMPLATE_TEST_H 18 19 #include <gtest/gtest.h> 20 21 #include <map> 22 #include <string> 23 #include <vector> 24 25 #include "array_map_serializer.h" 26 #include "array_string_serializer.h" 27 #include "bool_serializer.h" 28 #include "func_code_utils.h" 29 #include "iplugin.h" 30 #include "json_serializer.h" 31 #include "map_string_serializer.h" 32 #include "plugin_manager.h" 33 #include "plugin_singleton.h" 34 #include "string_serializer.h" 35 36 namespace OHOS { 37 namespace EDM { 38 namespace TEST { 39 static bool g_visit = false; 40 namespace PLUGIN { 41 #ifndef ARRAY_TEST_PLUGIN 42 #define ARRAY_TEST_PLUGIN 43 44 class ArrayTestPlugin : public PluginSingleton<ArrayTestPlugin, std::vector<std::string>> { 45 public: InitPlugin(std::shared_ptr<IPluginTemplate<ArrayTestPlugin,std::vector<std::string>>> ptr)46 void InitPlugin(std::shared_ptr<IPluginTemplate<ArrayTestPlugin, std::vector<std::string>>> ptr) override 47 { 48 int policyCode = 10; 49 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 50 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 51 ptr->InitAttribute(policyCode, "ArrayTestPlugin", config); 52 ptr->SetSerializer(ArrayStringSerializer::GetInstance()); 53 } 54 }; 55 56 #endif // ARRAY_TEST_PLUGIN 57 58 #ifndef BOOL_TEST_PLUGIN 59 #define BOOL_TEST_PLUGIN 60 61 class BoolTestPlugin : public PluginSingleton<BoolTestPlugin, bool> { 62 public: InitPlugin(std::shared_ptr<IPluginTemplate<BoolTestPlugin,bool>> ptr)63 void InitPlugin(std::shared_ptr<IPluginTemplate<BoolTestPlugin, bool>> ptr) override 64 { 65 int policyCode = 11; 66 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 67 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 68 ptr->InitAttribute(policyCode, "BoolTestPlugin", config); 69 ptr->SetSerializer(BoolSerializer::GetInstance()); 70 } 71 }; 72 73 #endif // BOOL_TEST_PLUGIN 74 75 #ifndef MAP_TEST_PLUGIN 76 #define MAP_TEST_PLUGIN 77 78 class MapTestPlugin : public PluginSingleton<MapTestPlugin, std::map<std::string, std::string>> { 79 public: InitPlugin(std::shared_ptr<IPluginTemplate<MapTestPlugin,std::map<std::string,std::string>>> ptr)80 void InitPlugin(std::shared_ptr<IPluginTemplate<MapTestPlugin, std::map<std::string, std::string>>> ptr) override 81 { 82 int policyCode = 12; 83 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 84 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 85 ptr->InitAttribute(policyCode, "MapTestPlugin", config); 86 ptr->SetSerializer(MapStringSerializer::GetInstance()); 87 } 88 }; 89 90 #endif // MAP_TEST_PLUGIN 91 92 #ifndef ARRAY_MAP_TEST_PLUGIN 93 #define ARRAY_MAP_TEST_PLUGIN 94 95 class ArrayMapTestPlugin : public PluginSingleton<ArrayMapTestPlugin, std::vector<std::map<std::string, std::string>>> { 96 public: InitPlugin(std::shared_ptr<IPluginTemplate<ArrayMapTestPlugin,std::vector<std::map<std::string,std::string>>>> ptr)97 void InitPlugin(std::shared_ptr<IPluginTemplate<ArrayMapTestPlugin, 98 std::vector<std::map<std::string, std::string>>>> ptr) override 99 { 100 int policyCode = 13; 101 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 102 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 103 ptr->InitAttribute(policyCode, "ArrayMapTestPlugin", config); 104 ptr->SetSerializer(ArrayMapSerializer::GetInstance()); 105 } 106 }; 107 108 #endif // ARRAY_MAP_TEST_PLUGIN 109 110 #ifndef JSON_TEST_PLUGIN 111 #define JSON_TEST_PLUGIN 112 113 class JsonTestPlugin : public PluginSingleton<JsonTestPlugin, Json::Value> { 114 public: InitPlugin(std::shared_ptr<IPluginTemplate<JsonTestPlugin,Json::Value>> ptr)115 void InitPlugin(std::shared_ptr<IPluginTemplate<JsonTestPlugin, Json::Value>> ptr) override 116 { 117 int policyCode = 14; 118 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 119 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 120 ptr->InitAttribute(policyCode, "JsonTestPlugin", config); 121 ptr->SetSerializer(JsonSerializer::GetInstance()); 122 } 123 }; 124 125 #endif // JSON_TEST_PLUGIN 126 127 #ifndef STRING_TEST_PLUGIN 128 #define STRING_TEST_PLUGIN 129 130 class StringTestPlugin : public PluginSingleton<StringTestPlugin, std::string> { 131 public: InitPlugin(std::shared_ptr<IPluginTemplate<StringTestPlugin,std::string>> ptr)132 void InitPlugin(std::shared_ptr<IPluginTemplate<StringTestPlugin, std::string>> ptr) override 133 { 134 int policyCode = 15; 135 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 136 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 137 ptr->InitAttribute(policyCode, "StringTestPlugin", config); 138 ptr->SetSerializer(StringSerializer::GetInstance()); 139 } 140 }; 141 142 #endif // STRING_TEST_PLUGIN 143 144 class InitAttributePlg : public PluginSingleton<InitAttributePlg, Json::Value> { 145 public: InitPlugin(std::shared_ptr<IPluginTemplate<InitAttributePlg,Json::Value>> ptr)146 void InitPlugin(std::shared_ptr<IPluginTemplate<InitAttributePlg, Json::Value>> ptr) override 147 { 148 int policyCode = 20; 149 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 150 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 151 ptr->InitAttribute(policyCode, "InitAttributePlg", config); 152 } 153 }; 154 155 class HandlePolicySupplierPlg : public PluginSingleton<HandlePolicySupplierPlg, Json::Value> { 156 public: SetSupplier()157 ErrCode SetSupplier() 158 { 159 g_visit = true; 160 return ERR_EDM_PARAM_ERROR; 161 } 162 RemoveSupplier()163 ErrCode RemoveSupplier() 164 { 165 g_visit = true; 166 return ERR_EDM_PARAM_ERROR; 167 } 168 InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicySupplierPlg,Json::Value>> ptr)169 void InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicySupplierPlg, Json::Value>> ptr) override 170 { 171 int policyCode = 21; 172 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 173 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 174 ptr->InitAttribute(policyCode, "HandlePolicySupplierPlg", config); 175 ptr->SetSerializer(JsonSerializer::GetInstance()); 176 ptr->SetOnHandlePolicyListener(&HandlePolicySupplierPlg::SetSupplier, FuncOperateType::SET); 177 ptr->SetOnHandlePolicyListener(&HandlePolicySupplierPlg::RemoveSupplier, FuncOperateType::REMOVE); 178 } 179 }; 180 181 class HandlePolicyFunctionPlg : public PluginSingleton<HandlePolicyFunctionPlg, std::string> { 182 public: SetFunction(std::string & policyValue)183 ErrCode SetFunction(std::string &policyValue) 184 { 185 if (policyValue.empty()) { 186 policyValue = "testValue"; 187 } else { 188 policyValue = "newTestValue"; 189 } 190 return ERR_OK; 191 } 192 RemoveFunction(std::string & policyValue)193 ErrCode RemoveFunction(std::string &policyValue) 194 { 195 policyValue = ""; 196 return ERR_OK; 197 } 198 InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyFunctionPlg,std::string>> ptr)199 void InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyFunctionPlg, std::string>> ptr) override 200 { 201 int policyCode = 22; 202 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 203 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 204 ptr->InitAttribute(policyCode, "HandlePolicyFunctionPlg", config); 205 ptr->SetSerializer(StringSerializer::GetInstance()); 206 ptr->SetOnHandlePolicyListener(&HandlePolicyFunctionPlg::SetFunction, FuncOperateType::SET); 207 ptr->SetOnHandlePolicyListener(&HandlePolicyFunctionPlg::RemoveFunction, FuncOperateType::REMOVE); 208 } 209 }; 210 211 class HandlePolicyBiFunctionPlg : public PluginSingleton<HandlePolicyBiFunctionPlg, std::string> { 212 public: SetFunction(std::string & data,std::string & currentData,int32_t userId)213 ErrCode SetFunction(std::string &data, std::string ¤tData, int32_t userId) 214 { 215 std::string errStr{"ErrorData"}; 216 if (data == errStr) { 217 return ERR_EDM_OPERATE_JSON; 218 } 219 currentData = data; 220 return ERR_OK; 221 } 222 RemoveFunction(std::string & data,std::string & currentData,int32_t userId)223 ErrCode RemoveFunction(std::string &data, std::string ¤tData, int32_t userId) 224 { 225 currentData = ""; 226 return ERR_OK; 227 } 228 InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyBiFunctionPlg,std::string>> ptr)229 void InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyBiFunctionPlg, std::string>> ptr) override 230 { 231 int policyCode = 23; 232 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 233 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 234 ptr->InitAttribute(policyCode, "HandlePolicyBiFunctionPlg", config); 235 ptr->SetSerializer(StringSerializer::GetInstance()); 236 ptr->SetOnHandlePolicyListener(&HandlePolicyBiFunctionPlg::SetFunction, FuncOperateType::SET); 237 ptr->SetOnHandlePolicyListener(&HandlePolicyBiFunctionPlg::RemoveFunction, FuncOperateType::REMOVE); 238 } 239 }; 240 241 class HandleDoneBoolConsumerPlg : public PluginSingleton<HandleDoneBoolConsumerPlg, std::string> { 242 public: SetDone(bool isGlobalChanged)243 void SetDone(bool isGlobalChanged) { g_visit = true; } 244 RemoveDone(bool isGlobalChanged)245 void RemoveDone(bool isGlobalChanged) { g_visit = true; } 246 InitPlugin(std::shared_ptr<IPluginTemplate<HandleDoneBoolConsumerPlg,std::string>> ptr)247 void InitPlugin(std::shared_ptr<IPluginTemplate<HandleDoneBoolConsumerPlg, std::string>> ptr) override 248 { 249 int policyCode = 24; 250 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 251 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 252 ptr->InitAttribute(policyCode, "HandleDoneBoolConsumerPlg", config); 253 ptr->SetSerializer(StringSerializer::GetInstance()); 254 ptr->SetOnHandlePolicyDoneListener(&HandleDoneBoolConsumerPlg::SetDone, FuncOperateType::SET); 255 ptr->SetOnHandlePolicyDoneListener(&HandleDoneBoolConsumerPlg::RemoveDone, FuncOperateType::REMOVE); 256 } 257 }; 258 259 class HandleDoneBiBoolConsumerPlg : public PluginSingleton<HandleDoneBiBoolConsumerPlg, std::string> { 260 public: SetDone(std::string & data,bool isGlobalChanged,int32_t userId)261 void SetDone(std::string &data, bool isGlobalChanged, int32_t userId) { g_visit = true; } 262 RemoveDone(std::string & data,bool isGlobalChanged,int32_t userId)263 void RemoveDone(std::string &data, bool isGlobalChanged, int32_t userId) { g_visit = true; } 264 InitPlugin(std::shared_ptr<IPluginTemplate<HandleDoneBiBoolConsumerPlg,std::string>> ptr)265 void InitPlugin(std::shared_ptr<IPluginTemplate<HandleDoneBiBoolConsumerPlg, std::string>> ptr) override 266 { 267 int policyCode = 25; 268 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 269 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 270 ptr->InitAttribute(policyCode, "HandleDoneBiBoolConsumerPlg", config); 271 ptr->SetSerializer(StringSerializer::GetInstance()); 272 ptr->SetOnHandlePolicyDoneListener(&HandleDoneBiBoolConsumerPlg::SetDone, FuncOperateType::SET); 273 ptr->SetOnHandlePolicyDoneListener(&HandleDoneBiBoolConsumerPlg::RemoveDone, FuncOperateType::REMOVE); 274 } 275 }; 276 277 class AdminRemoveSupplierPlg : public PluginSingleton<AdminRemoveSupplierPlg, std::string> { 278 public: RemoveAdmin()279 ErrCode RemoveAdmin() 280 { 281 g_visit = true; 282 return ERR_OK; 283 } 284 InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveSupplierPlg,std::string>> ptr)285 void InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveSupplierPlg, std::string>> ptr) override 286 { 287 int policyCode = 26; 288 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 289 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 290 ptr->InitAttribute(policyCode, "AdminRemoveSupplierPlg", config); 291 ptr->SetSerializer(StringSerializer::GetInstance()); 292 ptr->SetOnAdminRemoveListener(&AdminRemoveSupplierPlg::RemoveAdmin); 293 } 294 }; 295 296 class AdminRemoveBiFunctionPlg : public PluginSingleton<AdminRemoveBiFunctionPlg, std::string> { 297 public: RemoveAdmin(const std::string & adminName,std::string & data,int32_t userId)298 ErrCode RemoveAdmin(const std::string &adminName, std::string &data, int32_t userId) 299 { 300 g_visit = true; 301 return ERR_OK; 302 } 303 InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveBiFunctionPlg,std::string>> ptr)304 void InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveBiFunctionPlg, std::string>> ptr) override 305 { 306 int policyCode = 27; 307 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 308 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 309 ptr->InitAttribute(policyCode, "AdminRemoveBiFunctionPlg", config); 310 ptr->SetSerializer(StringSerializer::GetInstance()); 311 ptr->SetOnAdminRemoveListener(&AdminRemoveBiFunctionPlg::RemoveAdmin); 312 } 313 }; 314 315 class AdminRemoveDoneRunnerPlg : public PluginSingleton<AdminRemoveDoneRunnerPlg, std::string> { 316 public: RemoveAdminDone()317 void RemoveAdminDone() { g_visit = true; } 318 InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveDoneRunnerPlg,std::string>> ptr)319 void InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveDoneRunnerPlg, std::string>> ptr) override 320 { 321 int policyCode = 28; 322 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 323 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 324 ptr->InitAttribute(policyCode, "AdminRemoveDoneRunnerPlg", config); 325 ptr->SetSerializer(StringSerializer::GetInstance()); 326 ptr->SetOnAdminRemoveDoneListener(&AdminRemoveDoneRunnerPlg::RemoveAdminDone); 327 } 328 }; 329 330 class AdminRemoveDoneBiBiConsumerPlg : public PluginSingleton<AdminRemoveDoneBiBiConsumerPlg, std::string> { 331 public: RemoveAdminDone(const std::string & adminName,std::string & data,int32_t userId)332 void RemoveAdminDone(const std::string &adminName, std::string &data, int32_t userId) { g_visit = true; } 333 InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveDoneBiBiConsumerPlg,std::string>> ptr)334 void InitPlugin(std::shared_ptr<IPluginTemplate<AdminRemoveDoneBiBiConsumerPlg, std::string>> ptr) override 335 { 336 int policyCode = 29; 337 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 338 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 339 ptr->InitAttribute(policyCode, "AdminRemoveDoneBiBiConsumerPlg", config); 340 ptr->SetSerializer(StringSerializer::GetInstance()); 341 ptr->SetOnAdminRemoveDoneListener(&AdminRemoveDoneBiBiConsumerPlg::RemoveAdminDone); 342 } 343 }; 344 345 class HandlePolicyJsonBiFunctionPlg : public PluginSingleton<HandlePolicyJsonBiFunctionPlg, Json::Value> { 346 public: SetFunction(Json::Value & data,Json::Value & currentData,int32_t userId)347 ErrCode SetFunction(Json::Value &data, Json::Value ¤tData, int32_t userId) 348 { 349 currentData = data; 350 return ERR_OK; 351 } 352 RemoveFunction(Json::Value & data,Json::Value & currentData,int32_t userId)353 ErrCode RemoveFunction(Json::Value &data, Json::Value ¤tData, int32_t userId) 354 { 355 currentData = Json::nullValue; 356 return ERR_OK; 357 } 358 InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyJsonBiFunctionPlg,Json::Value>> ptr)359 void InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyJsonBiFunctionPlg, Json::Value>> ptr) override 360 { 361 int policyCode = 30; 362 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 363 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 364 ptr->InitAttribute(policyCode, "HandlePolicyJsonBiFunctionPlg", config); 365 ptr->SetSerializer(JsonSerializer::GetInstance()); 366 ptr->SetOnHandlePolicyListener(&HandlePolicyJsonBiFunctionPlg::SetFunction, FuncOperateType::SET); 367 ptr->SetOnHandlePolicyListener(&HandlePolicyJsonBiFunctionPlg::RemoveFunction, FuncOperateType::REMOVE); 368 } 369 }; 370 371 class HandlePolicyBiFunctionUnsavePlg : public PluginSingleton<HandlePolicyBiFunctionUnsavePlg, Json::Value> { 372 public: SetFunction(Json::Value & data,Json::Value & currentData,int32_t userId)373 ErrCode SetFunction(Json::Value &data, Json::Value ¤tData, int32_t userId) 374 { 375 currentData = data; 376 return ERR_OK; 377 } 378 RemoveFunction(Json::Value & data,Json::Value & currentData,int32_t userId)379 ErrCode RemoveFunction(Json::Value &data, Json::Value ¤tData, int32_t userId) 380 { 381 currentData = Json::nullValue; 382 return ERR_OK; 383 } 384 InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyBiFunctionUnsavePlg,Json::Value>> ptr)385 void InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyBiFunctionUnsavePlg, Json::Value>> ptr) override 386 { 387 int policyCode = 31; 388 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 389 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 390 ptr->InitAttribute(policyCode, "HandlePolicyBiFunctionUnsavePlg", config, false, true); 391 ptr->SetSerializer(JsonSerializer::GetInstance()); 392 ptr->SetOnHandlePolicyListener(&HandlePolicyBiFunctionUnsavePlg::SetFunction, FuncOperateType::SET); 393 ptr->SetOnHandlePolicyListener(&HandlePolicyBiFunctionUnsavePlg::RemoveFunction, FuncOperateType::REMOVE); 394 } 395 }; 396 397 class HandlePolicyReplyFunctionPlg : public PluginSingleton<HandlePolicyReplyFunctionPlg, std::string> { 398 public: SetFunction(std::string & data,MessageParcel & reply)399 ErrCode SetFunction(std::string &data, MessageParcel &reply) 400 { 401 g_visit = true; 402 return ERR_OK; 403 } 404 RemoveFunction(std::string & data,MessageParcel & reply)405 ErrCode RemoveFunction(std::string &data, MessageParcel &reply) 406 { 407 g_visit = true; 408 return ERR_OK; 409 } 410 InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyReplyFunctionPlg,std::string>> ptr)411 void InitPlugin(std::shared_ptr<IPluginTemplate<HandlePolicyReplyFunctionPlg, std::string>> ptr) override 412 { 413 int policyCode = 32; 414 IPlugin::PolicyPermissionConfig config = IPlugin::PolicyPermissionConfig("ohos.permission.EDM_TEST_PERMISSION", 415 IPlugin::PermissionType::NORMAL_DEVICE_ADMIN, IPlugin::ApiType::PUBLIC); 416 ptr->InitAttribute(policyCode, "HandlePolicyReplyFunctionPlg", config, false, true); 417 ptr->SetSerializer(StringSerializer::GetInstance()); 418 ptr->SetOnHandlePolicyListener(&HandlePolicyReplyFunctionPlg::SetFunction, FuncOperateType::SET); 419 ptr->SetOnHandlePolicyListener(&HandlePolicyReplyFunctionPlg::RemoveFunction, FuncOperateType::REMOVE); 420 } 421 }; 422 } // namespace PLUGIN 423 424 class PluginTemplateTest : public testing::Test { 425 protected: 426 void SetUp() override; 427 void TearDown() override; 428 429 private: 430 std::shared_ptr<IPolicyManager> policyManager_; 431 }; 432 } // namespace TEST 433 } // namespace EDM 434 } // namespace OHOS 435 #endif // EDM_UNIT_TEST_IPLUGIN_TEMPLATE_TEST_H 436