1 /*
2  * Copyright (C) 2022 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 "message_parcel.h"
17 #include "mock_message_parcel_helper.h"
18 
19 namespace {
20     bool g_bgTaskFwkAbnormalWriteRemoteObjectFlag = true;
21     bool g_bgTaskFwkAbnormalReadRemoteObjectFlag = true;
22     bool g_bgTaskFwkAbnormalWriteInterfaceTokenFlag = true;
23     bool g_bgTaskFwkAbnormalReadInterfaceTokenFlag = true;
24     bool g_bgTaskFwkAbnormalWriteString16Flag = true;
25     bool g_bgTaskFwkAbnormalReadInt32WithParamFlag = true;
26     bool g_bgTaskFwkAbnormalWriteInt32WithParamFlag = true;
27     bool g_bgTaskFwkAbnormalWriteParcelableFlag = true;
28     bool g_bgTaskFwkAbnormalWriteStringFlag = true;
29     bool g_bgTaskFwkAbnormalWriteUint32Flag = true;
30     bool g_bgTaskFwkAbnormalReadInt32Flag = true;
31 }
32 
33 namespace OHOS {
BgTaskFwkAbnormalSetWriteRemoteObjectFlag(bool flag)34 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteRemoteObjectFlag(bool flag)
35 {
36     g_bgTaskFwkAbnormalWriteRemoteObjectFlag = flag;
37 }
38 
BgTaskFwkAbnormalSetWriteReadRemoteObjectFlag(bool flag)39 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteReadRemoteObjectFlag(bool flag)
40 {
41     g_bgTaskFwkAbnormalReadRemoteObjectFlag = flag;
42 }
43 
BgTaskFwkAbnormalSetWriteInterfaceTokenFlag(bool flag)44 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteInterfaceTokenFlag(bool flag)
45 {
46     g_bgTaskFwkAbnormalWriteInterfaceTokenFlag = flag;
47 }
48 
BgTaskFwkAbnormalSetReadInterfaceTokenFlag(bool flag)49 void MessageParcelHelper::BgTaskFwkAbnormalSetReadInterfaceTokenFlag(bool flag)
50 {
51     g_bgTaskFwkAbnormalReadInterfaceTokenFlag = flag;
52 }
53 
BgTaskFwkAbnormalSetWriteString16Flag(bool flag)54 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteString16Flag(bool flag)
55 {
56     g_bgTaskFwkAbnormalWriteString16Flag = flag;
57 }
58 
BgTaskFwkAbnormalSetWriteReadInt32WithParamFlag(bool flag)59 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteReadInt32WithParamFlag(bool flag)
60 {
61     g_bgTaskFwkAbnormalReadInt32WithParamFlag = flag;
62 }
63 
BgTaskFwkAbnormalSetWriteInt32WithParamFlag(bool flag)64 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteInt32WithParamFlag(bool flag)
65 {
66     g_bgTaskFwkAbnormalWriteInt32WithParamFlag = flag;
67 }
68 
BgTaskFwkAbnormalSetWriteParcelableFlag(bool flag)69 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteParcelableFlag(bool flag)
70 {
71     g_bgTaskFwkAbnormalWriteParcelableFlag = flag;
72 }
73 
BgTaskFwkAbnormalSetWriteStringFlag(bool flag)74 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteStringFlag(bool flag)
75 {
76     g_bgTaskFwkAbnormalWriteStringFlag = flag;
77 }
78 
BgTaskFwkAbnormalSetWriteUint32Flag(bool flag)79 void MessageParcelHelper::BgTaskFwkAbnormalSetWriteUint32Flag(bool flag)
80 {
81     g_bgTaskFwkAbnormalWriteUint32Flag = flag;
82 }
83 
BgTaskFwkAbnormalSetReadInt32Flag(bool flag)84 void MessageParcelHelper::BgTaskFwkAbnormalSetReadInt32Flag(bool flag)
85 {
86     g_bgTaskFwkAbnormalReadInt32Flag = flag;
87 }
88 
WriteRemoteObject(const sptr<IRemoteObject> & object)89 bool MessageParcel::WriteRemoteObject(const sptr<IRemoteObject> &object)
90 {
91     return g_bgTaskFwkAbnormalWriteRemoteObjectFlag;
92 }
93 
WriteInterfaceToken(std::u16string name)94 bool MessageParcel::WriteInterfaceToken(std::u16string name)
95 {
96     return g_bgTaskFwkAbnormalWriteInterfaceTokenFlag;
97 }
98 
ReadInterfaceToken()99 std::u16string MessageParcel::ReadInterfaceToken()
100 {
101     if (g_bgTaskFwkAbnormalReadInterfaceTokenFlag) {
102         return std::u16string(u"string");
103     }
104     return std::u16string();
105 }
106 
WriteString16(const std::u16string & value)107 bool Parcel::WriteString16(const std::u16string &value)
108 {
109     return g_bgTaskFwkAbnormalWriteString16Flag;
110 }
111 
ReadInt32(int32_t & value)112 bool Parcel::ReadInt32(int32_t &value)
113 {
114     return g_bgTaskFwkAbnormalReadInt32WithParamFlag;
115 }
116 
WriteInt32(int32_t value)117 bool Parcel::WriteInt32(int32_t value)
118 {
119     return g_bgTaskFwkAbnormalWriteInt32WithParamFlag;
120 }
121 
WriteParcelable(const Parcelable * object)122 bool Parcel::WriteParcelable(const Parcelable *object)
123 {
124     return g_bgTaskFwkAbnormalWriteParcelableFlag;
125 }
126 
WriteString(const std::string & value)127 bool Parcel::WriteString(const std::string &value)
128 {
129     return g_bgTaskFwkAbnormalWriteStringFlag;
130 }
131 
WriteUint32(uint32_t value)132 bool Parcel::WriteUint32(uint32_t value)
133 {
134     return g_bgTaskFwkAbnormalWriteUint32Flag;
135 }
136 
ReadInt32()137 int32_t Parcel::ReadInt32()
138 {
139     return 1;
140 }
141 } // namespace OHOS
142