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 MODULETEST_OHOS_ABILITY_RUNTIME_MOCK_CONTEXT_H
17#define MODULETEST_OHOS_ABILITY_RUNTIME_MOCK_CONTEXT_H
18
19#include "context.h"
20#include "gmock/gmock.h"
21
22class MockContext {
23public:
24    MockContext() = default;
25    virtual ~MockContext() = default;
26    MOCK_METHOD0(GetProcessInfo, std::shared_ptr<ProcessInfo>());
27    MOCK_METHOD0(GetApplicationInfo, std::shared_ptr<ApplicationInfo>());
28    MOCK_METHOD0(GetApplicationContext, std::shared_ptr<Context>());
29    MOCK_METHOD0(GetBundleCodePath, std::string());
30    MOCK_METHOD0(GetAbilityInfo, std::shared_ptr<AbilityInfo>());
31    MOCK_METHOD0(GetContext, std::shared_ptr<Context>());
32    MOCK_METHOD0(GetBundleManager, sptr<IBundleMgr>());
33    MOCK_METHOD0(GetResourceManager, std::shared_ptr<Global::Resource::ResourceManager>());
34    MOCK_METHOD1(DeleteFile, bool(const std::string& fileName));
35    MOCK_METHOD1(StopAbility, bool(const AAFwk::Want& want));
36    MOCK_METHOD0(GetCacheDir, std::string());
37
38    virtual std::string GetDatabaseDir() = 0;
39    virtual std::string GetDataDir() = 0;
40    virtual std::string GetDir(const std::string& name, int mode) = 0;
41    virtual std::string GetExternalCacheDir() = 0;
42    virtual std::string GetExternalFilesDir(std::string& type) = 0;
43    virtual std::string GetFilesDir() = 0;
44    virtual std::string GetNoBackupFilesDir() = 0;
45    virtual int VerifyCallingPermission(const std::string& permission) = 0;
46    virtual int VerifySelfPermission(const std::string& permission) = 0;
47    virtual std::string GetBundleName() = 0;
48    virtual std::string GetBundleResourcePath() = 0;
49    virtual void StartAbility(const AAFwk::Want& want, int requestCode) = 0;
50    virtual void UnauthUriPermission(const std::string& permission, const Uri& uri, int uid) = 0;
51    virtual sptr<AAFwk::IAbilityManager> GetAbilityManager() = 0;
52    virtual std::string GetAppType() = 0;
53    virtual void TerminateAbility() = 0;
54    virtual bool CanRequestPermission(const std::string& permission) = 0;
55    virtual int VerifyCallingOrSelfPermission(const std::string& permission) = 0;
56    virtual int VerifyPermission(const std::string& permission, int pid, int uid) = 0;
57    virtual void SetPattern(int patternId) = 0;
58    virtual std::shared_ptr<Context> GetAbilityPackageContext() = 0;
59    virtual std::shared_ptr<HapModuleInfo> GetHapModuleInfo() = 0;
60    virtual std::string GetProcessName() = 0;
61    virtual std::string GetCallingBundle() = 0;
62    virtual void RequestPermissionsFromUser(std::vector<std::string>& permissions, std::vector<int>& permissionsState,
63        int requestCode) = 0;
64    virtual void StartAbility(const Want& want, int requestCode, const AbilityStartSetting& abilityStartSetting) = 0;
65    virtual bool ConnectAbility(const Want& want, const sptr<AAFwk::IAbilityConnection>& conn) = 0;
66    virtual void DisconnectAbility(const sptr<AAFwk::IAbilityConnection>& conn) = 0;
67    virtual Uri GetCaller() = 0;
68    virtual std::string GetString(int resId) = 0;
69    virtual std::vector<std::string> GetStringArray(int resId) = 0;
70    virtual std::vector<int> GetIntArray(int resId) = 0;
71    virtual std::map<std::string, std::string> GetTheme() = 0;
72    virtual void SetTheme(int themeId) = 0;
73    virtual std::map<std::string, std::string> GetPattern() = 0;
74    virtual int GetColor(int resId) = 0;
75    virtual int GetThemeId() = 0;
76    virtual int GetDisplayOrientation() = 0;
77    virtual std::string GetPreferencesDir() = 0;
78    virtual void SetColorMode(int mode) = 0;
79    virtual int GetColorMode() = 0;
80    virtual int GetMissionId() = 0;
81    virtual void StartAbilities(const std::vector<AAFwk::Want>& wants) = 0;
82    friend DataAbilityHelper;
83    friend DataShareHelper;
84    friend ContinuationConnector;
85protected:
86    virtual sptr<IRemoteObject> GetToken() = 0;
87};
88}  // namespace AppExecFwk
89}  // namespace OHOS
90#endif  // MODULETEST_OHOS_ABILITY_RUNTIME_MOCK_CONTEXT_H
91