• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2025 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 MOCK_EXTENSION_MOCK_H
17 #define MOCK_EXTENSION_MOCK_H
18 
19 #include <fcntl.h>
20 #include <gmock/gmock.h>
21 #include <sys/stat.h>
22 #include <sys/types.h>
23 #include "unique_fd.h"
24 #include "b_error/b_error.h"
25 #include "iextension.h"
26 #include "iremote_stub.h"
27 #include "test_manager.h"
28 
29 namespace OHOS::FileManagement::Backup {
30 class BackupExtExtensionMock : public IRemoteStub<IExtension> {
31 public:
32     int code_ = 0;
BackupExtExtensionMock()33     BackupExtExtensionMock() : code_(0) {}
~BackupExtExtensionMock()34     virtual ~BackupExtExtensionMock() {}
35 
36     MOCK_METHOD4(SendRequest, int(uint32_t, MessageParcel &, MessageParcel &, MessageOption &));
37 
InvokeSendRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)38     int32_t InvokeSendRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
39     {
40         reply.WriteInt32(BError(BError::Codes::OK));
41         return BError(BError::Codes::OK);
42     }
43 
InvokeGetFileHandleRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)44     int32_t InvokeGetFileHandleRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option)
45     {
46         std::string fileName = "1.tar";
47         TestManager tm("GetFileHand_GetFd_0100");
48         std::string filePath = tm.GetRootDirCurTest().append(fileName);
49         UniqueFd fd(open(filePath.data(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR));
50         reply.WriteBool(true);
51         reply.WriteInt32(0);
52         reply.WriteFileDescriptor(fd);
53         return BError(BError::Codes::OK);
54     };
55 
GetFileHandleWithUniqueFd(const std::string & fileName,int32_t & getFileHandleErrCode,int & fd)56     ErrCode GetFileHandleWithUniqueFd(const std::string &fileName, int32_t &getFileHandleErrCode, int &fd) override
57     {
58         UniqueFd fdResult = GetFileHandle(fileName, getFileHandleErrCode);
59         fd = fdResult.Release();
60         return ERR_OK;
61     };
62 
GetFileHandle(const std::string & fileName,int32_t & errCode)63     UniqueFd GetFileHandle(const std::string &fileName, int32_t &errCode)
64     {
65         GTEST_LOG_(INFO) << "GetFileHandle" << fileName;
66         if (fileName == "testName") {
67             errCode = BError::BackupErrorCode::E_UKERR;
68             return UniqueFd(-1);
69         }
70 
71         if (fileName.empty()) {
72             errCode = BError::BackupErrorCode::E_UKERR;
73             return UniqueFd(-1);
74         }
75         TestManager tm("GetFileHand_GetFd_0200");
76         std::string filePath = tm.GetRootDirCurTest().append(fileName);
77         UniqueFd fd(open(filePath.data(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR));
78         if (fd < 0) {
79             errCode = BError::GetCodeByErrno(errno);
80         }
81         return fd;
82     };
83 
HandleClear()84     ErrCode HandleClear() override
85     {
86         return BError(BError::Codes::OK);
87     };
88 
HandleBackup(bool isClearData)89     ErrCode HandleBackup(bool isClearData) override
90     {
91         GTEST_LOG_(INFO) << "HandleBackup";
92         if (nHandleBackupNum_ == 1) {
93             GTEST_LOG_(INFO) << "HandleBackup is false";
94             return 1;
95         }
96         nHandleBackupNum_++;
97         return BError(BError::Codes::OK);
98     };
99 
PublishFile(const std::string & fileName)100     ErrCode PublishFile(const std::string &fileName) override
101     {
102         GTEST_LOG_(INFO) << "PublishFile " << fileName;
103         if (fileName == "test") {
104             return 1;
105         }
106         return BError(BError::Codes::OK);
107     };
108 
HandleRestore(bool isClearData)109     ErrCode HandleRestore(bool isClearData) override
110     {
111         return BError(BError::Codes::OK);
112     };
113 
GetIncrementalFileHandle(const std::string & fileName,int & fd,int & reportFd,int32_t & fdErrCode)114     ErrCode GetIncrementalFileHandle(const std::string &fileName,
115                                      int &fd, int &reportFd, int32_t &fdErrCode) override
116     {
117         return BError(BError::Codes::OK);
118     }
GetIncrementalFileHandle(const std::string & fileName)119     std::tuple<ErrCode, UniqueFd, UniqueFd> GetIncrementalFileHandle(const std::string &fileName)
120     {
121         return {BError(BError::Codes::OK), UniqueFd(-1), UniqueFd(-1)};
122     };
123 
PublishIncrementalFile(const std::string & fileName)124     ErrCode PublishIncrementalFile(const std::string &fileName) override
125     {
126         return BError(BError::Codes::OK);
127     };
128 
HandleIncrementalBackup(int incrementalFd,int manifestFd)129     ErrCode HandleIncrementalBackup(int incrementalFd, int manifestFd) override
130     {
131         return BError(BError::Codes::OK);
132     };
HandleIncrementalBackup(UniqueFd incrementalFd,UniqueFd manifestFd)133     ErrCode HandleIncrementalBackup(UniqueFd incrementalFd, UniqueFd manifestFd)
134     {
135         return BError(BError::Codes::OK);
136     };
137 
IncrementalOnBackup(bool isClearData)138     ErrCode IncrementalOnBackup(bool isClearData) override
139     {
140         return BError(BError::Codes::OK);
141     };
142 
GetIncrementalBackupFileHandle(int & fd,int & reportFd)143     ErrCode GetIncrementalBackupFileHandle(int &fd, int &reportFd) override
144     {
145         return BError(BError::Codes::OK);
146     };
147 
GetIncrementalBackupFileHandle()148     std::tuple<UniqueFd, UniqueFd> GetIncrementalBackupFileHandle()
149     {
150         return {UniqueFd(-1), UniqueFd(-1)};
151     };
152 
GetBackupInfo(std::string & result)153     ErrCode GetBackupInfo(std::string &result) override
154     {
155         return BError(BError::Codes::OK);
156     };
157 
UpdateFdSendRate(const std::string & bundleName,int32_t sendRate)158     ErrCode UpdateFdSendRate(const std::string &bundleName, int32_t sendRate) override
159     {
160         return BError(BError::Codes::OK);
161     };
162 
User0OnBackup()163     ErrCode User0OnBackup() override
164     {
165         return BError(BError::Codes::OK);
166     };
167 
UpdateDfxInfo(int64_t uniqId,uint32_t extConnectSpend,const std::string & bundleName)168     ErrCode UpdateDfxInfo(int64_t uniqId, uint32_t extConnectSpend, const std::string &bundleName) override
169     {
170         return ERR_OK;
171     };
172 
CleanBundleTempDir()173     ErrCode CleanBundleTempDir() override
174     {
175         return BError(BError::Codes::OK);
176     };
177 
HandleOnRelease(int32_t scenario)178     ErrCode HandleOnRelease(int32_t scenario)
179     {
180         return BError(BError::Codes::OK);
181     };
182 
HandleGetCompatibilityInfo(const std::string & extInfo,int32_t scenario,std::string & compatibilityInfo)183     ErrCode HandleGetCompatibilityInfo(const std::string &extInfo, int32_t scenario,
184         std::string &compatibilityInfo) override
185     {
186         return BError(BError::Codes::OK);
187     }
188 private:
189     int32_t nHandleBackupNum_ = 0;
190 };
191 } // namespace OHOS::FileManagement::Backup
192 #endif // MOCK_EXTENSION_MOCK_H