1 /* 2 * Copyright (c) 2021 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 FOUNDATION_APPEXECFWK_KITS_APPKIT_TEST_MOCK_BUNDLE_MGR_SERVICE_H 17 #define FOUNDATION_APPEXECFWK_KITS_APPKIT_TEST_MOCK_BUNDLE_MGR_SERVICE_H 18 19 #include "gmock/gmock.h" 20 #include "semaphore_ex.h" 21 #include "bundle_mgr_host.h" 22 23 namespace OHOS { 24 namespace AppExecFwk { 25 class MockBundleMgrService : public BundleMgrHost { 26 public: 27 MOCK_METHOD4(GetApplicationInfo, 28 bool(const std::string &appName, const ApplicationFlag flag, const int userId, ApplicationInfo &appInfo)); GetApplicationInfos(const ApplicationFlag flag,const int userId,std::vector<ApplicationInfo> & appInfos)29 virtual bool GetApplicationInfos( 30 const ApplicationFlag flag, const int userId, std::vector<ApplicationInfo> &appInfos) override 31 { 32 return false; 33 } GetBundleInfo(const std::string & bundleName,const BundleFlag flag,BundleInfo & bundleInfo)34 virtual bool GetBundleInfo(const std::string &bundleName, const BundleFlag flag, BundleInfo &bundleInfo) override 35 { 36 return false; 37 } GetBundleInfos(const BundleFlag flag,std::vector<BundleInfo> & bundleInfos)38 virtual bool GetBundleInfos(const BundleFlag flag, std::vector<BundleInfo> &bundleInfos) override 39 { 40 return false; 41 } GetUidByBundleName(const std::string & bundleName,const int userId)42 virtual int GetUidByBundleName(const std::string &bundleName, const int userId) override 43 { 44 return 0; 45 } GetAppIdByBundleName(const std::string & bundleName,const int userId)46 virtual std::string GetAppIdByBundleName(const std::string &bundleName, const int userId) override 47 { 48 return ""; 49 } GetBundleNameForUid(const int uid,std::string & bundleName)50 virtual bool GetBundleNameForUid(const int uid, std::string &bundleName) override 51 { 52 return false; 53 } 54 MOCK_METHOD2(GetBundleGids, bool(const std::string &bundleName, std::vector<int> &gids)); GetAppType(const std::string & bundleName)55 std::string GetAppType(const std::string &bundleName) 56 { 57 GTEST_LOG_(INFO) << "MockBundleMgrService::GetAppType called"; 58 return "ModuleTestType"; 59 } CheckIsSystemAppByUid(const int uid)60 virtual bool CheckIsSystemAppByUid(const int uid) override 61 { 62 return false; 63 } 64 MOCK_METHOD2(GetBundleInfosByMetaData, bool(const std::string &metaData, std::vector<BundleInfo> &bundleInfos)); 65 MOCK_METHOD2(QueryAbilityInfo, bool(const Want &want, AbilityInfo &abilityInfo)); 66 MOCK_METHOD2(QueryAbilityInfoByUri, bool(const std::string &abilityUri, AbilityInfo &abilityInfo)); 67 MOCK_METHOD1(QueryKeepAliveBundleInfos, bool(std::vector<BundleInfo> &bundleInfos)); 68 MOCK_METHOD2(GetAbilityLabel, std::string(const std::string &bundleName, const std::string &className)); 69 MOCK_METHOD3( 70 GetBundleArchiveInfo, bool(const std::string &hapFilePath, const BundleFlag flag, BundleInfo &bundleInfo)); 71 MOCK_METHOD2(GetHapModuleInfo, bool(const std::string &hapFilePath, HapModuleInfo &hapModuleInfo)); 72 MOCK_METHOD2(GetHapModuleInfo, bool(const AbilityInfo &abilityInfo, HapModuleInfo &hapModuleInfo)); 73 MOCK_METHOD2(GetLaunchWantForBundle, bool(const std::string &bundleName, Want &want)); 74 MOCK_METHOD2(CheckPublicKeys, int(const std::string &firstBundleName, const std::string &secondBundleName)); 75 MOCK_METHOD2(CheckPermission, int(const std::string &bundleName, const std::string &permission)); 76 MOCK_METHOD2(GetPermissionDef, bool(const std::string &permissionName, PermissionDef &permissionDef)); 77 MOCK_METHOD1(GetAllPermissionGroupDefs, bool(std::vector<PermissionDef> &permissionDefs)); 78 MOCK_METHOD2(GetAppsGrantedPermissions, 79 bool(const std::vector<std::string> &permissions, std::vector<std::string> &appNames)); 80 MOCK_METHOD1(HasSystemCapability, bool(const std::string &capName)); 81 MOCK_METHOD1(GetSystemAvailableCapabilities, bool(std::vector<std::string> &systemCaps)); 82 MOCK_METHOD0(IsSafeMode, bool()); 83 MOCK_METHOD2(CleanBundleCacheFiles, 84 bool(const std::string &bundleName, const sptr<ICleanCacheCallback> &cleanCacheCallback)); 85 MOCK_METHOD1(CleanBundleDataFiles, bool(const std::string &bundleName)); 86 MOCK_METHOD1(RegisterBundleStatusCallback, bool(const sptr<IBundleStatusCallback> &bundleStatusCallback)); 87 MOCK_METHOD1(ClearBundleStatusCallback, bool(const sptr<IBundleStatusCallback> &bundleStatusCallback)); 88 MOCK_METHOD0(UnregisterBundleStatusCallback, bool()); DumpInfos(const DumpFlag flag,const std::string & bundleName,std::string & result)89 virtual bool DumpInfos(const DumpFlag flag, const std::string &bundleName, std::string &result) override 90 { 91 return false; 92 } 93 MOCK_METHOD0(GetBundleInstaller, sptr<IBundleInstaller>()); 94 MOCK_METHOD1(GetBundleInstaller, bool(const std::string &)); 95 MOCK_METHOD2(SetApplicationEnabled, bool(const std::string &, bool)); 96 MOCK_METHOD1(IsApplicationEnabled, bool(const std::string &)); 97 CanRequestPermission(const std::string & bundleName,const std::string & permissionName,const int userId)98 virtual bool CanRequestPermission( 99 const std::string &bundleName, const std::string &permissionName, const int userId) override 100 { 101 return true; 102 } RequestPermissionFromUser(const std::string & bundleName,const std::string & permission,const int userId)103 virtual bool RequestPermissionFromUser( 104 const std::string &bundleName, const std::string &permission, const int userId) override 105 { 106 return true; 107 } 108 MOCK_METHOD2(GetNameForUid, bool(const int uid, std::string &name)); 109 MOCK_METHOD2(GetBundlesForUid, bool(const int uid, std::vector<std::string> &)); 110 MOCK_METHOD2(SetAbilityEnabled, bool(const AbilityInfo &, bool)); 111 MOCK_METHOD1(IsAbilityEnabled, bool(const AbilityInfo &)); 112 MOCK_METHOD2(GetAbilityIcon, std::string(const std::string &bundleName, const std::string &className)); 113 MOCK_METHOD1(RegisterAllPermissionsChanged, bool(const sptr<OnPermissionChangedCallback> &callback)); 114 MOCK_METHOD2(RegisterPermissionsChanged, 115 bool(const std::vector<int> &uids, const sptr<OnPermissionChangedCallback> &callback)); 116 MOCK_METHOD1(UnregisterPermissionsChanged, bool(const sptr<OnPermissionChangedCallback> &callback)); Wait()117 void Wait() 118 { 119 sem_.Wait(); 120 } 121 Post()122 int Post() 123 { 124 sem_.Post(); 125 return 0; 126 } 127 PostVoid()128 void PostVoid() 129 { 130 sem_.Post(); 131 } 132 133 private: 134 Semaphore sem_; 135 }; 136 137 } // namespace AppExecFwk 138 } // namespace OHOS 139 #endif // FOUNDATION_APPEXECFWK_KITS_APPKIT_TEST_MOCK_BUNDLE_MGR_SERVICE_H