• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 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 "mock_message_parcel.h"
17 #include "iremote_object.h"
18 #include "message_parcel.h"
19 #include "window_manager_hilog.h"
20 namespace OHOS {
21 namespace {
22 bool g_setWriteBoolErrorFlag = false;
23 bool g_setWriteInt32ErrorFlag = false;
24 bool g_setWriteInt64ErrorFlag = false;
25 bool g_setWriteUint32ErrorFlag = false;
26 bool g_setWriteUint64ErrorFlag = false;
27 bool g_setWriteFloatErrorFlag = false;
28 bool g_setWriteString16ErrorFlag = false;
29 bool g_setWriteStringErrorFlag = false;
30 bool g_setWriteParcelableErrorFlag = false;
31 bool g_setWriteInterfaceTokenErrorFlag = false;
32 bool g_setWriteRemoteObjectErrorFlag = false;
33 bool g_setReadBoolErrorFlag = false;
34 bool g_setReadUint32ErrorFlag = false;
35 bool g_setReadInt32ErrorFlag = false;
36 bool g_setReadUint64ErrorFlag = false;
37 bool g_setReadInt64ErrorFlag = false;
38 bool g_setReadFloatErrorFlag = false;
39 bool g_setReadStringVectorErrorFlag = false;
40 bool g_setReadStringErrorFlag = false;
41 #ifdef ENABLE_MOCK_WRITE_STRING
42 const static std::string ERROR_FLAG = "error";
43 #endif
44 constexpr int32_t ERROR_INT = -1;
45 constexpr float ERROR_FLOAT = -1.0f;
46 #ifdef ENABLE_MOCK_WRITE_STRING_VECTOR
47 constexpr int32_t ERROR_SIZE = 1;
48 #endif
49 
50 } // namespace
51 namespace Rosen {
ClearAllErrorFlag()52 void MockMessageParcel::ClearAllErrorFlag()
53 {
54     g_setWriteBoolErrorFlag = false;
55     g_setWriteInt32ErrorFlag = false;
56     g_setWriteInt64ErrorFlag = false;
57     g_setWriteUint32ErrorFlag = false;
58     g_setWriteUint64ErrorFlag = false;
59     g_setWriteFloatErrorFlag = false;
60     g_setWriteString16ErrorFlag = false;
61     g_setWriteStringErrorFlag = false;
62     g_setWriteParcelableErrorFlag = false;
63     g_setWriteInterfaceTokenErrorFlag = false;
64     g_setWriteRemoteObjectErrorFlag = false;
65     g_setReadBoolErrorFlag = false;
66     g_setReadUint32ErrorFlag = false;
67     g_setReadInt32ErrorFlag = false;
68     g_setReadUint64ErrorFlag = false;
69     g_setReadInt64ErrorFlag = false;
70     g_setReadFloatErrorFlag = false;
71     g_setReadStringVectorErrorFlag = false;
72     g_setReadStringErrorFlag = false;
73 }
74 
SetWriteBoolErrorFlag(bool flag)75 void MockMessageParcel::SetWriteBoolErrorFlag(bool flag)
76 {
77     g_setWriteBoolErrorFlag = flag;
78 }
79 
SetWriteInt32ErrorFlag(bool flag)80 void MockMessageParcel::SetWriteInt32ErrorFlag(bool flag)
81 {
82     g_setWriteInt32ErrorFlag = flag;
83 }
84 
SetWriteInt64ErrorFlag(bool flag)85 void MockMessageParcel::SetWriteInt64ErrorFlag(bool flag)
86 {
87     g_setWriteInt64ErrorFlag = flag;
88 }
89 
SetWriteUint32ErrorFlag(bool flag)90 void MockMessageParcel::SetWriteUint32ErrorFlag(bool flag)
91 {
92     g_setWriteUint32ErrorFlag = flag;
93 }
94 
SetWriteUint64ErrorFlag(bool flag)95 void MockMessageParcel::SetWriteUint64ErrorFlag(bool flag)
96 {
97     g_setWriteUint64ErrorFlag = flag;
98 }
99 
SetWriteFloatErrorFlag(bool flag)100 void MockMessageParcel::SetWriteFloatErrorFlag(bool flag)
101 {
102     g_setWriteFloatErrorFlag = flag;
103 }
104 
SetWriteString16ErrorFlag(bool flag)105 void MockMessageParcel::SetWriteString16ErrorFlag(bool flag)
106 {
107     g_setWriteString16ErrorFlag = flag;
108 }
109 
SetWriteStringErrorFlag(bool flag)110 void MockMessageParcel::SetWriteStringErrorFlag(bool flag)
111 {
112     g_setWriteStringErrorFlag = flag;
113 }
114 
SetWriteParcelableErrorFlag(bool flag)115 void MockMessageParcel::SetWriteParcelableErrorFlag(bool flag)
116 {
117     g_setWriteParcelableErrorFlag = flag;
118 }
119 
SetWriteInterfaceTokenErrorFlag(bool flag)120 void MockMessageParcel::SetWriteInterfaceTokenErrorFlag(bool flag)
121 {
122     g_setWriteInterfaceTokenErrorFlag = flag;
123 }
124 
SetWriteRemoteObjectErrorFlag(bool flag)125 void MockMessageParcel::SetWriteRemoteObjectErrorFlag(bool flag)
126 {
127     g_setWriteRemoteObjectErrorFlag = flag;
128 }
129 
SetReadUint32ErrorFlag(bool flag)130 void MockMessageParcel::SetReadUint32ErrorFlag(bool flag)
131 {
132     g_setReadUint32ErrorFlag = flag;
133 }
134 
SetReadInt32ErrorFlag(bool flag)135 void MockMessageParcel::SetReadInt32ErrorFlag(bool flag)
136 {
137     g_setReadInt32ErrorFlag = flag;
138 }
139 
SetReadBoolErrorFlag(bool flag)140 void MockMessageParcel::SetReadBoolErrorFlag(bool flag)
141 {
142     g_setReadBoolErrorFlag = flag;
143 }
144 
SetReadUint64ErrorFlag(bool flag)145 void MockMessageParcel::SetReadUint64ErrorFlag(bool flag)
146 {
147     g_setReadUint64ErrorFlag = flag;
148 }
149 
SetReadInt64ErrorFlag(bool flag)150 void MockMessageParcel::SetReadInt64ErrorFlag(bool flag)
151 {
152     g_setReadInt64ErrorFlag = flag;
153 }
154 
SetReadFloatErrorFlag(bool flag)155 void MockMessageParcel::SetReadFloatErrorFlag(bool flag)
156 {
157     g_setReadFloatErrorFlag = flag;
158 }
159 
SetReadStringVectorErrorFlag(bool flag)160 void MockMessageParcel::SetReadStringVectorErrorFlag(bool flag)
161 {
162     g_setReadStringVectorErrorFlag = flag;
163 }
164 
SetReadStringErrorFlag(bool flag)165 void MockMessageParcel::SetReadStringErrorFlag(bool flag)
166 {
167     g_setReadStringErrorFlag = flag;
168 }
169 }
170 
WriteInterfaceToken(std::u16string name)171 bool MessageParcel::WriteInterfaceToken(std::u16string name)
172 {
173     if (g_setWriteInterfaceTokenErrorFlag) {
174         return false;
175     }
176     return true;
177 }
178 
179 #ifdef ENABLE_MOCK_WRITE_REMOTE_OBJECT
WriteRemoteObject(const sptr<IRemoteObject> & object)180 bool MessageParcel::WriteRemoteObject(const sptr<IRemoteObject> &object)
181 {
182     if (g_setWriteRemoteObjectErrorFlag) {
183         return false;
184     }
185     return true;
186 }
187 #endif
188 
WriteParcelable(const Parcelable * object)189 bool Parcel::WriteParcelable(const Parcelable* object)
190 {
191     (void)object;
192     if (g_setWriteParcelableErrorFlag) {
193         return false;
194     }
195     return true;
196 }
197 
WriteBool(bool value)198 bool Parcel::WriteBool(bool value)
199 {
200     (void)value;
201     return !g_setWriteBoolErrorFlag;
202 }
203 
WriteInt32(int32_t value)204 bool Parcel::WriteInt32(int32_t value)
205 {
206     (void)value;
207     if (g_setWriteInt32ErrorFlag || value == ERROR_INT) {
208         return false;
209     }
210     return true;
211 }
212 
WriteInt64(int64_t value)213 bool Parcel::WriteInt64(int64_t value)
214 {
215     (void)value;
216     if (g_setWriteInt64ErrorFlag || value == ERROR_INT) {
217         return false;
218     }
219     return true;
220 }
221 
WriteUint32(uint32_t value)222 bool Parcel::WriteUint32(uint32_t value)
223 {
224     (void)value;
225     if (g_setWriteUint32ErrorFlag) {
226         return false;
227     }
228     return true;
229 }
230 
WriteUint64(uint64_t value)231 bool Parcel::WriteUint64(uint64_t value)
232 {
233     (void)value;
234     if (g_setWriteUint64ErrorFlag) {
235         return false;
236     }
237     return true;
238 }
239 
WriteFloat(float value)240 bool Parcel::WriteFloat(float value)
241 {
242     (void)value;
243     if (g_setWriteFloatErrorFlag || value == ERROR_FLOAT) {
244         return false;
245     }
246     return true;
247 }
248 
WriteString16(const std::u16string & value)249 bool Parcel::WriteString16(const std::u16string& value)
250 {
251     (void)value;
252     return !g_setWriteString16ErrorFlag;
253 }
254 
WriteString(const std::string & value)255 bool Parcel::WriteString(const std::string& value)
256 {
257     (void)value;
258     return !g_setWriteStringErrorFlag;
259 }
260 
ReadBool(bool & value)261 bool Parcel::ReadBool(bool& value)
262 {
263     if (g_setReadBoolErrorFlag) {
264         return false;
265     }
266     return true;
267 }
268 
269 #ifdef ENABLE_MOCK_READ_UINT32
ReadUint32(uint32_t & value)270 bool Parcel::ReadUint32(uint32_t& value)
271 {
272     if (g_setReadUint32ErrorFlag) {
273         return false;
274     }
275     return true;
276 }
277 #endif
278 
279 #ifdef ENABLE_MOCK_READ_INT32
ReadInt32(int32_t & value)280 bool Parcel::ReadInt32(int32_t& value)
281 {
282     if (g_setReadInt32ErrorFlag) {
283         return false;
284     }
285     return true;
286 }
287 #endif
288 
ReadUint64(uint64_t & value)289 bool Parcel::ReadUint64(uint64_t& value)
290 {
291     if (g_setReadUint64ErrorFlag) {
292         return false;
293     }
294     return true;
295 }
296 
297 #ifdef ENABLE_MOCK_READ_INT64
ReadInt64(int64_t & value)298 bool Parcel::ReadInt64(int64_t& value)
299 {
300     if (g_setReadInt64ErrorFlag) {
301         return false;
302     }
303     return true;
304 }
305 #endif
306 
ReadFloat(float & value)307 bool Parcel::ReadFloat(float& value)
308 {
309     if (g_setReadFloatErrorFlag) {
310         return false;
311     }
312     return true;
313 }
314 
315 #ifdef ENABLE_MOCK_WRITE_STRING_VECTOR
WriteStringVector(const std::vector<std::string> & val)316 bool Parcel::WriteStringVector(const std::vector<std::string>& val)
317 {
318     (void)val;
319     if (val.size() == ERROR_SIZE) {
320         return false;
321     }
322     return true;
323 }
324 #endif
325 
ReadStringVector(std::vector<std::string> * val)326 bool Parcel::ReadStringVector(std::vector<std::string>* val)
327 {
328     if (g_setReadStringVectorErrorFlag) {
329         return false;
330     }
331     return true;
332 }
333 
ReadString(std::string & val)334 bool Parcel::ReadString(std::string& val)
335 {
336     if (g_setReadStringErrorFlag) {
337         return false;
338     }
339     return true;
340 }
341 } // namespace OHOS
342