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 #define private public
16 #define protected public
17 #include "printserviceability_fuzzer.h"
18 #include "fuzzer/FuzzedDataProvider.h"
19 #include "print_constant.h"
20 #include "printer_capability.h"
21 #include "print_log.h"
22 #include "print_service_ability.h"
23 #include "print_service_ability_mock_permission.h"
24 #include "print_callback.h"
25 #include "iprint_adapter_inner.h"
26
27 namespace OHOS {
28 namespace Print {
29 constexpr uint8_t MAX_STRING_LENGTH = 20;
30 constexpr int MAX_SET_NUMBER = 128;
31 constexpr size_t U32_AT_SIZE = 4;
32 static constexpr const char *JOB_OPTIONS =
33 "{\"jobName\":\"xx\",\"jobNum\":1,\"mediaType\":\"stationery\",\"documentCategory\":0,\"printQuality\":\"4\","
34 "\"printerName\":\"testId\",\"printerUri\":\"ipp://192.168.0.1:111/ipp/print\","
35 "\"documentFormat\":\"application/pdf\",\"files\":[\"/data/1.pdf\"]}";
36 static const std::string DEFAULT_PRINTERID = "testId";
37
TestStartPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)38 void TestStartPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
39 {
40 PrintServiceAbility::GetInstance()->OnStart();
41 PrintServiceAbility::GetInstance()->ManualStart();
42 auto printer = std::make_shared<PrinterInfo>();
43 PrintServiceAbility::GetInstance()->printSystemData_.addedPrinterMap_.Insert(DEFAULT_PRINTERID, printer);
44 PrintServiceAbility::GetInstance()->StartService();
45 std::string fileUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
46 std::vector<std::string> fileList;
47 fileList.push_back(fileUri);
48 uint32_t fd = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
49 std::vector<uint32_t> fdList;
50 fdList.push_back(fd);
51 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
52 PrintServiceAbility::GetInstance()->StartPrint(fileList, fdList, taskId);
53 PrintServiceAbility::GetInstance()->OnStop();
54 }
55
TestStopPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)56 void TestStopPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
57 {
58 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
59 PrintServiceAbility::GetInstance()->StopPrint(taskId);
60 }
61
TestConnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)62 void TestConnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
63 {
64 std::string printerId = size ? dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH) : DEFAULT_PRINTERID;
65 PrinterInfo printerInfo;
66 printerInfo.SetPrinterId(printerId);
67 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
68 printerInfo.SetOption(JOB_OPTIONS);
69 std::vector <PrinterInfo> printerInfos;
70 printerInfos.push_back(printerInfo);
71 PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
72 PrintServiceAbility::GetInstance()->ConnectPrinter(printerId);
73 PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
74 }
75
TestDisconnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)76 void TestDisconnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
77 {
78 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
79 PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
80 auto printerInfo = std::make_shared<PrinterInfo>();
81 printerInfo->SetPrinterId(printerId);
82 // anyway add printer to discovery list.
83 PrintServiceAbility::GetInstance()->
84 printSystemData_.discoveredPrinterInfoList_[printerInfo->GetPrinterId()] = printerInfo;
85 PrintServiceAbility::GetInstance()->DisconnectPrinter(printerId);
86 }
87
TestStartDiscoverPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)88 void TestStartDiscoverPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
89 {
90 std::vector <PrintExtensionInfo> printExtensionInfos;
91 PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
92 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
93 std::vector <std::string> extensionIds;
94 extensionIds.push_back(extensionId);
95 for (auto &printExtensionInfo: printExtensionInfos) {
96 extensionIds.push_back(printExtensionInfo.GetExtensionId());
97 }
98 PrintServiceAbility::GetInstance()->StartDiscoverPrinter(extensionIds);
99 PrintServiceAbility::GetInstance()->StopDiscoverPrinter();
100 }
101
TestQueryAllExtension(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)102 void TestQueryAllExtension(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
103 {
104 PrintExtensionInfo printExtensionInfo;
105 printExtensionInfo.SetExtensionId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
106 std::vector<PrintExtensionInfo> printExtensionInfos;
107 printExtensionInfos.push_back(printExtensionInfo);
108 PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
109 }
110
TestStartPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)111 void TestStartPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
112 {
113 PrinterInfo printerInfo;
114 printerInfo.SetPrinterId(DEFAULT_PRINTERID);
115 printerInfo.SetPrinterName(DEFAULT_PRINTERID);
116 std::vector <PrinterInfo> printerInfos;
117 PrinterCapability printerCaps;
118 printerCaps.SetColorMode(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
119 printerInfos.push_back(printerInfo);
120
121 PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
122 PrintServiceAbility::GetInstance()->UpdatePrinters(printerInfos);
123
124 PrintJob testJob;
125 testJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
126 std::vector <uint32_t> files = {1};
127 testJob.SetFdList(files);
128 OHOS::Print::PrintPageSize pageSize;
129 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
130 testJob.SetPageSize(pageSize);
131 testJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
132 testJob.SetOption(JOB_OPTIONS);
133 PrintServiceAbility::GetInstance()->StartPrintJob(testJob);
134 PrintServiceAbility::GetInstance()->GetCallerUserName();
135 }
136
TestCancelPrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)137 void TestCancelPrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
138 {
139 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
140 PrintServiceAbility::GetInstance()->CancelPrintJob(jobId);
141 }
142
TestAddPrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)143 void TestAddPrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
144 {
145 PrinterInfo printerInfo;
146 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
147 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
148 printerInfo.SetOption(JOB_OPTIONS);
149 std::vector<PrinterInfo> printerInfos;
150 printerInfos.push_back(printerInfo);
151 PrintServiceAbility::GetInstance()->AddPrinters(printerInfos);
152 }
153
TestRemovePrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)154 void TestRemovePrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
155 {
156 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
157 std::vector<std::string> printerIds;
158 printerIds.push_back(printerId);
159 PrintServiceAbility::GetInstance()->RemovePrinters(printerIds);
160 }
161
TestUpdatePrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)162 void TestUpdatePrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
163 {
164 PrinterInfo printerInfo;
165 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
166 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
167 printerInfo.SetOption(JOB_OPTIONS);
168 std::vector<PrinterInfo> printerInfos;
169 printerInfos.push_back(printerInfo);
170 PrintServiceAbility::GetInstance()->UpdatePrinters(printerInfos);
171 return;
172 }
173
TestUpdatePrinterState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)174 void TestUpdatePrinterState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
175 {
176 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
177 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
178 PrintServiceAbility::GetInstance()->UpdatePrinterState(printerId, state);
179 }
180
TestUpdatePrintJobStateOnlyForSystemApp(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)181 void TestUpdatePrintJobStateOnlyForSystemApp(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
182 {
183 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
184 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
185 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
186 PrintServiceAbility::GetInstance()->UpdatePrintJobStateOnlyForSystemApp(jobId, state, subState);
187 }
188
TestUpdateExtensionInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)189 void TestUpdateExtensionInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
190 {
191 std::string extInfo = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
192 PrintServiceAbility::GetInstance()->UpdateExtensionInfo(extInfo);
193 }
194
TestRequestPreview(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)195 void TestRequestPreview(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
196 {
197 PrintJob printJob;
198 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
199 std::vector<uint32_t> files = {1};
200 printJob.SetFdList(files);
201 OHOS::Print::PrintPageSize pageSize;
202 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
203 printJob.SetPageSize(pageSize);
204 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
205 printJob.SetOption(JOB_OPTIONS);
206 std::string previewResult = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
207 PrintServiceAbility::GetInstance()->RequestPreview(printJob, previewResult);
208 }
209
TestQueryPrinterCapability(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)210 void TestQueryPrinterCapability(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
211 {
212 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
213 PrintServiceAbility::GetInstance()->QueryPrinterCapability(printerId);
214 }
215
TestOn(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)216 void TestOn(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
217 {
218 PrintDocumentAdapter *printerAdapterPtr = new PrintDocumentAdapter();
219 sptr <PrintCallback> callback = new(std::nothrow) PrintCallback(printerAdapterPtr);
220 if (callback != nullptr) {
221 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
222 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
223 PrintServiceAbility::GetInstance()->On(taskId, type, callback);
224 } else {
225 delete printerAdapterPtr;
226 printerAdapterPtr = nullptr;
227 }
228 }
229
TestOff(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)230 void TestOff(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
231 {
232 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
233 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
234 PrintServiceAbility::GetInstance()->Off(taskId, type);
235 }
236
TestCallback(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)237 void TestCallback(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
238 {
239 PrintDocumentAdapter *printerAdapterPtr = new PrintDocumentAdapter();
240 sptr <PrintCallback> callback = new(std::nothrow) PrintCallback(printerAdapterPtr);
241 if (callback != nullptr) {
242 std::string type = PRINTER_DISCOVER_EVENT_TYPE;
243 PrintServiceAbility::GetInstance()->RegisterPrinterCallback(type, callback);
244 PrintServiceAbility::GetInstance()->UnregisterPrinterCallback(type);
245 } else {
246 delete printerAdapterPtr;
247 printerAdapterPtr = nullptr;
248 }
249 std::vector <PrintExtensionInfo> printExtensionInfos;
250 PrintServiceAbility::GetInstance()->QueryAllExtension(printExtensionInfos);
251 std::vector <std::string> extensionIds;
252 for (auto &printExtensionInfo: printExtensionInfos) {
253 extensionIds.push_back(printExtensionInfo.GetExtensionId());
254 }
255 PrintServiceAbility::GetInstance()->StartDiscoverPrinter(extensionIds);
256
257 for (auto &printExtensionInfo: printExtensionInfos) {
258 PrintServiceAbility::GetInstance()->RegisterExtCallback(printExtensionInfo.GetExtensionId(), nullptr);
259 PrintServiceAbility::GetInstance()->UnregisterAllExtCallback(printExtensionInfo.GetExtensionId());
260 }
261
262 std::string extensionCID = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
263 PrintServiceAbility::GetInstance()->RegisterExtCallback(extensionCID, nullptr);
264 PrintServiceAbility::GetInstance()->UnregisterAllExtCallback(extensionCID);
265 }
266
TestLoadExtSuccess(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)267 void TestLoadExtSuccess(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
268 {
269 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
270 PrintServiceAbility::GetInstance()->LoadExtSuccess(extensionId);
271 }
272
TestQueryAllActivePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)273 void TestQueryAllActivePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
274 {
275 PrintJob printJob;
276 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
277 std::vector<uint32_t> files = {0};
278 printJob.SetFdList(files);
279 OHOS::Print::PrintPageSize pageSize;
280 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
281 printJob.SetPageSize(pageSize);
282 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
283 std::vector<PrintJob> printJobs;
284 printJobs.push_back(printJob);
285 PrintServiceAbility::GetInstance()->QueryAllActivePrintJob(printJobs);
286 }
287
TestQueryPrintJobById(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)288 void TestQueryPrintJobById(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
289 {
290 PrintJob printJob;
291 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
292 std::vector<uint32_t> files = {0};
293 printJob.SetFdList(files);
294 OHOS::Print::PrintPageSize pageSize;
295 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
296 printJob.SetPageSize(pageSize);
297 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
298 std::string printJobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
299 PrintServiceAbility::GetInstance()->QueryPrintJobById(printJobId, printJob);
300 }
301
TestAddPrinterToCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)302 void TestAddPrinterToCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
303 {
304 std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
305 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
306 std::string printerMake = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
307 PrintServiceAbility::GetInstance()->AddPrinterToCups(printerUri, printerName, printerMake);
308 }
309
TestQueryPrinterCapabilityByUri(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)310 void TestQueryPrinterCapabilityByUri(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
311 {
312 std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
313 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
314 PrinterCapability printerCaps;
315 PrintServiceAbility::GetInstance()->SetHelper(nullptr);
316 PrintServiceAbility::GetInstance()->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps);
317 }
318
TestPrintByAdapter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)319 void TestPrintByAdapter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
320 {
321 std::string jobName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
322 PrintAttributes printAttributes;
323 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
324 PrintServiceAbility::GetInstance()->PrintByAdapter(jobName, printAttributes, taskId);
325 }
326
TestStartGetPrintFile(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)327 void TestStartGetPrintFile(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
328 {
329 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
330 PrintAttributes printAttributes;
331 uint32_t fd = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
332 PrintServiceAbility::GetInstance()->StartGetPrintFile(jobId, printAttributes, fd);
333 }
334
TestQueryPrinterInfoByPrinterId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)335 void TestQueryPrinterInfoByPrinterId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
336 {
337 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
338 PrinterInfo printerInfo;
339 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
340 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
341 printerInfo.SetOption(JOB_OPTIONS);
342 PrintServiceAbility::GetInstance()->QueryPrinterInfoByPrinterId(printerId, printerInfo);
343 }
344
TestNotifyPrintService(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)345 void TestNotifyPrintService(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
346 {
347 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
348 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
349 PrintServiceAbility::GetInstance()->NotifyPrintService(jobId, type);
350 }
351
TestQueryAddedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)352 void TestQueryAddedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
353 {
354 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
355 std::vector<std::string> printerNameList;
356 printerNameList.push_back(printerName);
357 PrintServiceAbility::GetInstance()->QueryAddedPrinter(printerNameList);
358 }
359
TestQueryPrinterProperties(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)360 void TestQueryPrinterProperties(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
361 {
362 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
363 std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
364 std::vector<std::string> keyList;
365 keyList.push_back(key);
366 std::string value = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
367 std::vector<std::string> valueList;
368 valueList.push_back(value);
369 PrintServiceAbility::GetInstance()->QueryPrinterProperties(printerId, keyList, valueList);
370 }
371
TestUpdatePrintJobState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)372 void TestUpdatePrintJobState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
373 {
374 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
375 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
376 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
377 PrintServiceAbility::GetInstance()->UpdatePrintJobState(jobId, state, subState);
378 }
379
TestSetPrinterPreference(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)380 void TestSetPrinterPreference(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
381 {
382 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
383 PrinterPreferences printerPreference;
384 PrintServiceAbility::GetInstance()->SetPrinterPreference(printerId, printerPreference);
385 }
386
TestSetDefaultPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)387 void TestSetDefaultPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
388 {
389 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
390 uint32_t type = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
391 PrintServiceAbility::GetInstance()->SetDefaultPrinter(printerId, type);
392 }
393
TestDeletePrinterFromCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)394 void TestDeletePrinterFromCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
395 {
396 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
397 PrintServiceAbility::GetInstance()->DeletePrinterFromCups(printerName);
398 }
399
TestDiscoverUsbPrinters(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)400 void TestDiscoverUsbPrinters(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
401 {
402 PrinterInfo printerInfo;
403 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
404 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
405 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
406 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
407 std::vector<PrinterInfo> printers;
408 printers.push_back(printerInfo);
409 PrintServiceAbility::GetInstance()->DiscoverUsbPrinters(printers);
410 }
411
TestStartNativePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)412 void TestStartNativePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
413 {
414 PrintJob testJob;
415 testJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
416 std::vector<uint32_t> files = {1};
417 testJob.SetFdList(files);
418 OHOS::Print::PrintPageSize pageSize;
419 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
420 testJob.SetPageSize(pageSize);
421 testJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
422 testJob.SetOption(JOB_OPTIONS);
423 PrintServiceAbility::GetInstance()->StartNativePrintJob(testJob);
424 }
425
TestNotifyPrintServiceEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)426 void TestNotifyPrintServiceEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
427 {
428 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
429 uint32_t event = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
430 PrintServiceAbility::GetInstance()->NotifyPrintServiceEvent(jobId, event);
431 }
432
433 // below are private test
TestUpdateQueuedJobList(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)434 void TestUpdateQueuedJobList(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
435 {
436 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
437 std::string printJobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
438 auto printJob = std::make_shared<PrintJob>();
439 printJob->SetJobId(printJobId);
440 printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
441 PrintServiceAbility::GetInstance()->UpdateQueuedJobList(printJobId, printJob);
442 }
443
TestUpdatePrintJobOptionByPrinterId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)444 void TestUpdatePrintJobOptionByPrinterId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
445 {
446 PrintJob printJob;
447 printJob.SetJobId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
448 std::vector<uint32_t> files = {0};
449 printJob.SetFdList(files);
450 OHOS::Print::PrintPageSize pageSize;
451 pageSize.SetId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
452 printJob.SetPageSize(pageSize);
453 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
454 PrintServiceAbility::GetInstance()->UpdatePrintJobOptionByPrinterId(printJob);
455 }
456
TestDelayStartDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)457 void TestDelayStartDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
458 {
459 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
460 PrintServiceAbility::GetInstance()->DelayStartDiscovery(extensionId);
461 }
462
TestAdapterGetFileCallBack(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)463 void TestAdapterGetFileCallBack(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
464 {
465 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
466 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
467 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
468 PrintServiceAbility::GetInstance()->AdapterGetFileCallBack(jobId, state, subState);
469 }
470
TestAddNativePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)471 void TestAddNativePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
472 {
473 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
474 PrintJob printJob;
475 PrintServiceAbility::GetInstance()->AddNativePrintJob(jobId, printJob);
476 }
477
TestIsQueuedJobListEmpty(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)478 void TestIsQueuedJobListEmpty(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
479 {
480 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
481 PrintServiceAbility::GetInstance()->IsQueuedJobListEmpty(jobId);
482 }
483
TestSetPrintJobCanceled(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)484 void TestSetPrintJobCanceled(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
485 {
486 PrintJob printJob;
487 std::string printerid = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
488 printJob.SetPrinterId(printerid);
489 PrintServiceAbility::GetInstance()->SetPrintJobCanceled(printJob);
490 }
491
TestCancelUserPrintJobs(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)492 void TestCancelUserPrintJobs(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
493 {
494 int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
495 PrintServiceAbility::GetInstance()->CancelUserPrintJobs(userId);
496 PrintServiceAbility::GetInstance()->CallStatusBar();
497 AAFwk::Want want;
498 want.SetElementName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH),
499 dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
500 PrintServiceAbility::GetInstance()->StartPluginPrintIconExtAbility(want);
501 }
502
TestSendExtensionEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)503 void TestSendExtensionEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
504 {
505 std::string extensionId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
506 std::string extInfo = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
507 PrintServiceAbility::GetInstance()->SendExtensionEvent(extensionId, extInfo);
508 PrintServiceAbility::GetInstance()->UpdatePrintUserMap();
509 }
510
TestNotifyAdapterJobChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)511 void TestNotifyAdapterJobChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
512 {
513 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
514 uint32_t state = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
515 uint32_t subState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
516 PrintServiceAbility::GetInstance()->notifyAdapterJobChanged(jobId, state, subState);
517 }
518
TestRegisterAdapterListener(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)519 void TestRegisterAdapterListener(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
520 {
521 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
522 PrintServiceAbility::GetInstance()->RegisterAdapterListener(jobId);
523 }
524
TestisEprint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)525 void TestisEprint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
526 {
527 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
528 PrintServiceAbility::GetInstance()->isEprint(printerId);
529 PrintServiceAbility::GetInstance()->GetPrintJobOrderId();
530 }
531
TestCheckIsDefaultPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)532 void TestCheckIsDefaultPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
533 {
534 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
535 PrintServiceAbility::GetInstance()->CheckIsDefaultPrinter(printerId);
536 }
537
TestCheckIsLastUsedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)538 void TestCheckIsLastUsedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
539 {
540 std::string printerName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
541 PrintServiceAbility::GetInstance()->CheckIsLastUsedPrinter(printerName);
542 }
543
TestSetLastUsedPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)544 void TestSetLastUsedPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
545 {
546 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
547 PrintServiceAbility::GetInstance()->SetLastUsedPrinter(printerId);
548 }
549
TestSendPrintJobEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)550 void TestSendPrintJobEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
551 {
552 PrintJob jobInfo;
553 uint32_t jobStateArr[] = {PRINT_JOB_COMPLETED, PRINT_JOB_BLOCKED, PRINT_JOB_COMPLETED};
554 for (auto jobState : jobStateArr) {
555 jobInfo.SetJobState(jobState);
556 PrintServiceAbility::GetInstance()->SendPrintJobEvent(jobInfo);
557 }
558 uint32_t jobState = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
559 jobInfo.SetJobState(jobState);
560 PrintServiceAbility::GetInstance()->SendPrintJobEvent(jobInfo);
561 }
562
TestStartPrintJobCB(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)563 void TestStartPrintJobCB(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
564 {
565 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
566 auto printJob = std::make_shared<PrintJob>();
567 printJob->SetJobId(jobId);
568 printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
569 PrintServiceAbility::GetInstance()->StartPrintJobCB(jobId, printJob);
570 }
571
TestCheckPrinterUriDifferent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)572 void TestCheckPrinterUriDifferent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
573 {
574 auto printerInfo = std::make_shared<PrinterInfo>();
575 printerInfo->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
576 printerInfo->SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
577 printerInfo->SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
578 printerInfo->SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
579 PrintServiceAbility::GetInstance()->CheckPrinterUriDifferent(printerInfo);
580 }
581
TestUpdatePrinterCapability(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)582 void TestUpdatePrinterCapability(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
583 {
584 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
585 PrinterInfo printerInfo;
586 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
587 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
588 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
589 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
590 PrintServiceAbility::GetInstance()->UpdatePrinterCapability(printerId, printerInfo);
591 }
592
TestReportCompletedPrint(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)593 void TestReportCompletedPrint(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
594 {
595 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
596 PrintServiceAbility::GetInstance()->ReportCompletedPrint(printerId);
597 }
598
TestNotifyAppJobQueueChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)599 void TestNotifyAppJobQueueChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
600 {
601 std::string applyResult = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
602 PrintServiceAbility::GetInstance()->NotifyAppJobQueueChanged(applyResult);
603 }
604
TestSendPrinterChangeEvent(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)605 void TestSendPrinterChangeEvent(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
606 {
607 int event = dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER);
608 PrinterInfo printerInfo;
609 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
610 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
611 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
612 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
613 PrintServiceAbility::GetInstance()->SendPrinterChangeEvent(event, printerInfo);
614 PrintServiceAbility::GetInstance()->DestroyExtension();
615 }
616
TestCheckJobQueueBlocked(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)617 void TestCheckJobQueueBlocked(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
618 {
619 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
620 PrintJob printJob;
621 printJob.SetJobId(jobId);
622 printJob.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
623 PrintServiceAbility::GetInstance()->CheckJobQueueBlocked(printJob);
624 }
625
TestGetListeningState(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)626 void TestGetListeningState(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
627 {
628 uint32_t subState = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
629 PrintServiceAbility::GetInstance()->GetListeningState(subState);
630 }
631
TestChangeDefaultPrinterForDelete(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)632 void TestChangeDefaultPrinterForDelete(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
633 {
634 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
635 auto userData = std::make_shared<PrintUserData>();
636 PrintServiceAbility::GetInstance()->ChangeDefaultPrinterForDelete(userData, printerId);
637 }
638
TestGetUserDataByUserId(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)639 void TestGetUserDataByUserId(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
640 {
641 int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
642 PrintServiceAbility::GetInstance()->GetUserDataByUserId(userId);
643 }
644
TestDetermineUserJobStatus(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)645 void TestDetermineUserJobStatus(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
646 {
647 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
648 auto printJob = std::make_shared<PrintJob>();
649 printJob->SetJobId(jobId);
650 printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
651 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
652 std::map<std::string, std::shared_ptr<PrintJob>> jobList;
653 jobList[jobId] = printJob;
654 PrintServiceAbility::GetInstance()->DetermineUserJobStatus(jobList);
655 }
656
TestNotifyCurrentUserChanged(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)657 void TestNotifyCurrentUserChanged(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
658 {
659 int32_t userId = dataProvider->ConsumeIntegralInRange<int32_t>(0, MAX_SET_NUMBER);
660 PrintServiceAbility::GetInstance()->NotifyCurrentUserChanged(userId);
661 }
662
TestHandleExtensionConnectPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)663 void TestHandleExtensionConnectPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
664 {
665 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
666 PrintServiceAbility::GetInstance()->HandleExtensionConnectPrinter(printerId);
667 }
668
TestSendQueuePrintJob(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)669 void TestSendQueuePrintJob(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
670 {
671 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
672 PrintServiceAbility::GetInstance()->SendQueuePrintJob(printerId);
673 }
674
TestAddPrinterToDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)675 void TestAddPrinterToDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
676 {
677 PrinterInfo printerInfo;
678 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
679 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
680 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
681 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
682 PrintServiceAbility::GetInstance()->AddPrinterToDiscovery(printerInfo);
683 }
684
TestUpdatePrinterInDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)685 void TestUpdatePrinterInDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
686 {
687 PrinterInfo printerInfo;
688 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
689 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
690 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
691 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
692 PrintServiceAbility::GetInstance()->UpdatePrinterInDiscovery(printerInfo);
693 }
694
TestRemovePrinterFromDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)695 void TestRemovePrinterFromDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
696 {
697 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
698 PrintServiceAbility::GetInstance()->RemovePrinterFromDiscovery(printerId);
699 }
700
TestUpdatePrinterInSystem(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)701 void TestUpdatePrinterInSystem(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
702 {
703 PrinterInfo printerInfo;
704 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
705 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
706 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
707 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
708 PrintServiceAbility::GetInstance()->UpdatePrinterInSystem(printerInfo);
709 }
710
TestDeletePrinterFromUserData(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)711 void TestDeletePrinterFromUserData(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
712 {
713 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
714 PrintServiceAbility::GetInstance()->DeletePrinterFromUserData(printerId);
715 }
716
TestNotifyAppDeletePrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)717 void TestNotifyAppDeletePrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
718 {
719 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
720 PrintServiceAbility::GetInstance()->NotifyAppDeletePrinter(printerId);
721 }
722
TestAddVendorPrinterToDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)723 void TestAddVendorPrinterToDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
724 {
725 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
726 PrinterInfo printerInfo;
727 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
728 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
729 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
730 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
731 PrintServiceAbility::GetInstance()->AddVendorPrinterToDiscovery(globalVendorName, printerInfo);
732 }
733
TestUpdateVendorPrinterToDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)734 void TestUpdateVendorPrinterToDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
735 {
736 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
737 PrinterInfo printerInfo;
738 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
739 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
740 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
741 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
742 PrintServiceAbility::GetInstance()->UpdateVendorPrinterToDiscovery(globalVendorName, printerInfo);
743 }
744
TestRemoveVendorPrinterFromDiscovery(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)745 void TestRemoveVendorPrinterFromDiscovery(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
746 {
747 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
748 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
749 PrintServiceAbility::GetInstance()->RemoveVendorPrinterFromDiscovery(globalVendorName, printerId);
750 }
751
TestAddVendorPrinterToCupsWithPpd(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)752 void TestAddVendorPrinterToCupsWithPpd(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
753 {
754 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
755 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
756 std::string ppdName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
757 std::string ppdData = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
758 PrintServiceAbility::GetInstance()->AddVendorPrinterToCupsWithPpd(globalVendorName, printerId, ppdName, ppdData);
759 }
760
TestRemoveVendorPrinterFromCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)761 void TestRemoveVendorPrinterFromCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
762 {
763 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
764 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
765 PrintServiceAbility::GetInstance()->RemoveVendorPrinterFromCups(globalVendorName, printerId);
766 }
767
TestOnVendorStatusUpdate(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)768 void TestOnVendorStatusUpdate(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
769 {
770 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
771 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
772 PrinterVendorStatus printerVendorStatus;
773 PrintServiceAbility::GetInstance()->OnVendorStatusUpdate(globalVendorName, printerId, printerVendorStatus);
774 }
775
TestQueryVendorPrinterInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)776 void TestQueryVendorPrinterInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
777 {
778 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
779 PrinterInfo printerInfo;
780 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
781 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
782 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
783 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
784 PrintServiceAbility::GetInstance()->QueryVendorPrinterInfo(printerId, printerInfo);
785 }
786
TestHandlePrinterStateChangeRegister(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)787 void TestHandlePrinterStateChangeRegister(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
788 {
789 std::string eventType = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
790 PrintServiceAbility::GetInstance()->HandlePrinterStateChangeRegister(eventType);
791 }
792
TestHandlePrinterChangeRegister(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)793 void TestHandlePrinterChangeRegister(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
794 {
795 std::string eventType = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
796 PrintServiceAbility::GetInstance()->HandlePrinterChangeRegister(eventType);
797 }
798
TestUpdateAddedPrinterInCups(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)799 void TestUpdateAddedPrinterInCups(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
800 {
801 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
802 std::string printerUri = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
803 PrintServiceAbility::GetInstance()->UpdateAddedPrinterInCups(printerId, printerUri);
804 }
805
TestRenamePrinterWhenAdded(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)806 void TestRenamePrinterWhenAdded(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
807 {
808 PrinterInfo printerInfo;
809 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
810 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
811 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
812 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
813 PrintServiceAbility::GetInstance()->RenamePrinterWhenAdded(printerInfo);
814 }
815
TestQueryDiscoveredPrinterInfoById(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)816 void TestQueryDiscoveredPrinterInfoById(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
817 {
818 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
819 PrintServiceAbility::GetInstance()->QueryDiscoveredPrinterInfoById(printerId);
820 }
821
TestCheckUserIdInEventType(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)822 void TestCheckUserIdInEventType(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
823 {
824 std::string type = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
825 PrintServiceAbility::GetInstance()->CheckUserIdInEventType(type);
826 }
827
TestCallSpooler(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)828 void TestCallSpooler(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
829 {
830 std::vector<std::string> fileList = { dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH) };
831 std::vector<uint32_t> fdList = { dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER) };
832 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
833 PrintServiceAbility::GetInstance()->CallSpooler(fileList, fdList, taskId);
834 }
835
TestReportPrinterIdle(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)836 void TestReportPrinterIdle(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
837 {
838 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
839 PrintServiceAbility::GetInstance()->ReportPrinterIdle(printerId);
840 }
841
TestQueryPPDInformation(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)842 void TestQueryPPDInformation(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
843 {
844 std::string makeModel = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
845 std::string ppd = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
846 PrintServiceAbility::GetInstance()->QueryPPDInformation(makeModel, ppd);
847 }
848
TestAddIpPrinterToSystemData(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)849 void TestAddIpPrinterToSystemData(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
850 {
851 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
852 PrinterInfo printerInfo;
853 printerInfo.SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
854 printerInfo.SetPrinterName(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
855 printerInfo.SetDescription(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
856 printerInfo.SetPrinterState(dataProvider->ConsumeIntegralInRange<uint32_t>(0, MAX_SET_NUMBER));
857 PrintServiceAbility::GetInstance()->AddIpPrinterToSystemData(globalVendorName, printerInfo);
858 }
859
TestAddIpPrinterToCupsWithPpd(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)860 void TestAddIpPrinterToCupsWithPpd(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
861 {
862 std::string globalVendorName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
863 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
864 std::string ppdName = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
865 std::string ppdData = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
866 PrintServiceAbility::GetInstance()->AddIpPrinterToCupsWithPpd(globalVendorName, printerId, ppdName, ppdData);
867 }
868
TestStartPrintJobInternal(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)869 void TestStartPrintJobInternal(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
870 {
871 std::string jobId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
872 auto printJob = std::make_shared<PrintJob>();
873 printJob->SetJobId(jobId);
874 printJob->SetPrinterId(dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH));
875 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
876 PrintServiceAbility::GetInstance()->StartPrintJobInternal(printJob);
877 }
878
TestUpdatePageSizeNameWithPrinterInfo(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)879 void TestUpdatePageSizeNameWithPrinterInfo(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
880 {
881 std::string pageSizeId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
882 PrintPageSize pageSize;
883 pageSize.SetId(pageSizeId);
884 PrinterInfo printerInfo;
885 PrintServiceAbility::GetInstance()->UpdatePageSizeNameWithPrinterInfo(printerInfo, pageSize);
886 }
887
TestUpdatePrintJobOptionWithPrinterPreferences(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)888 void TestUpdatePrintJobOptionWithPrinterPreferences(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
889 {
890 std::string key = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
891 std::string value = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
892 Json::Value jobOptions;
893 jobOptions[key] = value;
894 PrinterInfo printerInfo;
895 PrintServiceAbility::GetInstance()->UpdatePrintJobOptionWithPrinterPreferences(jobOptions, printerInfo);
896 }
897
TestConnectUsbPrinter(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)898 void TestConnectUsbPrinter(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
899 {
900 std::string printerId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
901 PrintServiceAbility::GetInstance()->ConnectUsbPrinter(printerId);
902 }
903
TestNoParmFuncs(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)904 void TestNoParmFuncs(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
905 {
906 std::string taskId = dataProvider->ConsumeRandomLengthString(MAX_STRING_LENGTH);
907 PrintServiceAbility::GetInstance()->StopPrint(taskId);
908 PrintServiceAbility::GetInstance()->DelayEnterLowPowerMode();
909 PrintServiceAbility::GetInstance()->ExitLowPowerMode();
910 PrintServiceAbility::GetInstance()->UnloadSystemAbility();
911 }
912
TestMoreFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)913 void TestMoreFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
914 {
915 TestChangeDefaultPrinterForDelete(data, size, dataProvider);
916 TestGetUserDataByUserId(data, size, dataProvider);
917 TestDetermineUserJobStatus(data, size, dataProvider);
918 TestNotifyCurrentUserChanged(data, size, dataProvider);
919 TestHandleExtensionConnectPrinter(data, size, dataProvider);
920 TestSendQueuePrintJob(data, size, dataProvider);
921 TestAddPrinterToDiscovery(data, size, dataProvider);
922 TestUpdatePrinterInDiscovery(data, size, dataProvider);
923 TestRemovePrinterFromDiscovery(data, size, dataProvider);
924 TestUpdatePrinterInSystem(data, size, dataProvider);
925 TestDeletePrinterFromUserData(data, size, dataProvider);
926 TestNotifyAppDeletePrinter(data, size, dataProvider);
927 TestAddVendorPrinterToDiscovery(data, size, dataProvider);
928 TestUpdateVendorPrinterToDiscovery(data, size, dataProvider);
929 TestRemoveVendorPrinterFromDiscovery(data, size, dataProvider);
930 TestAddVendorPrinterToCupsWithPpd(data, size, dataProvider);
931 TestRemoveVendorPrinterFromCups(data, size, dataProvider);
932 TestOnVendorStatusUpdate(data, size, dataProvider);
933 TestQueryVendorPrinterInfo(data, size, dataProvider);
934 TestHandlePrinterStateChangeRegister(data, size, dataProvider);
935 TestHandlePrinterChangeRegister(data, size, dataProvider);
936 TestUpdateAddedPrinterInCups(data, size, dataProvider);
937 TestRenamePrinterWhenAdded(data, size, dataProvider);
938 TestQueryDiscoveredPrinterInfoById(data, size, dataProvider);
939 TestCheckUserIdInEventType(data, size, dataProvider);
940 TestCallSpooler(data, size, dataProvider);
941 TestReportPrinterIdle(data, size, dataProvider);
942 TestQueryPPDInformation(data, size, dataProvider);
943 TestStartPrintJobInternal(data, size, dataProvider);
944 }
945
TestNotPublicFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)946 void TestNotPublicFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
947 {
948 TestDiscoverUsbPrinters(data, size, dataProvider);
949 TestStartNativePrintJob(data, size, dataProvider);
950 TestNotifyPrintServiceEvent(data, size, dataProvider);
951 TestUpdateQueuedJobList(data, size, dataProvider);
952 TestUpdatePrintJobOptionByPrinterId(data, size, dataProvider);
953 TestDelayStartDiscovery(data, size, dataProvider);
954 TestAdapterGetFileCallBack(data, size, dataProvider);
955 TestAddNativePrintJob(data, size, dataProvider);
956 TestIsQueuedJobListEmpty(data, size, dataProvider);
957 TestSetPrintJobCanceled(data, size, dataProvider);
958 TestCancelUserPrintJobs(data, size, dataProvider);
959 TestSendExtensionEvent(data, size, dataProvider);
960 TestNotifyAdapterJobChanged(data, size, dataProvider);
961 TestRegisterAdapterListener(data, size, dataProvider);
962 TestisEprint(data, size, dataProvider);
963 TestCheckIsDefaultPrinter(data, size, dataProvider);
964 TestCheckIsLastUsedPrinter(data, size, dataProvider);
965 TestSetLastUsedPrinter(data, size, dataProvider);
966 TestSendPrintJobEvent(data, size, dataProvider);
967 TestStartPrintJobCB(data, size, dataProvider);
968 TestCheckPrinterUriDifferent(data, size, dataProvider);
969 TestUpdatePrinterCapability(data, size, dataProvider);
970 TestReportCompletedPrint(data, size, dataProvider);
971 TestNotifyAppJobQueueChanged(data, size, dataProvider);
972 TestSendPrinterChangeEvent(data, size, dataProvider);
973 TestCheckJobQueueBlocked(data, size, dataProvider);
974 TestGetListeningState(data, size, dataProvider);
975 TestUpdatePageSizeNameWithPrinterInfo(data, size, dataProvider);
976 TestUpdatePrintJobOptionWithPrinterPreferences(data, size, dataProvider);
977 TestConnectUsbPrinter(data, size, dataProvider);
978 TestMoreFunction(data, size, dataProvider);
979 TestNoParmFuncs(data, size, dataProvider);
980 }
981
TestAllFunction(const uint8_t * data,size_t size,FuzzedDataProvider * dataProvider)982 void TestAllFunction(const uint8_t *data, size_t size, FuzzedDataProvider *dataProvider)
983 {
984 TestStartPrint(data, size, dataProvider);
985 TestStopPrint(data, size, dataProvider);
986 TestConnectPrinter(data, size, dataProvider);
987 TestDisconnectPrinter(data, size, dataProvider);
988 TestStartDiscoverPrinter(data, size, dataProvider);
989 TestQueryAllExtension(data, size, dataProvider);
990 TestStartPrintJob(data, size, dataProvider);
991 TestCancelPrintJob(data, size, dataProvider);
992 TestAddPrinters(data, size, dataProvider);
993 TestRemovePrinters(data, size, dataProvider);
994 TestUpdatePrinters(data, size, dataProvider);
995 TestUpdatePrinterState(data, size, dataProvider);
996 TestUpdatePrintJobStateOnlyForSystemApp(data, size, dataProvider);
997 TestUpdateExtensionInfo(data, size, dataProvider);
998 TestRequestPreview(data, size, dataProvider);
999 TestQueryPrinterCapability(data, size, dataProvider);
1000 TestOn(data, size, dataProvider);
1001 TestOff(data, size, dataProvider);
1002 TestCallback(data, size, dataProvider);
1003 TestLoadExtSuccess(data, size, dataProvider);
1004 TestQueryAllActivePrintJob(data, size, dataProvider);
1005 TestQueryPrintJobById(data, size, dataProvider);
1006 TestAddPrinterToCups(data, size, dataProvider);
1007 TestQueryPrinterCapabilityByUri(data, size, dataProvider);
1008 TestPrintByAdapter(data, size, dataProvider);
1009 TestStartGetPrintFile(data, size, dataProvider);
1010 TestNotifyPrintService(data, size, dataProvider);
1011 TestQueryPrinterInfoByPrinterId(data, size, dataProvider);
1012 TestQueryAddedPrinter(data, size, dataProvider);
1013 TestQueryPrinterProperties(data, size, dataProvider);
1014 TestUpdatePrintJobState(data, size, dataProvider);
1015 TestSetPrinterPreference(data, size, dataProvider);
1016 TestSetDefaultPrinter(data, size, dataProvider);
1017 TestDeletePrinterFromCups(data, size, dataProvider);
1018 TestNotPublicFunction(data, size, dataProvider);
1019 TestAddIpPrinterToSystemData(data, size, dataProvider);
1020 TestAddIpPrinterToCupsWithPpd(data, size, dataProvider);
1021 }
1022
1023 } // namespace Print
1024 } // namespace OHOS
1025
1026 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)1027 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
1028 {
1029 /* Run your code on data */
1030 if (data == nullptr) {
1031 return 0;
1032 }
1033
1034 if (size < OHOS::Print::U32_AT_SIZE) {
1035 }
1036
1037 FuzzedDataProvider dataProvider(data, size);
1038 OHOS::Print::TestAllFunction(data, size, &dataProvider);
1039 OHOS::Print::PrintServiceAbilityMockPermission::MockPermission();
1040 OHOS::Print::TestAllFunction(data, size, &dataProvider);
1041 return 0;
1042 }
1043