1c29fa5a6Sopenharmony_ci/*
2c29fa5a6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License.
5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at
6c29fa5a6Sopenharmony_ci *
7c29fa5a6Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8c29fa5a6Sopenharmony_ci *
9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and
13c29fa5a6Sopenharmony_ci * limitations under the License.
14c29fa5a6Sopenharmony_ci */
15c29fa5a6Sopenharmony_ci
16c29fa5a6Sopenharmony_ci#include "stubunsubscribeswitchevent_fuzzer.h"
17c29fa5a6Sopenharmony_ci
18c29fa5a6Sopenharmony_ci#include "mmi_log.h"
19c29fa5a6Sopenharmony_ci#include "mmi_service.h"
20c29fa5a6Sopenharmony_ci#include "multimodal_input_connect_stub.h"
21c29fa5a6Sopenharmony_ci
22c29fa5a6Sopenharmony_ci#undef MMI_LOG_TAG
23c29fa5a6Sopenharmony_ci#define MMI_LOG_TAG "StubUnsubscribeSwitchEventFuzzTest"
24c29fa5a6Sopenharmony_ci
25c29fa5a6Sopenharmony_cinamespace OHOS {
26c29fa5a6Sopenharmony_cinamespace MMI {
27c29fa5a6Sopenharmony_cinamespace OHOS {
28c29fa5a6Sopenharmony_cibool StubUnsubscribeSwitchEventFuzzTest(const uint8_t* data, size_t size)
29c29fa5a6Sopenharmony_ci{
30c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
31c29fa5a6Sopenharmony_ci    MessageParcel datas;
32c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
33c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
34c29fa5a6Sopenharmony_ci        return false;
35c29fa5a6Sopenharmony_ci    }
36c29fa5a6Sopenharmony_ci    MessageParcel reply;
37c29fa5a6Sopenharmony_ci    MessageOption option;
38c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
39c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
40c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::UNSUBSCRIBE_SWITCH_EVENT), datas, reply, option);
41c29fa5a6Sopenharmony_ci    return true;
42c29fa5a6Sopenharmony_ci}
43c29fa5a6Sopenharmony_ci
44c29fa5a6Sopenharmony_cibool StubSetTouchpadRotateSwitchFuzzTest(const uint8_t* data, size_t size)
45c29fa5a6Sopenharmony_ci{
46c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
47c29fa5a6Sopenharmony_ci    MessageParcel datas;
48c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
49c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
50c29fa5a6Sopenharmony_ci        return false;
51c29fa5a6Sopenharmony_ci    }
52c29fa5a6Sopenharmony_ci    MessageParcel reply;
53c29fa5a6Sopenharmony_ci    MessageOption option;
54c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
55c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
56c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::SET_TP_ROTATE_SWITCH), datas, reply, option);
57c29fa5a6Sopenharmony_ci    return true;
58c29fa5a6Sopenharmony_ci}
59c29fa5a6Sopenharmony_ci
60c29fa5a6Sopenharmony_cibool StubGetTouchpadRotateSwitchFuzzTest(const uint8_t* data, size_t size)
61c29fa5a6Sopenharmony_ci{
62c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
63c29fa5a6Sopenharmony_ci    MessageParcel datas;
64c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
65c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
66c29fa5a6Sopenharmony_ci        return false;
67c29fa5a6Sopenharmony_ci    }
68c29fa5a6Sopenharmony_ci    MessageParcel reply;
69c29fa5a6Sopenharmony_ci    MessageOption option;
70c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
71c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
72c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::GET_TP_ROTATE_SWITCH), datas, reply, option);
73c29fa5a6Sopenharmony_ci    return true;
74c29fa5a6Sopenharmony_ci}
75c29fa5a6Sopenharmony_ci
76c29fa5a6Sopenharmony_cibool StubGetKeyStateFuzzTest(const uint8_t* data, size_t size)
77c29fa5a6Sopenharmony_ci{
78c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
79c29fa5a6Sopenharmony_ci    MessageParcel datas;
80c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
81c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
82c29fa5a6Sopenharmony_ci        return false;
83c29fa5a6Sopenharmony_ci    }
84c29fa5a6Sopenharmony_ci    MessageParcel reply;
85c29fa5a6Sopenharmony_ci    MessageOption option;
86c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
87c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
88c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::GET_KEY_STATE), datas, reply, option);
89c29fa5a6Sopenharmony_ci    return true;
90c29fa5a6Sopenharmony_ci}
91c29fa5a6Sopenharmony_ci
92c29fa5a6Sopenharmony_cibool StubAuthorizeFuzzTest(const uint8_t* data, size_t size)
93c29fa5a6Sopenharmony_ci{
94c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
95c29fa5a6Sopenharmony_ci    MessageParcel datas;
96c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
97c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
98c29fa5a6Sopenharmony_ci        return false;
99c29fa5a6Sopenharmony_ci    }
100c29fa5a6Sopenharmony_ci    MessageParcel reply;
101c29fa5a6Sopenharmony_ci    MessageOption option;
102c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
103c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
104c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::NATIVE_AUTHORIZE), datas, reply, option);
105c29fa5a6Sopenharmony_ci    return true;
106c29fa5a6Sopenharmony_ci}
107c29fa5a6Sopenharmony_ci
108c29fa5a6Sopenharmony_cibool StubCancelInjectionFuzzTest(const uint8_t* data, size_t size)
109c29fa5a6Sopenharmony_ci{
110c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
111c29fa5a6Sopenharmony_ci    MessageParcel datas;
112c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
113c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
114c29fa5a6Sopenharmony_ci        return false;
115c29fa5a6Sopenharmony_ci    }
116c29fa5a6Sopenharmony_ci    MessageParcel reply;
117c29fa5a6Sopenharmony_ci    MessageOption option;
118c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
119c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
120c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::NATIVE_CANCEL_INJECTION), datas, reply, option);
121c29fa5a6Sopenharmony_ci    return true;
122c29fa5a6Sopenharmony_ci}
123c29fa5a6Sopenharmony_ci
124c29fa5a6Sopenharmony_cibool StubHasIrEmitterFuzzTest(const uint8_t* data, size_t size)
125c29fa5a6Sopenharmony_ci{
126c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
127c29fa5a6Sopenharmony_ci    MessageParcel datas;
128c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
129c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
130c29fa5a6Sopenharmony_ci        return false;
131c29fa5a6Sopenharmony_ci    }
132c29fa5a6Sopenharmony_ci    MessageParcel reply;
133c29fa5a6Sopenharmony_ci    MessageOption option;
134c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
135c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
136c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::NATIVE_INFRARED_OWN), datas, reply, option);
137c29fa5a6Sopenharmony_ci    return true;
138c29fa5a6Sopenharmony_ci}
139c29fa5a6Sopenharmony_ci
140c29fa5a6Sopenharmony_cibool StubGetInfraredFrequenciesFuzzTest(const uint8_t* data, size_t size)
141c29fa5a6Sopenharmony_ci{
142c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
143c29fa5a6Sopenharmony_ci    MessageParcel datas;
144c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
145c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
146c29fa5a6Sopenharmony_ci        return false;
147c29fa5a6Sopenharmony_ci    }
148c29fa5a6Sopenharmony_ci    MessageParcel reply;
149c29fa5a6Sopenharmony_ci    MessageOption option;
150c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
151c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
152c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::NATIVE_INFRARED_FREQUENCY), datas, reply, option);
153c29fa5a6Sopenharmony_ci    return true;
154c29fa5a6Sopenharmony_ci}
155c29fa5a6Sopenharmony_ci
156c29fa5a6Sopenharmony_cibool StubTransmitInfraredFuzzTest(const uint8_t* data, size_t size)
157c29fa5a6Sopenharmony_ci{
158c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
159c29fa5a6Sopenharmony_ci    MessageParcel datas;
160c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
161c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
162c29fa5a6Sopenharmony_ci        return false;
163c29fa5a6Sopenharmony_ci    }
164c29fa5a6Sopenharmony_ci    MessageParcel reply;
165c29fa5a6Sopenharmony_ci    MessageOption option;
166c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
167c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
168c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::NATIVE_CANCEL_TRANSMIT), datas, reply, option);
169c29fa5a6Sopenharmony_ci    return true;
170c29fa5a6Sopenharmony_ci}
171c29fa5a6Sopenharmony_ci
172c29fa5a6Sopenharmony_cibool StubSetPixelMapDataFuzzTest(const uint8_t* data, size_t size)
173c29fa5a6Sopenharmony_ci{
174c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
175c29fa5a6Sopenharmony_ci    MessageParcel datas;
176c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
177c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
178c29fa5a6Sopenharmony_ci        return false;
179c29fa5a6Sopenharmony_ci    }
180c29fa5a6Sopenharmony_ci    MessageParcel reply;
181c29fa5a6Sopenharmony_ci    MessageOption option;
182c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
183c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
184c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::SET_PIXEL_MAP_DATA), datas, reply, option);
185c29fa5a6Sopenharmony_ci    return true;
186c29fa5a6Sopenharmony_ci}
187c29fa5a6Sopenharmony_ci
188c29fa5a6Sopenharmony_cibool StubSetCurrentUserFuzzTest(const uint8_t* data, size_t size)
189c29fa5a6Sopenharmony_ci{
190c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
191c29fa5a6Sopenharmony_ci    MessageParcel datas;
192c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
193c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
194c29fa5a6Sopenharmony_ci        return false;
195c29fa5a6Sopenharmony_ci    }
196c29fa5a6Sopenharmony_ci    MessageParcel reply;
197c29fa5a6Sopenharmony_ci    MessageOption option;
198c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
199c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
200c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::SET_CURRENT_USERID), datas, reply, option);
201c29fa5a6Sopenharmony_ci    return true;
202c29fa5a6Sopenharmony_ci}
203c29fa5a6Sopenharmony_ci
204c29fa5a6Sopenharmony_cibool StubEnableHardwareCursorStatsFuzzTest(const uint8_t* data, size_t size)
205c29fa5a6Sopenharmony_ci{
206c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
207c29fa5a6Sopenharmony_ci    MessageParcel datas;
208c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
209c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
210c29fa5a6Sopenharmony_ci        return false;
211c29fa5a6Sopenharmony_ci    }
212c29fa5a6Sopenharmony_ci    MessageParcel reply;
213c29fa5a6Sopenharmony_ci    MessageOption option;
214c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
215c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
216c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::ENABLE_HARDWARE_CURSOR_STATS),
217c29fa5a6Sopenharmony_ci        datas, reply, option);
218c29fa5a6Sopenharmony_ci    return true;
219c29fa5a6Sopenharmony_ci}
220c29fa5a6Sopenharmony_ci
221c29fa5a6Sopenharmony_cibool StubGetHardwareCursorStatsFuzzTest(const uint8_t* data, size_t size)
222c29fa5a6Sopenharmony_ci{
223c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
224c29fa5a6Sopenharmony_ci    MessageParcel datas;
225c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
226c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
227c29fa5a6Sopenharmony_ci        return false;
228c29fa5a6Sopenharmony_ci    }
229c29fa5a6Sopenharmony_ci    MessageParcel reply;
230c29fa5a6Sopenharmony_ci    MessageOption option;
231c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
232c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
233c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::GET_HARDWARE_CURSOR_STATS), datas, reply, option);
234c29fa5a6Sopenharmony_ci    return true;
235c29fa5a6Sopenharmony_ci}
236c29fa5a6Sopenharmony_ci
237c29fa5a6Sopenharmony_cibool StubAddVirtualInputDeviceFuzzTest(const uint8_t* data, size_t size)
238c29fa5a6Sopenharmony_ci{
239c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
240c29fa5a6Sopenharmony_ci    MessageParcel datas;
241c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
242c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
243c29fa5a6Sopenharmony_ci        return false;
244c29fa5a6Sopenharmony_ci    }
245c29fa5a6Sopenharmony_ci    MessageParcel reply;
246c29fa5a6Sopenharmony_ci    MessageOption option;
247c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
248c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
249c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::ADD_VIRTUAL_INPUT_DEVICE), datas, reply, option);
250c29fa5a6Sopenharmony_ci    return true;
251c29fa5a6Sopenharmony_ci}
252c29fa5a6Sopenharmony_ci
253c29fa5a6Sopenharmony_cibool StubRemoveVirtualInputDeviceFuzzTest(const uint8_t* data, size_t size)
254c29fa5a6Sopenharmony_ci{
255c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
256c29fa5a6Sopenharmony_ci    MessageParcel datas;
257c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
258c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
259c29fa5a6Sopenharmony_ci        return false;
260c29fa5a6Sopenharmony_ci    }
261c29fa5a6Sopenharmony_ci    MessageParcel reply;
262c29fa5a6Sopenharmony_ci    MessageOption option;
263c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
264c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
265c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::REMOVE_VIRTUAL_INPUT_DEVICE), datas, reply, option);
266c29fa5a6Sopenharmony_ci    return true;
267c29fa5a6Sopenharmony_ci}
268c29fa5a6Sopenharmony_ci
269c29fa5a6Sopenharmony_cibool StubTransferBinderClientServiceFuzzTest(const uint8_t* data, size_t size)
270c29fa5a6Sopenharmony_ci{
271c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
272c29fa5a6Sopenharmony_ci    MessageParcel datas;
273c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
274c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
275c29fa5a6Sopenharmony_ci        return false;
276c29fa5a6Sopenharmony_ci    }
277c29fa5a6Sopenharmony_ci    MessageParcel reply;
278c29fa5a6Sopenharmony_ci    MessageOption option;
279c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
280c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
281c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::TRANSFER_BINDER_CLIENT_SERVICE),
282c29fa5a6Sopenharmony_ci        datas, reply, option);
283c29fa5a6Sopenharmony_ci    return true;
284c29fa5a6Sopenharmony_ci}
285c29fa5a6Sopenharmony_ci
286c29fa5a6Sopenharmony_ci#ifdef OHOS_BUILD_ENABLE_MAGICCURSOR
287c29fa5a6Sopenharmony_cibool StubGetPointerSnapshotFuzzTest(const uint8_t* data, size_t size)
288c29fa5a6Sopenharmony_ci{
289c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
290c29fa5a6Sopenharmony_ci    MessageParcel datas;
291c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
292c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
293c29fa5a6Sopenharmony_ci        return false;
294c29fa5a6Sopenharmony_ci    }
295c29fa5a6Sopenharmony_ci    MessageParcel reply;
296c29fa5a6Sopenharmony_ci    MessageOption option;
297c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
298c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
299c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::GET_POINTER_SNAPSHOT), datas, reply, option);
300c29fa5a6Sopenharmony_ci    return true;
301c29fa5a6Sopenharmony_ci}
302c29fa5a6Sopenharmony_ci#endif // OHOS_BUILD_ENABLE_MAGICCURSOR
303c29fa5a6Sopenharmony_ci
304c29fa5a6Sopenharmony_cibool StubSkipPointerLayerFuzzTest(const uint8_t* data, size_t size)
305c29fa5a6Sopenharmony_ci{
306c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
307c29fa5a6Sopenharmony_ci    MessageParcel datas;
308c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
309c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
310c29fa5a6Sopenharmony_ci        return false;
311c29fa5a6Sopenharmony_ci    }
312c29fa5a6Sopenharmony_ci    MessageParcel reply;
313c29fa5a6Sopenharmony_ci    MessageOption option;
314c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
315c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
316c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::SKIP_POINTER_LAYER), datas, reply, option);
317c29fa5a6Sopenharmony_ci    return true;
318c29fa5a6Sopenharmony_ci}
319c29fa5a6Sopenharmony_ci
320c29fa5a6Sopenharmony_cibool StubMarkEventConsumedFuzzTest(const uint8_t* data, size_t size)
321c29fa5a6Sopenharmony_ci{
322c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
323c29fa5a6Sopenharmony_ci    MessageParcel datas;
324c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
325c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
326c29fa5a6Sopenharmony_ci        return false;
327c29fa5a6Sopenharmony_ci    }
328c29fa5a6Sopenharmony_ci    MessageParcel reply;
329c29fa5a6Sopenharmony_ci    MessageOption option;
330c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
331c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
332c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::MARK_EVENT_CONSUMED), datas, reply, option);
333c29fa5a6Sopenharmony_ci    return true;
334c29fa5a6Sopenharmony_ci}
335c29fa5a6Sopenharmony_ci
336c29fa5a6Sopenharmony_cibool StubGetDeviceFuzzTest(const uint8_t* data, size_t size)
337c29fa5a6Sopenharmony_ci{
338c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
339c29fa5a6Sopenharmony_ci    MessageParcel datas;
340c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
341c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
342c29fa5a6Sopenharmony_ci        return false;
343c29fa5a6Sopenharmony_ci    }
344c29fa5a6Sopenharmony_ci    MessageParcel reply;
345c29fa5a6Sopenharmony_ci    MessageOption option;
346c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
347c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
348c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::GET_DEVICE), datas, reply, option);
349c29fa5a6Sopenharmony_ci    return true;
350c29fa5a6Sopenharmony_ci}
351c29fa5a6Sopenharmony_ci
352c29fa5a6Sopenharmony_cibool StubSetTouchpadThreeFingersTapSwitchFuzzTest(const uint8_t* data, size_t size)
353c29fa5a6Sopenharmony_ci{
354c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
355c29fa5a6Sopenharmony_ci    MessageParcel datas;
356c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
357c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
358c29fa5a6Sopenharmony_ci        return false;
359c29fa5a6Sopenharmony_ci    }
360c29fa5a6Sopenharmony_ci    MessageParcel reply;
361c29fa5a6Sopenharmony_ci    MessageOption option;
362c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
363c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
364c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::SET_THREE_GINGERS_TAPSWITCH), datas, reply, option);
365c29fa5a6Sopenharmony_ci    return true;
366c29fa5a6Sopenharmony_ci}
367c29fa5a6Sopenharmony_ci
368c29fa5a6Sopenharmony_cibool StubGetTouchpadThreeFingersTapSwitchFuzzTest(const uint8_t* data, size_t size)
369c29fa5a6Sopenharmony_ci{
370c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
371c29fa5a6Sopenharmony_ci    MessageParcel datas;
372c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
373c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
374c29fa5a6Sopenharmony_ci        return false;
375c29fa5a6Sopenharmony_ci    }
376c29fa5a6Sopenharmony_ci    MessageParcel reply;
377c29fa5a6Sopenharmony_ci    MessageOption option;
378c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
379c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
380c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::GET_THREE_GINGERS_TAPSWITCH), datas, reply, option);
381c29fa5a6Sopenharmony_ci    return true;
382c29fa5a6Sopenharmony_ci}
383c29fa5a6Sopenharmony_ci
384c29fa5a6Sopenharmony_ci#ifdef OHOS_BUILD_ENABLE_ANCO
385c29fa5a6Sopenharmony_cibool StubAncoAddChannelFuzzTest(const uint8_t* data, size_t size)
386c29fa5a6Sopenharmony_ci{
387c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
388c29fa5a6Sopenharmony_ci    MessageParcel datas;
389c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
390c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
391c29fa5a6Sopenharmony_ci        return false;
392c29fa5a6Sopenharmony_ci    }
393c29fa5a6Sopenharmony_ci    MessageParcel reply;
394c29fa5a6Sopenharmony_ci    MessageOption option;
395c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
396c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
397c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::ADD_ANCO_CHANNEL), datas, reply, option);
398c29fa5a6Sopenharmony_ci    return true;
399c29fa5a6Sopenharmony_ci}
400c29fa5a6Sopenharmony_ci
401c29fa5a6Sopenharmony_cibool StubAncoRemoveChannelFuzzTest(const uint8_t* data, size_t size)
402c29fa5a6Sopenharmony_ci{
403c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
404c29fa5a6Sopenharmony_ci    MessageParcel datas;
405c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
406c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
407c29fa5a6Sopenharmony_ci        return false;
408c29fa5a6Sopenharmony_ci    }
409c29fa5a6Sopenharmony_ci    MessageParcel reply;
410c29fa5a6Sopenharmony_ci    MessageOption option;
411c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
412c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(
413c29fa5a6Sopenharmony_ci        static_cast<uint32_t>(MultimodalinputConnectInterfaceCode::REMOVE_ANCO_CHANNEL), datas, reply, option);
414c29fa5a6Sopenharmony_ci    return true;
415c29fa5a6Sopenharmony_ci}
416c29fa5a6Sopenharmony_ci#endif // OHOS_BUILD_ENABLE_ANCO
417c29fa5a6Sopenharmony_ci
418c29fa5a6Sopenharmony_cibool switchDefaultFuzzTest(const uint8_t* data, size_t size)
419c29fa5a6Sopenharmony_ci{
420c29fa5a6Sopenharmony_ci    const std::u16string FORMMGR_INTERFACE_TOKEN { u"ohos.multimodalinput.IConnectManager" };
421c29fa5a6Sopenharmony_ci    MessageParcel datas;
422c29fa5a6Sopenharmony_ci    if (!datas.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN) ||
423c29fa5a6Sopenharmony_ci        !datas.WriteBuffer(data, size) || !datas.RewindRead(0)) {
424c29fa5a6Sopenharmony_ci        return false;
425c29fa5a6Sopenharmony_ci    }
426c29fa5a6Sopenharmony_ci    MessageParcel reply;
427c29fa5a6Sopenharmony_ci    MessageOption option;
428c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->state_ = ServiceRunningState::STATE_RUNNING;
429c29fa5a6Sopenharmony_ci    uint32_t code = 1000;
430c29fa5a6Sopenharmony_ci    MMIService::GetInstance()->OnRemoteRequest(code, datas, reply, option);
431c29fa5a6Sopenharmony_ci    return true;
432c29fa5a6Sopenharmony_ci}
433c29fa5a6Sopenharmony_ci} // namespace OHOS
434c29fa5a6Sopenharmony_ci
435c29fa5a6Sopenharmony_ciextern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
436c29fa5a6Sopenharmony_ci{
437c29fa5a6Sopenharmony_ci    /* Run your code on data */
438c29fa5a6Sopenharmony_ci    if (data == nullptr) {
439c29fa5a6Sopenharmony_ci        return 0;
440c29fa5a6Sopenharmony_ci    }
441c29fa5a6Sopenharmony_ci
442c29fa5a6Sopenharmony_ci    OHOS::StubUnsubscribeSwitchEventFuzzTest(data, size);
443c29fa5a6Sopenharmony_ci    OHOS::StubSetTouchpadRotateSwitchFuzzTest(data, size);
444c29fa5a6Sopenharmony_ci    OHOS::StubGetTouchpadRotateSwitchFuzzTest(data, size);
445c29fa5a6Sopenharmony_ci    OHOS::StubGetKeyStateFuzzTest(data, size);
446c29fa5a6Sopenharmony_ci    OHOS::StubAuthorizeFuzzTest(data, size);
447c29fa5a6Sopenharmony_ci    OHOS::StubCancelInjectionFuzzTest(data, size);
448c29fa5a6Sopenharmony_ci    OHOS::StubHasIrEmitterFuzzTest(data, size);
449c29fa5a6Sopenharmony_ci    OHOS::StubGetInfraredFrequenciesFuzzTest(data, size);
450c29fa5a6Sopenharmony_ci    OHOS::StubTransmitInfraredFuzzTest(data, size);
451c29fa5a6Sopenharmony_ci    OHOS::StubSetPixelMapDataFuzzTest(data, size);
452c29fa5a6Sopenharmony_ci    OHOS::StubSetCurrentUserFuzzTest(data, size);
453c29fa5a6Sopenharmony_ci    OHOS::StubEnableHardwareCursorStatsFuzzTest(data, size);
454c29fa5a6Sopenharmony_ci    OHOS::StubGetHardwareCursorStatsFuzzTest(data, size);
455c29fa5a6Sopenharmony_ci    OHOS::StubAddVirtualInputDeviceFuzzTest(data, size);
456c29fa5a6Sopenharmony_ci    OHOS::StubRemoveVirtualInputDeviceFuzzTest(data, size);
457c29fa5a6Sopenharmony_ci    OHOS::StubTransferBinderClientServiceFuzzTest(data, size);
458c29fa5a6Sopenharmony_ci#ifdef OHOS_BUILD_ENABLE_MAGICCURSOR
459c29fa5a6Sopenharmony_ci    OHOS::StubGetPointerSnapshotFuzzTest(data, size);
460c29fa5a6Sopenharmony_ci#endif // OHOS_BUILD_ENABLE_MAGICCURSOR
461c29fa5a6Sopenharmony_ci    OHOS::StubSkipPointerLayerFuzzTest(data, size);
462c29fa5a6Sopenharmony_ci    OHOS::StubMarkEventConsumedFuzzTest(data, size);
463c29fa5a6Sopenharmony_ci    OHOS::StubGetDeviceFuzzTest(data, size);
464c29fa5a6Sopenharmony_ci    OHOS::StubSetTouchpadThreeFingersTapSwitchFuzzTest(data, size);
465c29fa5a6Sopenharmony_ci    OHOS::StubGetTouchpadThreeFingersTapSwitchFuzzTest(data, size);
466c29fa5a6Sopenharmony_ci#ifdef OHOS_BUILD_ENABLE_ANCO
467c29fa5a6Sopenharmony_ci    OHOS::StubAncoAddChannelFuzzTest(data, size);
468c29fa5a6Sopenharmony_ci    OHOS::StubAncoRemoveChannelFuzzTest(data, size);
469c29fa5a6Sopenharmony_ci#endif // OHOS_BUILD_ENABLE_ANCO
470c29fa5a6Sopenharmony_ci    OHOS::switchDefaultFuzzTest(data, size);
471c29fa5a6Sopenharmony_ci    return 0;
472c29fa5a6Sopenharmony_ci}
473c29fa5a6Sopenharmony_ci} // namespace MMI
474c29fa5a6Sopenharmony_ci} // namespace OHOS