1 /* 2 * Copyright (c) 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 OHOS_FILEMGMT_BACKUP_EXT_BACKUP_JS_MOCK_H 17 #define OHOS_FILEMGMT_BACKUP_EXT_BACKUP_JS_MOCK_H 18 19 #include <gmock/gmock.h> 20 21 #include "ability_info.h" 22 #include "ext_backup_js.h" 23 24 namespace OHOS::FileManagement::Backup { 25 class BExtBackupJs { 26 public: 27 BExtBackupJs() = default; 28 virtual ~BExtBackupJs() = default; 29 public: 30 virtual void Init(const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &, 31 const std::shared_ptr<AppExecFwk::OHOSApplication> &, 32 std::shared_ptr<AppExecFwk::AbilityHandler> &, 33 const sptr<IRemoteObject> &) = 0; 34 virtual ExtBackupJs *Create(const std::unique_ptr<AbilityRuntime::Runtime> &) = 0; 35 virtual ErrCode OnBackup(std::function<void(ErrCode, std::string)>, 36 std::function<void(ErrCode, const std::string)>) = 0; 37 virtual ErrCode OnRestore(std::function<void(ErrCode, std::string)>, 38 std::function<void(ErrCode, const std::string)>) = 0; 39 virtual ErrCode GetBackupInfo(std::function<void(ErrCode, const std::string)>); 40 virtual ErrCode InvokeAppExtMethod(ErrCode, const std::string) = 0; 41 virtual int CallJsMethod(const std::string &, AbilityRuntime::JsRuntime &, NativeReference *, InputArgsParser, 42 ResultValueParser) = 0; 43 virtual std::tuple<ErrCode, napi_value> CallObjectMethod(std::string_view, const std::vector<napi_value> &) = 0; 44 virtual std::function<bool(napi_env env, std::vector<napi_value> &argv)> ParseRestoreExInfo() = 0; 45 virtual std::function<bool(napi_env env, std::vector<napi_value> &argv)> ParseRestoreInfo() = 0; 46 virtual std::function<bool(napi_env env, std::vector<napi_value> &argv)> ParseBackupExInfo() = 0; 47 virtual std::function<bool(napi_env env, std::vector<napi_value> &argv)> ParseBackupInfo() = 0; 48 virtual ErrCode CallJSRestoreEx() = 0; 49 virtual ErrCode CallJSRestore() = 0; 50 virtual ErrCode CallJsOnBackupEx() = 0; 51 virtual ErrCode CallJsOnBackup() = 0; 52 virtual void ExportJsContext() = 0; 53 virtual ErrCode OnRelease(std::function<void(ErrCode, std::string)>, int32_t) = 0; 54 virtual std::function<bool(napi_env, std::vector<napi_value> &argv)> ParseReleaseInfo() = 0; 55 virtual ErrCode GetBackupCompatibilityInfo(std::function<void(ErrCode, const std::string)>, std::string) = 0; 56 virtual ErrCode GetRestoreCompatibilityInfo(std::function<void(ErrCode, const std::string)>, std::string) = 0; 57 virtual std::function<bool(napi_env, std::vector<napi_value> &argv)> ParseCompatibilityInfo() = 0; 58 public: 59 virtual bool GetProfileFromAbility(const OHOS::AppExecFwk::AbilityInfo &, const std::string &, 60 std::vector<std::string> &) const = 0; 61 public: 62 static inline std::shared_ptr<BExtBackupJs> extBackupJs = nullptr; 63 }; 64 65 class ExtBackupJsMock : public BExtBackupJs { 66 public: 67 MOCK_METHOD(void, Init, (const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &, 68 const std::shared_ptr<AppExecFwk::OHOSApplication> &, 69 std::shared_ptr<AppExecFwk::AbilityHandler> &, 70 const sptr<IRemoteObject> &)); 71 MOCK_METHOD(ExtBackupJs *, Create, (const std::unique_ptr<AbilityRuntime::Runtime> &)); 72 MOCK_METHOD(ErrCode, OnBackup, (std::function<void(ErrCode, std::string)>, 73 std::function<void(ErrCode, const std::string)>)); 74 MOCK_METHOD(ErrCode, OnRestore, (std::function<void(ErrCode, std::string)>, 75 std::function<void(ErrCode, const std::string)>)); 76 MOCK_METHOD(ErrCode, GetBackupInfo, (std::function<void(ErrCode, const std::string)>)); 77 MOCK_METHOD(ErrCode, InvokeAppExtMethod, (ErrCode, const std::string)); 78 MOCK_METHOD(int, CallJsMethod, (const std::string&, AbilityRuntime::JsRuntime&, NativeReference*, InputArgsParser, 79 ResultValueParser)); 80 MOCK_METHOD((std::tuple<ErrCode, napi_value>), CallObjectMethod, 81 (std::string_view, const std::vector<napi_value> &)); 82 MOCK_METHOD((std::function<bool(napi_env env, std::vector<napi_value> &argv)>), ParseRestoreExInfo, ()); 83 MOCK_METHOD((std::function<bool(napi_env env, std::vector<napi_value> &argv)>), ParseRestoreInfo, ()); 84 MOCK_METHOD((std::function<bool(napi_env env, std::vector<napi_value> &argv)>), ParseBackupExInfo, ()); 85 MOCK_METHOD((std::function<bool(napi_env env, std::vector<napi_value> &argv)>), ParseBackupInfo, ()); 86 MOCK_METHOD(ErrCode, CallJSRestoreEx, ()); 87 MOCK_METHOD(ErrCode, CallJSRestore, ()); 88 MOCK_METHOD(ErrCode, CallJsOnBackupEx, ()); 89 MOCK_METHOD(ErrCode, CallJsOnBackup, ()); 90 MOCK_METHOD(void, ExportJsContext, ()); 91 MOCK_METHOD(ErrCode, OnRelease, (std::function<void(ErrCode, std::string)>, int32_t)); 92 MOCK_METHOD((std::function<bool(napi_env env, std::vector<napi_value> &argv)>), ParseReleaseInfo, ()); 93 public: 94 MOCK_METHOD(bool, GetProfileFromAbility, (const OHOS::AppExecFwk::AbilityInfo&, const std::string&, 95 std::vector<std::string>&), (const)); 96 }; 97 } // namespace OHOS::FileManagement::Backup 98 #endif // OHOS_FILEMGMT_BACKUP_EXT_BACKUP_JS_MOCK_H 99