1 /*
2 * Copyright (c) 2021-2022 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 #include "mock_bundle_manager.h"
18
19 #include "ability_info.h"
20 #include "application_info.h"
21 #include "fms_log_wrapper.h"
22 #include "form_info.h"
23
24 namespace OHOS {
25 namespace AppExecFwk {
26 const std::string FORM_PROVIDER_BUNDLE_NAME = "com.form.provider.service";
27 const std::string PARAM_PROVIDER_PACKAGE_NAME = "com.form.provider.app.test.ability";
28 const std::string PARAM_PROVIDER_MODULE_NAME = "com.form.provider.app.test.ability";
29 const std::string FORM_PROVIDER_ABILITY_NAME = "com.form.provider.app.test.ability";
30 const std::string FORM_PROVIDER_MODULE_SOURCE_DIR = "";
31 const std::string FORM_JS_COMPONENT_NAME = "jsComponentName";
32 const std::string PARAM_FORM_NAME = "com.form.name.test";
33 const std::string DEVICE_ID = "ohos-phone1";
34
35 bool BundleMgrService::IsSystemApp = false;
36
GetUidByBundleName(const std::string & bundleName,const int userId)37 int BundleMgrService::GetUidByBundleName(const std::string &bundleName, const int userId)
38 {
39 HILOG_INFO("mock %{public}s called.", __func__);
40 if (bundleName.compare("com.form.host.app600") == 0) {
41 return APP_600;
42 }
43 return 0;
44 }
45
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)46 int BundleMgrStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
47 {
48 HILOG_INFO("mock %{public}s called.", __func__);
49 return 0;
50 }
51
QueryAbilityInfo(const AAFwk::Want & want,AbilityInfo & abilityInfo)52 bool BundleMgrService::QueryAbilityInfo(const AAFwk::Want &want, AbilityInfo &abilityInfo)
53 {
54 HILOG_INFO("mock %{public}s called.", __func__);
55 return true;
56 }
57
GetAppType(const std::string & bundleName)58 std::string BundleMgrService::GetAppType(const std::string &bundleName)
59 {
60 HILOG_INFO("mock %{public}s called.", __func__);
61 return "system";
62 }
63
GetBundleInfo(const std::string & bundleName,const BundleFlag flag,BundleInfo & bundleInfo,int32_t userId)64 bool BundleMgrService::GetBundleInfo(
65 const std::string &bundleName, const BundleFlag flag, BundleInfo &bundleInfo, int32_t userId)
66 {
67 HILOG_INFO("mock %{public}s called.", __func__);
68 std::vector<AbilityInfo> abilityInfos;
69 ApplicationInfo applicationInfo;
70 ModuleInfo moduleInfo;
71
72 moduleInfo.moduleSourceDir = FORM_PROVIDER_MODULE_SOURCE_DIR;
73 moduleInfo.moduleName = PARAM_PROVIDER_MODULE_NAME;
74 bundleInfo.name = bundleName;
75 applicationInfo.bundleName = bundleName;
76 applicationInfo.moduleInfos.emplace_back(moduleInfo);
77 bundleInfo.applicationInfo = applicationInfo;
78
79 bundleInfo.moduleNames.emplace_back(PARAM_PROVIDER_MODULE_NAME);
80
81 AbilityInfo abilityInfo;
82 abilityInfo.name = FORM_PROVIDER_ABILITY_NAME;
83 abilityInfo.package = PARAM_PROVIDER_PACKAGE_NAME;
84 abilityInfo.bundleName = bundleName;
85 abilityInfo.moduleName = PARAM_PROVIDER_MODULE_NAME;
86 abilityInfo.deviceId = DEVICE_ID;
87 bundleInfo.abilityInfos.emplace_back(abilityInfo);
88 bundleInfo.compatibleVersion = COMPATIBLE_VERSION;
89 bundleInfo.targetVersion = TARGET_VERSION;
90
91 return true;
92 }
93
GetBundleInfoV9(const std::string & bundleName,int32_t flags,BundleInfo & bundleInfo,int32_t userId)94 ErrCode BundleMgrService::GetBundleInfoV9(const std::string &bundleName, int32_t flags,
95 BundleInfo &bundleInfo, int32_t userId)
96 {
97 HILOG_INFO("mock %{public}s called.", __func__);
98 ApplicationInfo applicationInfo;
99 ModuleInfo moduleInfo;
100
101 moduleInfo.moduleSourceDir = FORM_PROVIDER_MODULE_SOURCE_DIR;
102 moduleInfo.moduleName = PARAM_PROVIDER_MODULE_NAME;
103 bundleInfo.name = bundleName;
104 applicationInfo.bundleName = bundleName;
105 applicationInfo.moduleInfos.emplace_back(moduleInfo);
106 bundleInfo.applicationInfo = applicationInfo;
107
108 bundleInfo.moduleNames.emplace_back(PARAM_PROVIDER_MODULE_NAME);
109
110 AbilityInfo abilityInfo;
111 abilityInfo.name = FORM_PROVIDER_ABILITY_NAME;
112 abilityInfo.package = PARAM_PROVIDER_PACKAGE_NAME;
113 abilityInfo.bundleName = bundleName;
114 abilityInfo.moduleName = PARAM_PROVIDER_MODULE_NAME;
115 abilityInfo.deviceId = DEVICE_ID;
116
117 HapModuleInfo hapModuleInfo;
118 hapModuleInfo.moduleName = PARAM_PROVIDER_MODULE_NAME;
119 hapModuleInfo.abilityInfos.emplace_back(abilityInfo);
120 bundleInfo.hapModuleInfos.emplace_back(hapModuleInfo);
121 bundleInfo.abilityInfos.emplace_back(abilityInfo);
122
123 return ERR_OK;
124 }
125
GetFormsInfoByApp(const std::string & bundleName,std::vector<FormInfo> & formInfo)126 bool BundleMgrService::GetFormsInfoByApp(const std::string &bundleName, std::vector<FormInfo> &formInfo)
127 {
128 HILOG_INFO("mock %{public}s called.", __func__);
129 FormInfo form;
130 form.bundleName = bundleName;
131 form.abilityName = FORM_PROVIDER_ABILITY_NAME;
132 form.moduleName = PARAM_PROVIDER_MODULE_NAME;
133 form.name = PARAM_FORM_NAME;
134 form.updateEnabled = true;
135 form.updateDuration = 1;
136 form.scheduledUpdateTime = "06:06";
137 form.jsComponentName = FORM_JS_COMPONENT_NAME;
138 form.formVisibleNotify = true;
139 form.supportDimensions = {1, 2};
140 form.defaultDimension = 1;
141 formInfo.emplace_back(form);
142 return true;
143 }
GetFormsInfoByModule(const std::string & bundleName,const std::string & moduleName,std::vector<FormInfo> & formInfo)144 bool BundleMgrService::GetFormsInfoByModule(const std::string &bundleName, const std::string &moduleName,
145 std::vector<FormInfo> &formInfo)
146 {
147 HILOG_INFO("mock %{public}s called.", __func__);
148 FormInfo form;
149 form.bundleName = bundleName;
150 form.abilityName = FORM_PROVIDER_ABILITY_NAME;
151 form.moduleName = PARAM_PROVIDER_MODULE_NAME;
152 form.name = PARAM_FORM_NAME;
153 form.updateEnabled = true;
154 form.updateDuration = 1;
155 form.scheduledUpdateTime = "06:06";
156 form.jsComponentName = FORM_JS_COMPONENT_NAME;
157 form.formVisibleNotify = true;
158 form.supportDimensions = {1, 2};
159 form.defaultDimension = 1;
160 formInfo.emplace_back(form);
161 return true;
162 }
163 } // namespace AppExecFwk
164 } // namespace OHOS
165