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