1 /*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include "print_service_mock_permission.h"
18 #include "mock_remote_object.h"
19 #define private public
20 #define protected public
21 #include "print_service_ability.h"
22 #include "print_bms_helper.h"
23 #undef protected
24 #undef private
25 #ifdef CUPS_ENABLE
26 #include "print_cups_client.h"
27 #endif // CUPS_ENABLE
28 #include "accesstoken_kit.h"
29 #include "array_wrapper.h"
30 #include "int_wrapper.h"
31 #include "ipc_skeleton.h"
32 #include "iservice_registry.h"
33 #include "print_constant.h"
34 #include "print_log.h"
35 #include "printer_info.h"
36 #include "print_utils.h"
37 #include "string_wrapper.h"
38 #include "system_ability_definition.h"
39 #include "want_params_wrapper.h"
40 #include "print_security_guard_manager.h"
41 #include "hisys_event_util.h"
42 #include "nlohmann/json.hpp"
43 #include "print_ipp_over_usb_manager.h"
44 #include "mock_print_callback_proxy.h"
45 #include "mock_print_extension_callback_proxy.h"
46
47
48 using namespace testing;
49 using namespace testing::ext;
50
51 namespace OHOS::Print {
52 using namespace std;
53 using namespace OHOS::HiviewDFX;
54 using namespace Security::AccessToken;
55 using json = nlohmann::json;
56 static constexpr const char *DEFAULT_EXTENSION_ID = "com.example.ext";
57 static constexpr const char *UNLOAD_EXTENSION_ID = "com.example.ext.unload";
58 static constexpr const char *NONEXIST_EXTENSION_ID = "com.example.ext.nonexist";
59 static constexpr const char *DEFAULT_EXT_PRINTER_ID = "https://10.10.10.10/FE8083DCD35F";
60 static constexpr const char *DEFAULT_EXT_PRINTER_ID2 = "https://10.10.10.10/0FDA6E208473";
61 static constexpr const char *DEFAULT_PRINT_FILE_A = "file://data/print/a.png";
62 static constexpr const char *DEFAULT_PRINT_FILE_B = "file://data/print/b.png";
63 static constexpr const char *DEFAULT_PRINT_FILE_C = "file://data/print/c.png";
64 static const std::string PRINT_GET_FILE_EVENT_TYPE = "getPrintFileCallback_adapter";
65 static const std::string PRINTER_EVENT_TYPE = "printerStateChange";
66 static const std::string PRINTJOB_EVENT_TYPE = "jobStateChange";
67 static const std::string EXTINFO_EVENT_TYPE = "extInfoChange";
68 static const std::string PRINT_ADAPTER_EVENT_TYPE = "printCallback_adapter";
69 static const std::string EVENT_CANCEL = "cancel";
70 const uint32_t MAX_JOBQUEUE_NUM = 512;
71
72 enum EXTENSION_ID_TYPE {
73 TYPE_DEFAULT,
74 TYPE_UNLOAD,
75 TYPE_NON_EXIST,
76 };
77 REGISTER_SYSTEM_ABILITY_BY_ID(PrintServiceAbility, PRINT_SERVICE_ID, true);
78 class PrintServiceAbilityTest : public testing::Test {
79 public:
80 static void SetUpTestCase(void);
81 static void TearDownTestCase(void);
82 void SetUp();
83 void TearDown();
84 std::string GetExtensionId(EXTENSION_ID_TYPE type);
85 std::string GetDefaultTaskId();
86 std::string GetDefaultJobId();
87 std::string GetDefaultPrinterId();
88 std::string GetInvalidPrinterId();
89 void InitExtPrinterList(std::vector<PrinterInfo> &printerList, size_t count);
90 void InitPrinterList(std::vector<PrinterInfo> &printerList, size_t count);
91 void InitExtPrinterIdList(std::vector<std::string> &idList, size_t count);
92 void InitFileList(std::vector<std::string> &fileList);
93 void InitExtensionList(std::vector<AppExecFwk::ExtensionAbilityInfo>& extList);
94 };
95
SetUpTestCase(void)96 void PrintServiceAbilityTest::SetUpTestCase(void) {}
97
TearDownTestCase(void)98 void PrintServiceAbilityTest::TearDownTestCase(void) {}
99
SetUp(void)100 void PrintServiceAbilityTest::SetUp(void)
101 {
102 static int32_t testNo = 0;
103 PRINT_HILOGE("PrintServiceAbilityTest_%{public}d", ++testNo);
104 }
105
TearDown(void)106 void PrintServiceAbilityTest::TearDown(void) {}
107
GetExtensionId(EXTENSION_ID_TYPE type)108 std::string PrintServiceAbilityTest::GetExtensionId(EXTENSION_ID_TYPE type)
109 {
110 switch (type) {
111 case TYPE_DEFAULT:
112 return DEFAULT_EXTENSION_ID;
113
114 case TYPE_UNLOAD:
115 return UNLOAD_EXTENSION_ID;
116
117 case TYPE_NON_EXIST:
118 return NONEXIST_EXTENSION_ID;
119
120 default:
121 break;
122 }
123 return DEFAULT_EXTENSION_ID;
124 }
125
GetDefaultTaskId()126 std::string PrintServiceAbilityTest::GetDefaultTaskId()
127 {
128 return std::to_string(0);
129 }
130
GetDefaultJobId()131 std::string PrintServiceAbilityTest::GetDefaultJobId()
132 {
133 return std::to_string(0);
134 }
135
GetDefaultPrinterId()136 std::string PrintServiceAbilityTest::GetDefaultPrinterId()
137 {
138 return PrintUtils::GetGlobalId(DEFAULT_EXTENSION_ID, DEFAULT_EXT_PRINTER_ID);
139 }
140
GetInvalidPrinterId()141 std::string PrintServiceAbilityTest::GetInvalidPrinterId()
142 {
143 return PrintUtils::GetGlobalId(DEFAULT_EXTENSION_ID, "wrong printer id");
144 }
145
InitExtPrinterList(std::vector<PrinterInfo> & printerList,size_t count)146 void PrintServiceAbilityTest::InitExtPrinterList(std::vector<PrinterInfo> &printerList, size_t count)
147 {
148 printerList.clear();
149 PrinterInfo info;
150 info.SetPrinterId(DEFAULT_EXT_PRINTER_ID);
151 printerList.emplace_back(info);
152 if (printerList.size() < count) {
153 info.SetPrinterId(DEFAULT_EXT_PRINTER_ID2);
154 printerList.emplace_back(info);
155 }
156 }
157
InitPrinterList(std::vector<PrinterInfo> & printerList,size_t count)158 void PrintServiceAbilityTest::InitPrinterList(std::vector<PrinterInfo> &printerList, size_t count)
159 {
160 printerList.clear();
161 PrinterInfo info;
162 info.SetPrinterId(PrintUtils::GetGlobalId(DEFAULT_EXTENSION_ID, DEFAULT_EXT_PRINTER_ID));
163 printerList.emplace_back(info);
164 if (printerList.size() < count) {
165 info.SetPrinterId(PrintUtils::GetGlobalId(DEFAULT_EXTENSION_ID, DEFAULT_EXT_PRINTER_ID2));
166 printerList.emplace_back(info);
167 }
168 }
169
InitExtPrinterIdList(std::vector<std::string> & idList,size_t count)170 void PrintServiceAbilityTest::InitExtPrinterIdList(std::vector<std::string> &idList, size_t count)
171 {
172 idList.clear();
173 idList.emplace_back(DEFAULT_EXT_PRINTER_ID);
174 if (idList.size() < count) {
175 idList.emplace_back(DEFAULT_EXT_PRINTER_ID2);
176 }
177 }
178
InitFileList(std::vector<std::string> & fileList)179 void PrintServiceAbilityTest::InitFileList(std::vector<std::string> &fileList)
180 {
181 fileList.emplace_back(DEFAULT_PRINT_FILE_A);
182 fileList.emplace_back(DEFAULT_PRINT_FILE_B);
183 fileList.emplace_back(DEFAULT_PRINT_FILE_C);
184 }
185
InitExtensionList(std::vector<AppExecFwk::ExtensionAbilityInfo> & extList)186 void PrintServiceAbilityTest::InitExtensionList(std::vector<AppExecFwk::ExtensionAbilityInfo>& extList)
187 {
188 std::vector<std::string> nameList = {DEFAULT_EXTENSION_ID, UNLOAD_EXTENSION_ID};
189 AppExecFwk::ExtensionAbilityInfo loadInfo;
190 for (size_t index = 0; index < nameList.size(); index++) {
191 loadInfo.bundleName = nameList[index];
192 loadInfo.moduleName = nameList[index];
193 loadInfo.name = nameList[index];
194 extList.emplace_back(loadInfo);
195 }
196 }
197 /**
198 * @tc.name: PrintServiceAbilityTest_0001
199 * @tc.desc: PrintServiceAbility ctor/dtor
200 * @tc.type: FUNC ~PrintServiceAbility()
201 * @tc.require:
202 */
203 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0001, TestSize.Level1)
204 {
205 PrintServiceAbility* print_service = new PrintServiceAbility(PRINT_SERVICE_ID, true);
206 if (print_service != nullptr) {
207 delete print_service;
208 print_service = nullptr;
209 }
210 PrintServiceAbility* new_print_service = new PrintServiceAbility(PRINT_SERVICE_ID, false);
211 if (new_print_service != nullptr) {
212 delete new_print_service;
213 new_print_service = nullptr;
214 }
215 EXPECT_EQ(PrintServiceAbility::GetInstance()->Init(), E_PRINT_SERVER_FAILURE);
216 }
217 /**
218 * @tc.name: PrintServiceAbilityTest_0002
219 * @tc.desc: PrintServiceAbility ctor/dtor
220 * @tc.type: FUNC ManualStart()
221 * @tc.require:
222 */
223 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0002, TestSize.Level1)
224 {
225 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
226 int state = static_cast<int>(service->state_);
227 service->ManualStart();
228 EXPECT_EQ(state, 0);
229 }
230 /**
231 * @tc.name: PrintServiceAbilityTest_0003
232 * @tc.desc: PrintServiceAbility ctor/dtor
233 * @tc.type: FUNC GetPrintJobOrderId()
234 * @tc.require:
235 */
236 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0003, TestSize.Level1)
237 {
238 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
239 service->GetPrintJobOrderId();
240 EXPECT_NE(service->currentJobOrderId_, 0);
241 }
242 /**
243 * @tc.name: PrintServiceAbilityTest_0004
244 * @tc.desc: PrintServiceAbility ctor/dtor
245 * @tc.type: FUNC
246 * @tc.require: return E_PRINT_NO_PERMISSION
247 */
248 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0004, TestSize.Level1)
249 {
250 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
251 EXPECT_EQ(service->StartService(), E_PRINT_NO_PERMISSION);
252 std::vector<std::string> fileList = {};
253 std::vector<uint32_t> fdList = {};
254 std::string taskId = "";
255 std::shared_ptr<AdapterParam> adapterParam = std::make_shared<AdapterParam>();
256 EXPECT_EQ(service->StartPrint(fileList, fdList, taskId), E_PRINT_NO_PERMISSION);
257 EXPECT_EQ(service->CallSpooler(fileList, fdList, taskId), E_PRINT_NO_PERMISSION);
258 EXPECT_EQ(service->StopPrint(taskId), E_PRINT_NO_PERMISSION);
259 std::string printerId = "1234";
260 EXPECT_EQ(service->ConnectPrinter(printerId), E_PRINT_NO_PERMISSION);
261 EXPECT_EQ(service->DisconnectPrinter(printerId), E_PRINT_NO_PERMISSION);
262 std::vector<std::string> extensionIds;
263 EXPECT_EQ(service->StartDiscoverPrinter(extensionIds), E_PRINT_NO_PERMISSION);
264 EXPECT_EQ(service->StopDiscoverPrinter(), E_PRINT_NO_PERMISSION);
265 std::vector<PrintExtensionInfo> extensionInfos;
266 EXPECT_EQ(service->QueryAllExtension(extensionInfos), E_PRINT_NO_PERMISSION);
267 std::vector<PrintJob> printJobs;
268 EXPECT_EQ(service->QueryAllPrintJob(printJobs), E_PRINT_NO_PERMISSION);
269 std::vector<std::string> printerList;
270 EXPECT_EQ(service->QueryAddedPrinter(printerList), E_PRINT_NO_PERMISSION);
271 PrinterInfo info;
272 EXPECT_EQ(service->QueryPrinterInfoByPrinterId(printerId, info), E_PRINT_NO_PERMISSION);
273 std::vector<std::string> keyList;
274 std::vector<std::string> valueList;
275 EXPECT_EQ(service->QueryPrinterProperties(printerId, keyList, valueList), E_PRINT_NO_PERMISSION);
276 std::string printJobId = "1";
277 PrintJob printJob;
278 EXPECT_EQ(service->QueryPrintJobById(printJobId, printJob), E_PRINT_NO_PERMISSION);
279 std::string printerUri = "111.222.333";
280 std::string printerName = "pixlab_0759";
281 std::string printerMake = "pixlab b5";
282 EXPECT_EQ(service->AddPrinterToCups(printerUri, printerName, printerMake), E_PRINT_NO_PERMISSION);
283 PrinterCapability printerCaps;
284 EXPECT_EQ(service->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps), E_PRINT_NO_PERMISSION);
285 EXPECT_EQ(service->StartNativePrintJob(printJob), E_PRINT_NO_PERMISSION);
286 EXPECT_EQ(service->StartPrintJob(printJob), E_PRINT_NO_PERMISSION);
287 EXPECT_EQ(service->CancelPrintJob(printJobId), E_PRINT_NO_PERMISSION);
288 std::vector<PrinterInfo> printerInfos;
289 EXPECT_EQ(service->AddPrinters(printerInfos), E_PRINT_NO_PERMISSION);
290 std::vector<std::string> printerIds;
291 EXPECT_EQ(service->RemovePrinters(printerIds), E_PRINT_NO_PERMISSION);
292 EXPECT_EQ(service->UpdatePrinters(printerInfos), E_PRINT_NO_PERMISSION);
293 uint32_t state = PrinterState::PRINTER_ADDED;
294 EXPECT_EQ(service->UpdatePrinterState(printerId, state), E_PRINT_NO_PERMISSION);
295 uint32_t subState = 0;
296 EXPECT_EQ(service->UpdatePrintJobStateOnlyForSystemApp(printJobId, state, subState), E_PRINT_NO_PERMISSION);
297 EXPECT_EQ(service->AdapterGetFileCallBack(printJobId, state, subState), E_PRINT_NONE);
298 state = PrintJobState::PRINT_JOB_CREATE_FILE_COMPLETED;
299 EXPECT_EQ(service->AdapterGetFileCallBack(printJobId, state, subState), E_PRINT_NO_PERMISSION);
300 std::string extInfo = "";
301 EXPECT_EQ(service->UpdateExtensionInfo(extInfo), E_PRINT_NO_PERMISSION);
302 std::string previewResult = "";
303 EXPECT_EQ(service->RequestPreview(printJob, previewResult), E_PRINT_NO_PERMISSION);
304 EXPECT_EQ(service->QueryPrinterCapability(printerId), E_PRINT_NO_PERMISSION);
305 std::string type = "";
306 sptr<IPrintCallback> listener = nullptr;
307 EXPECT_EQ(service->RegisterPrinterCallback(type, listener), E_PRINT_NO_PERMISSION);
308 EXPECT_EQ(service->UnregisterPrinterCallback(type), E_PRINT_NO_PERMISSION);
309 std::string extensionCID = "";
310 sptr<IPrintExtensionCallback> listenerCB = nullptr;
311 EXPECT_EQ(service->RegisterExtCallback(extensionCID, listenerCB), E_PRINT_NO_PERMISSION);
312 EXPECT_EQ(service->UnregisterAllExtCallback(extensionCID), E_PRINT_NO_PERMISSION);
313 EXPECT_EQ(service->LoadExtSuccess(extensionCID), E_PRINT_NO_PERMISSION);
314 std::string jobName = "a.jpeg";
315 PrintAttributes printAttributes;
316 EXPECT_EQ(service->PrintByAdapter(jobName, printAttributes, taskId), E_PRINT_NO_PERMISSION);
317 uint32_t fd = 46;
318 EXPECT_EQ(service->StartGetPrintFile(printJobId, printAttributes, fd), E_PRINT_NO_PERMISSION);
319 EXPECT_EQ(service->NotifyPrintService(printJobId, type), E_PRINT_NO_PERMISSION);
320 EXPECT_EQ(service->CallStatusBar(), E_PRINT_NO_PERMISSION);
321 uint32_t event = 0;
322 std::string jobId = GetDefaultJobId();
323 EXPECT_EQ(service->NotifyPrintServiceEvent(jobId, event), E_PRINT_NO_PERMISSION);
324 EXPECT_EQ(service->DestroyExtension(), E_PRINT_NO_PERMISSION);
325 std::string printerPreference = "";
326 EXPECT_EQ(service->GetPrinterPreference(printerId, printerPreference), E_PRINT_NO_PERMISSION);
327 EXPECT_EQ(service->SetPrinterPreference(printerId, printerPreference), E_PRINT_NO_PERMISSION);
328 EXPECT_EQ(service->On(taskId, type, listener), E_PRINT_NO_PERMISSION);
329 EXPECT_EQ(service->Off(taskId, type), E_PRINT_NO_PERMISSION);
330 EXPECT_EQ(service->SetDefaultPrinter(printerId, 0), E_PRINT_NO_PERMISSION);
331 EXPECT_EQ(service->DeletePrinterFromCups(printerName), E_PRINT_NO_PERMISSION);
332 std::vector<PrinterInfo> printers;
333 EXPECT_EQ(service->DiscoverUsbPrinters(printers), E_PRINT_NO_PERMISSION);
334
335 PrintServiceMockPermission::MockPermission();
336 EXPECT_EQ(service->StartService(), E_PRINT_NONE);
337 EXPECT_EQ(service->StartPrint(fileList, fdList, taskId), E_PRINT_INVALID_PARAMETER);
338
339 EXPECT_EQ(service->StopDiscoverPrinter(), E_PRINT_NONE);
340 EXPECT_EQ(service->StopPrint(taskId), E_PRINT_NONE);
341 }
342 /**
343 * @tc.name: PrintServiceAbilityTest_0006
344 * @tc.desc: PrintServiceAbility ctor/dtor
345 * @tc.type: FUNC CallSpooler
346 * @tc.require: has token
347 */
348 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0006, TestSize.Level1)
349 {
350 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
351 std::vector<std::string> fileList = {};
352 std::vector<uint32_t> fdList = {};
353 std::string jobId = "";
354 EXPECT_EQ(service->CallSpooler(fileList, fdList, jobId), E_PRINT_INVALID_PARAMETER);
355 jobId = "jobId";
356 EXPECT_EQ(service->CallSpooler(fileList, fdList, jobId), E_PRINT_NONE);
357 }
358
359 /**
360 * @tc.name: PrintServiceAbilityTest_0007
361 * @tc.desc: PrintServiceAbility ctor/dtor
362 * @tc.type: FUNC SetHelper
363 * @tc.require: has token
364 */
365 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0007, TestSize.Level1)
366 {
367 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
368 std::shared_ptr<PrintServiceHelper> helper = nullptr;
369 service->SetHelper(helper);
370 EXPECT_EQ(service->helper_, helper);
371 helper = make_shared<PrintServiceHelper>();
372 if (helper != nullptr) {
373 service->SetHelper(helper);
374 EXPECT_EQ(service->helper_, helper);
375 }
376 }
377
378 /**
379 * @tc.name: PrintServiceAbilityTest_0008
380 * @tc.desc: PrintServiceAbility ctor/dtor
381 * @tc.type: FUNC ConnectPrinter
382 * @tc.require:
383 */
384 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0008, TestSize.Level1)
385 {
386 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
387 std::string printerId ="1234";
388 EXPECT_EQ(service->ConnectPrinter(printerId), E_PRINT_INVALID_PRINTER);
389 std::shared_ptr<PrinterInfo> info = std::make_shared<PrinterInfo>();
390 service->printSystemData_.discoveredPrinterInfoList_[printerId] = info;
391 service->ConnectPrinter(printerId);
392 std::string extensionId = PrintUtils::GetExtensionId(printerId);
393 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_CONNECT_PRINTER);
394 sptr<IPrintExtensionCallback> extCb = nullptr;
395 service->extCallbackMap_[cid] = extCb;
396 EXPECT_EQ(service->ConnectPrinter(printerId), E_PRINT_NONE);
397 extCb = new MockPrintExtensionCallbackProxy();
398 EXPECT_NE(extCb, nullptr);
399 if (extCb != nullptr) {
400 service->extCallbackMap_.clear();
401 service->extCallbackMap_[cid] = extCb;
402 }
403 service->ConnectPrinter(printerId);
404 }
405
406 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0009, TestSize.Level1)
407 {
408 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
409 std::string printerId ="1234";
410 EXPECT_EQ(service->DisconnectPrinter(printerId), E_PRINT_INVALID_PRINTER);
411 std::shared_ptr<PrinterInfo> info = std::make_shared<PrinterInfo>();
412 service->printSystemData_.discoveredPrinterInfoList_[printerId] = info;
413 service->DisconnectPrinter(printerId);
414 std::string extensionId = PrintUtils::GetExtensionId(printerId);
415 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_CONNECT_PRINTER);
416 sptr<IPrintExtensionCallback> extCb = nullptr;
417 service->extCallbackMap_[cid] = extCb;
418 EXPECT_EQ(service->DisconnectPrinter(printerId), E_PRINT_SERVER_FAILURE);
419 extCb = new MockPrintExtensionCallbackProxy();
420 EXPECT_NE(extCb, nullptr);
421 if (extCb != nullptr) {
422 service->extCallbackMap_.clear();
423 service->extCallbackMap_[cid] = extCb;
424 }
425 service->DisconnectPrinter(printerId);
426 }
427
428 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0010, TestSize.Level1)
429 {
430 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
431 std::vector<std::string> extensionIds;
432 EXPECT_EQ(service->StartDiscoverPrinter(extensionIds), E_PRINT_INVALID_EXTENSION);
433 }
434
435 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0011, TestSize.Level1)
436 {
437 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
438 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
439 service->helper_ = helper;
440 std::string extensionCid = "";
441 sptr<IPrintExtensionCallback> listener = nullptr;
442 EXPECT_EQ(service->RegisterExtCallback(extensionCid, listener), E_PRINT_INVALID_PARAMETER);
443 extensionCid = PrintUtils::EncodeExtensionCid(GetExtensionId(TYPE_NON_EXIST), PRINT_EXTCB_START_DISCOVERY);
444 EXPECT_EQ(service->RegisterExtCallback(extensionCid, listener), E_PRINT_INVALID_EXTENSION);
445 extensionCid = PrintUtils::EncodeExtensionCid(GetExtensionId(TYPE_UNLOAD), PRINT_EXTCB_START_DISCOVERY);
446 EXPECT_EQ(service->RegisterExtCallback(extensionCid, listener), E_PRINT_INVALID_EXTENSION);
447 extensionCid = PrintUtils::EncodeExtensionCid(GetExtensionId(TYPE_DEFAULT), PRINT_EXTCB_MAX);
448 EXPECT_EQ(service->RegisterExtCallback(extensionCid, listener), E_PRINT_INVALID_EXTENSION);
449 EXPECT_EQ(service->LoadExtSuccess(GetExtensionId(TYPE_NON_EXIST)), E_PRINT_INVALID_EXTENSION);
450 EXPECT_EQ(service->LoadExtSuccess(GetExtensionId(TYPE_UNLOAD)), E_PRINT_INVALID_EXTENSION);
451 }
452
453 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0012, TestSize.Level1)
454 {
455 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
456 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
457 service->helper_ = helper;
458 std::string taskId = "";
459 std::string type = "";
460 sptr<IPrintCallback> listener = nullptr;
461 EXPECT_EQ(service->On(taskId, type, listener), E_PRINT_INVALID_PARAMETER);
462 EXPECT_EQ(service->Off(taskId, type), E_PRINT_INVALID_PARAMETER);
463 taskId = "1";
464 type = "printCallback_adapter";
465 service->On(taskId, type, listener);
466 EXPECT_EQ(service->On(taskId, type, listener), E_PRINT_INVALID_PARAMETER);
467 EXPECT_EQ(service->Off(taskId, type), E_PRINT_INVALID_PARAMETER);
468 listener = new MockPrintCallbackProxy();
469 if (listener != nullptr) {
470 service->On(taskId, type, listener);
471 }
472 service->registeredListeners_[type] = listener;
473 taskId = "";
474 EXPECT_EQ(service->On(taskId, type, listener), E_PRINT_NONE);
475 EXPECT_EQ(service->Off(taskId, type), E_PRINT_NONE);
476 }
477
478 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0013, TestSize.Level1)
479 {
480 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
481 std::vector<PrinterInfo> printerInfos;
482 InitExtPrinterList(printerInfos, 1);
483 EXPECT_EQ(service->AddPrinters(printerInfos), E_PRINT_NONE);
484 EXPECT_EQ(service->UpdatePrinters(printerInfos), E_PRINT_NONE);
485 std::vector<std::string> printerIds;
486 InitExtPrinterIdList(printerIds, 1);
487 std::shared_ptr<PrinterInfo> info = std::make_shared<PrinterInfo>();
488 info->SetPrinterId(printerIds[0]);
489 std::string printerId = printerIds[0];
490 service->printSystemData_.discoveredPrinterInfoList_[printerId] = info;
491 EXPECT_EQ(service->RemovePrinters(printerIds), E_PRINT_NONE);
492 std::vector<std::string> newPrinterIds;
493 newPrinterIds.push_back("1234");
494 auto cupsPrinter = std::make_shared<CupsPrinterInfo>();
495 service->printSystemData_.addedPrinterMap_.Insert(printerId, cupsPrinter);
496 service->RemovePrinters(newPrinterIds);
497 printerInfos.clear();
498 EXPECT_EQ(service->UpdatePrinters(printerInfos), E_PRINT_NONE);
499 }
500
501 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0014, TestSize.Level1)
502 {
503 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
504 PrintJob testJob;
505 std::string jobId = GetDefaultJobId();
506 testJob.SetJobId(jobId);
507 testJob.SetPrinterId(GetDefaultPrinterId());
508 EXPECT_EQ(service->StartPrintJob(testJob), E_PRINT_INVALID_PRINTJOB);
509 std::shared_ptr<PrintJob> job = std::make_shared<PrintJob>();
510 service->printJobList_["1"] = job;
511 EXPECT_EQ(service->StartPrintJob(testJob), E_PRINT_INVALID_PRINTJOB);
512 service->printJobList_["0"] = job;
513 std::string extensionId = PrintUtils::GetExtensionId(GetDefaultPrinterId());
514 sptr<IPrintExtensionCallback> listener = nullptr;
515 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_START_PRINT);
516 service->extCallbackMap_[cid] = listener;
517 service->StartPrintJob(testJob);
518 }
519
520 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0018, TestSize.Level1)
521 {
522 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
523 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
524 service->helper_ = helper;
525 std::string jobId ="1";
526 uint32_t state = PRINT_JOB_PREPARED;
527 uint32_t subState = PRINT_JOB_COMPLETED_SUCCESS;
528 service->notifyAdapterJobChanged(jobId, state, subState);
529 auto attrIt = service->printAttributesList_.find(jobId);
530 EXPECT_EQ(attrIt, service->printAttributesList_.end());
531 PrintAttributes attr;
532 service->printAttributesList_[jobId] = attr;
533 service->notifyAdapterJobChanged(jobId, state, subState);
534 attrIt = service->printAttributesList_.find(jobId);
535 EXPECT_NE(attrIt, service->printAttributesList_.end());
536 sptr<IPrintCallback> listener = nullptr;
537 service->adapterListenersByJobId_[jobId] = listener;
538 service->notifyAdapterJobChanged(jobId, state, subState);
539 attrIt = service->printAttributesList_.find(jobId);
540 EXPECT_NE(attrIt, service->printAttributesList_.end());
541 }
542
543 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0019, TestSize.Level1)
544 {
545 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
546 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
547 service->helper_ = helper;
548 std::string jobId ="1";
549 uint32_t state = PRINT_JOB_PREPARED;
550 uint32_t subState = PRINT_JOB_COMPLETED_SUCCESS;
551
552 state = PRINT_JOB_BLOCKED;
553 service->notifyAdapterJobChanged(jobId, state, subState);
554 auto attrIt = service->printAttributesList_.find(jobId);
555 EXPECT_EQ(attrIt, service->printAttributesList_.end());
556 }
557
558 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0020, TestSize.Level1)
559 {
560 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
561 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
562 service->helper_ = helper;
563 std::string jobName = "a.jpeg";
564 PrintAttributes printAttributes;
565 std::string taskId ="1";
566 EXPECT_EQ(service->PrintByAdapter(jobName, printAttributes, taskId), E_PRINT_NONE);
567 }
568
569 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0021, TestSize.Level1)
570 {
571 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
572 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
573 service->helper_ = helper;
574 std::string jobId = "1";
575 PrintAttributes printAttributes;
576 uint32_t fd = 46;
577 sptr<IPrintCallback> listener = nullptr;
578 service->adapterListenersByJobId_[jobId] = listener;
579 EXPECT_EQ(service->StartGetPrintFile(jobId, printAttributes, fd), E_PRINT_NONE);
580 service->adapterListenersByJobId_.clear();
581
582 EXPECT_EQ(service->StartGetPrintFile(jobId, printAttributes, fd), E_PRINT_NONE);
583 service->printAttributesList_[jobId] = printAttributes;
584 EXPECT_EQ(service->StartGetPrintFile(jobId, printAttributes, fd), E_PRINT_NONE);
585 std::string newJobId = "2";
586 EXPECT_EQ(service->StartGetPrintFile(newJobId, printAttributes, fd), E_PRINT_NONE);
587 }
588
589 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0022, TestSize.Level1)
590 {
591 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
592 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
593 service->helper_ = helper;
594 std::string printerId = "1234";
595 std::shared_ptr<PrinterInfo> info =std::make_shared<PrinterInfo>();
596 service->printSystemData_.discoveredPrinterInfoList_[printerId] = info;
597 EXPECT_EQ(service->printSystemData_.QueryDiscoveredPrinterInfoById(printerId), info);
598 }
599
600 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0024, TestSize.Level1)
601 {
602 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
603 PrintJob jobInfo;
604 service->CheckJobQueueBlocked(jobInfo);
605 EXPECT_EQ(service->isJobQueueBlocked_, false);
606 }
607
608 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0025, TestSize.Level1)
609 {
610 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
611 std::string extensionId = "com.ohos.spooler:0";
612 EXPECT_EQ(service->DelayStartDiscovery(extensionId), false);
613 service->extensionStateList_[extensionId] = PRINT_EXTENSION_UNLOAD;
614 EXPECT_EQ(service->DelayStartDiscovery(extensionId), false);
615 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_STOP_DISCOVERY);
616 sptr<IPrintExtensionCallback> listener = nullptr;
617 service->extCallbackMap_[cid] = listener;
618 EXPECT_EQ(service->DelayStartDiscovery(extensionId), false);
619 cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_START_DISCOVERY);
620 service->extCallbackMap_.clear();
621 service->extCallbackMap_[cid] = listener;
622 EXPECT_EQ(service->DelayStartDiscovery(extensionId), false);
623 }
624
625 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0026, TestSize.Level1)
626 {
627 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
628 service->state_ = ServiceRunningState::STATE_NOT_START;
629 service->OnStop();
630 EXPECT_EQ(service->state_, ServiceRunningState::STATE_NOT_START);
631 service->state_ = ServiceRunningState::STATE_RUNNING;
632 service->OnStop();
633 EXPECT_EQ(service->state_, ServiceRunningState::STATE_NOT_START);
634 }
635
636 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0028, TestSize.Level1)
637 {
638 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
639 std::string extensionId = "com.ohos.spooler:0";
640 service->extensionStateList_[extensionId] = PRINT_EXTENSION_UNLOAD;
641 EXPECT_EQ(service->StopDiscoverPrinter(), E_PRINT_NONE);
642 service->extensionStateList_[extensionId] = PRINT_EXTENSION_LOADED;
643 EXPECT_EQ(service->StopDiscoverPrinter(), E_PRINT_NONE);
644 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_STOP_DISCOVERY);
645 sptr<IPrintExtensionCallback> listener = nullptr;
646 service->extCallbackMap_[cid] = listener;
647 EXPECT_EQ(service->StopDiscoverPrinter(), E_PRINT_NONE);
648 }
649
650 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0029, TestSize.Level1)
651 {
652 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
653 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
654 service->helper_ = helper;
655 std::vector<PrintJob> printJobs;
656 int32_t userId = 100;
657 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
658 service->printUserMap_.insert(std::make_pair(userId, userData));
659 service->QueryAllPrintJob(printJobs);
660 }
661
662 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0030, TestSize.Level1)
663 {
664 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
665 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
666 service->helper_ = helper;
667 std::vector<PrintJob> printJobs;
668 service->QueryAllPrintJob(printJobs);
669 int32_t userId = 100;
670 service->printUserMap_.insert(std::make_pair(userId, nullptr));
671 service->QueryAllPrintJob(printJobs);
672 }
673
674 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0031, TestSize.Level1)
675 {
676 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
677 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
678 service->helper_ = helper;
679 std::vector<std::string> printerList;
680 EXPECT_EQ(service->QueryAddedPrinter(printerList), E_PRINT_NONE);
681 }
682
683 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0032, TestSize.Level1)
684 {
685 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
686 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
687 service->helper_ = helper;
688 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
689 std::vector<std::string> keyList;
690 std::vector<std::string> valueList;
691 EXPECT_EQ(service->QueryPrinterProperties(printerId, keyList, valueList), E_PRINT_INVALID_PRINTER);
692 auto printerInfo = std::make_shared<PrinterInfo>();
693 service->printSystemData_.addedPrinterInfoList_[printerId] = printerInfo;
694 keyList.push_back("printerId");
695 keyList.push_back("printerName");
696 EXPECT_EQ(service->QueryPrinterProperties(printerId, keyList, valueList), E_PRINT_INVALID_PRINTER);
697 }
698
699 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0033, TestSize.Level1)
700 {
701 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
702 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
703 service->helper_ = helper;
704 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
705 PrinterInfo info;
706 EXPECT_EQ(service->QueryPrinterInfoByPrinterId(printerId, info), E_PRINT_INVALID_PRINTER);
707 auto printerInfo = std::make_shared<CupsPrinterInfo>();
708 printerInfo->name = "testName";
709 printerInfo->uri = "testUri";
710 printerInfo->maker = "testMaker";
711 service->printSystemData_.addedPrinterMap_.Insert(printerId, printerInfo);
712 EXPECT_EQ(service->QueryPrinterInfoByPrinterId(printerId, info), E_PRINT_NONE);
713 }
714
715 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0034, TestSize.Level1)
716 {
717 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
718 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
719 service->helper_ = helper;
720 std::string printJobId = "1";
721 PrintJob printJob;
722 EXPECT_EQ(service->QueryPrintJobById(printJobId, printJob), E_PRINT_INVALID_USERID);
723 int32_t userId = 100;
724 service->printUserMap_.insert(std::make_pair(userId, nullptr));
725 EXPECT_EQ(service->QueryPrintJobById(printJobId, printJob), E_PRINT_INVALID_USERID);
726 }
727
728 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0035, TestSize.Level1)
729 {
730 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
731 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
732 service->helper_ = helper;
733 std::string printerUri = "testPrinterUri";
734 std::string printerName = "testPrinterName";
735 std::string printerMake = "testPrinterMake";
736 EXPECT_EQ(service->AddPrinterToCups(printerUri, printerName, printerMake), E_PRINT_SERVER_FAILURE);
737 }
738
739 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0036, TestSize.Level1)
740 {
741 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
742 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
743 service->helper_ = helper;
744 PrintJob printJob1;
745 printJob1.SetOption("test");
746 EXPECT_EQ(service->UpdatePrintJobOptionByPrinterId(printJob1), false);
747
748 PrintJob printJob2;
749 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
750 printJob2.SetPrinterId(printerId);
751 auto printerInfo = std::make_shared<CupsPrinterInfo>();
752 printerInfo->name = "testName";
753 printerInfo->uri = "testUri";
754 printerInfo->maker = "testMaker";
755 service->printSystemData_.addedPrinterMap_.Insert(printerId, printerInfo);
756 EXPECT_EQ(service->UpdatePrintJobOptionByPrinterId(printJob2), false);
757
758 nlohmann::json infoJson;
759 infoJson["printerName"] = "testPrinterName";
760 printJob2.SetOption(infoJson.dump());
761 EXPECT_EQ(service->UpdatePrintJobOptionByPrinterId(printJob2), true);
762 service->StartNativePrintJob(printJob2);
763 std::string extensionId = PrintUtils::GetExtensionId(printerId);
764 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_START_PRINT);
765 sptr<IPrintExtensionCallback> extCb = nullptr;
766 service->extCallbackMap_[cid] = extCb;
767 service->StartNativePrintJob(printJob2);
768 }
769
770 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0037, TestSize.Level1)
771 {
772 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
773 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
774 service->helper_ = helper;
775 PrintJob printJob;
776 std::string jobId = GetDefaultJobId();
777 auto nativePrintJob = std::make_shared<PrintJob>();
778 nativePrintJob->UpdateParams(printJob);
779 nativePrintJob->Dump();
780 service->AddToPrintJobList(jobId, nativePrintJob);
781 EXPECT_NE(service->AddNativePrintJob(jobId, printJob), nativePrintJob);
782 }
783
784 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0038, TestSize.Level1)
785 {
786 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
787 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
788 service->helper_ = helper;
789 PrintJob printJob;
790 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
791 printJob.SetPrinterId(printerId);
792 auto printerInfo = std::make_shared<CupsPrinterInfo>();
793 printerInfo->name = "testName";
794 printerInfo->uri = "testUri";
795 printerInfo->maker = "testMaker";
796 service->printSystemData_.addedPrinterMap_.Insert(printerId, printerInfo);
797 printJob.SetOption("test");
798 EXPECT_EQ(service->StartNativePrintJob(printJob), E_PRINT_INVALID_PRINTER);
799 }
800
801 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0040, TestSize.Level1)
802 {
803 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
804 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
805 service->helper_ = helper;
806 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
807 std::string jobId = GetDefaultJobId();
808 service->UpdateQueuedJobList(jobId, printJob);
809 service->UpdateQueuedJobList("0", printJob);
810 for (int i = 0; i < MAX_JOBQUEUE_NUM + 1; i++) {
811 service->queuedJobList_.insert(std::make_pair(std::to_string(i), printJob));
812 }
813 service->UpdateQueuedJobList("515", printJob);
814 int32_t userId = 100;
815 service->printUserMap_.insert(std::make_pair(userId, nullptr));
816 service->UpdateQueuedJobList("515", printJob);
817 service->printAppCount_ = 3;
818 std::string type ="0";
819 EXPECT_EQ(service->NotifyPrintService(jobId, type), E_PRINT_NONE);
820 type = "spooler_closed_for_started";
821 EXPECT_EQ(service->NotifyPrintService(jobId, type), E_PRINT_NONE);
822 type = "spooler_closed_for_cancelled";
823 EXPECT_EQ(service->NotifyPrintService(jobId, type), E_PRINT_NONE);
824 type = "";
825 EXPECT_EQ(service->NotifyPrintService(jobId, type), E_PRINT_INVALID_PARAMETER);
826 }
827
828 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0041, TestSize.Level1)
829 {
830 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
831 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
832 service->helper_ = helper;
833 std::string jobId = GetDefaultJobId();
834 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_INVALID_USERID);
835 int32_t userId = 100;
836 service->printUserMap_.insert(std::make_pair(userId, nullptr));
837 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_INVALID_USERID);
838 }
839
840 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0042, TestSize.Level1)
841 {
842 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
843 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
844 service->helper_ = helper;
845 PrintJob printJob;
846 printJob.SetJobId(GetDefaultJobId());
847 service->SetPrintJobCanceled(printJob);
848 auto testPrintJob = std::make_shared<PrintJob>(printJob);
849 std::string testJobId = testPrintJob->GetJobId();
850 auto attrIt = service->printAttributesList_.find(testJobId);
851 EXPECT_EQ(attrIt, service->printAttributesList_.end());
852 std::string jobId = "123";
853 printJob.SetJobId(jobId);
854 int32_t userId = 100;
855 service->userJobMap_[jobId] = userId;
856 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
857 service->printUserMap_[userId] = userData;
858 service->SetPrintJobCanceled(printJob);
859 testPrintJob = std::make_shared<PrintJob>(printJob);
860 testJobId = testPrintJob->GetJobId();
861 attrIt = service->printAttributesList_.find(testJobId);
862 EXPECT_EQ(attrIt, service->printAttributesList_.end());
863 }
864
865 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0043, TestSize.Level1)
866 {
867 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
868 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
869 service->helper_ = helper;
870 int32_t userId = 100;
871 service->CancelUserPrintJobs(userId);
872 auto userIt = service->printUserMap_.find(userId);
873 EXPECT_EQ(userIt, service->printUserMap_.end());
874
875 service->printUserMap_.insert(std::make_pair(userId, nullptr));
876 service->CancelUserPrintJobs(userId);
877 userIt = service->printUserMap_.find(userId);
878 EXPECT_NE(userIt, service->printUserMap_.end());
879
880 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
881 service->printUserMap_[userId] = userData;
882 service->CancelUserPrintJobs(userId);
883 userIt = service->printUserMap_.find(userId);
884 EXPECT_EQ(userIt, service->printUserMap_.end());
885 }
886
887 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0044, TestSize.Level1)
888 {
889 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
890 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
891 service->helper_ = helper;
892 PrintJob printJob;
893 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
894 EXPECT_EQ(service->SendQueuePrintJob(printerId), false);
895
896 std::string jobId = GetDefaultJobId();
897 service->printerJobMap_[printerId].insert(std::make_pair(jobId, true));
898 EXPECT_EQ(service->SendQueuePrintJob(printerId), false);
899 int32_t userId = 100;
900 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
901 service->printUserMap_[userId] = userData;
902 EXPECT_EQ(service->SendQueuePrintJob(printerId), false);
903 }
904
905 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0045, TestSize.Level1)
906 {
907 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
908 std::string printerUri = "111.222.333";
909 std::string printerId = "pixlab_0759";
910 PrinterCapability printerCaps;
911 EXPECT_EQ(service->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps), E_PRINT_NONE);
912 }
913
914 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0046, TestSize.Level1)
915 {
916 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
917 std::string jobId = "1";
918 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
919 service->StartPrintJobCB(jobId, printJob);
920 EXPECT_EQ(printJob->jobState_, PRINT_JOB_QUEUED);
921 }
922
923 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0048, TestSize.Level1)
924 {
925 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
926 uint32_t state = PRINTER_UNKNOWN + 1;
927 std::string printerId ="1234";
928 EXPECT_EQ(service->UpdatePrinterState(printerId, state), E_PRINT_INVALID_PARAMETER);
929 state = PrinterState::PRINTER_ADDED;
930 EXPECT_EQ(service->UpdatePrinterState(printerId, state), E_PRINT_INVALID_PRINTER);
931 std::shared_ptr<PrinterInfo> info = std::make_shared<PrinterInfo>();
932 service->printSystemData_.discoveredPrinterInfoList_[printerId] = info;
933 EXPECT_EQ(service->UpdatePrinterState(printerId, state), E_PRINT_INVALID_PRINTER);
934 }
935
936 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0049, TestSize.Level1)
937 {
938 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
939 std::string jobId = "1";
940 uint32_t state = PRINTER_UNKNOWN + 1;
941 uint32_t subState = 0;
942 EXPECT_EQ(service->checkJobState(state, subState), true);
943 service->UpdatePrintJobState(jobId, state, subState);
944 state = PRINT_JOB_BLOCKED;
945 subState = PRINT_JOB_BLOCKED_OFFLINE - 1;
946 EXPECT_EQ(service->checkJobState(state, subState), false);
947 EXPECT_EQ(service->UpdatePrintJobState(jobId, state, subState), E_PRINT_INVALID_PARAMETER);
948 subState = PRINT_JOB_BLOCKED_UNKNOWN + 1;
949 EXPECT_EQ(service->checkJobState(state, subState), true);
950 EXPECT_EQ(service->UpdatePrintJobState(jobId, state, subState), E_PRINT_INVALID_USERID);
951 state = PRINT_JOB_COMPLETED;
952 subState = PRINT_JOB_COMPLETED_FILE_CORRUPT + 1;
953 EXPECT_EQ(service->checkJobState(state, subState), false);
954 EXPECT_EQ(service->UpdatePrintJobState(jobId, state, subState), E_PRINT_INVALID_PARAMETER);
955 }
956
957 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0050, TestSize.Level1)
958 {
959 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
960 std::string jobId = "1";
961 uint32_t state = PRINT_JOB_CREATE_FILE_COMPLETED;
962 uint32_t subState = 0;
963 EXPECT_EQ(service->UpdatePrintJobState(jobId, state, subState), false);
964 }
965
966 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0051, TestSize.Level1)
967 {
968 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
969 std::string jobId = "1";
970 uint32_t state = PRINTER_UNKNOWN;
971 uint32_t subState = 0;
972 EXPECT_EQ(service->AdapterGetFileCallBack(jobId, state, subState), E_PRINT_NONE);
973 std::string type = PRINT_GET_FILE_EVENT_TYPE;
974 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
975 service->registeredListeners_[type] = listener;
976 service->AdapterGetFileCallBack(jobId, state, subState);
977 subState = PRINT_JOB_CREATE_FILE_COMPLETED_SUCCESS;
978 service->AdapterGetFileCallBack(jobId, state, subState);
979 subState = PRINT_JOB_CREATE_FILE_COMPLETED_FAILED;
980 service->AdapterGetFileCallBack(jobId, state, subState);
981 }
982
983 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0052, TestSize.Level1)
984 {
985 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
986 std::string jobId = "1";
987 int32_t userId = 100;
988 service->userJobMap_[jobId] = userId;
989 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
990 service->printUserMap_[userId] = userData;
991 uint32_t state = PRINTER_UNKNOWN;
992 uint32_t subState = 0;
993 EXPECT_EQ(service->CheckAndSendQueuePrintJob(jobId, state, subState), E_PRINT_INVALID_PRINTJOB);
994 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
995 userData->printJobList_[jobId] = printJob;
996 state = PRINT_JOB_BLOCKED;
997 std::string printerId = "1234";
998 printJob->SetPrinterId(printerId);
999 service->printerJobMap_[printerId].insert(std::make_pair(jobId, true));
1000 auto printerInfo = std::make_shared<PrinterInfo>();
1001 service->printSystemData_.addedPrinterInfoList_[printerId] = printerInfo;
1002 service->printSystemData_.discoveredPrinterInfoList_[printerId] = printerInfo;
1003 EXPECT_EQ(service->CheckAndSendQueuePrintJob(jobId, state, subState), E_PRINT_NONE);
1004 userData->queuedJobList_[jobId] = printJob;
1005 state = PRINT_JOB_COMPLETED;
1006 EXPECT_EQ(service->CheckAndSendQueuePrintJob(jobId, state, subState), E_PRINT_NONE);
1007 }
1008
1009 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0053, TestSize.Level1)
1010 {
1011 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1012 std::string jobId = "1";
1013 EXPECT_EQ(service->IsQueuedJobListEmpty(jobId), false);
1014 int32_t userId = 100;
1015 service->userJobMap_[jobId] = userId;
1016 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1017 auto printJob = std::make_shared<PrintJob>();
1018 userData->queuedJobList_[jobId] = printJob;
1019 service->printUserMap_[userId] = userData;
1020 EXPECT_EQ(service->IsQueuedJobListEmpty(jobId), false);
1021 userData->queuedJobList_.clear();
1022 service->currentUserId_ = 0;
1023 EXPECT_EQ(service->IsQueuedJobListEmpty(jobId), false);
1024 service->currentUserId_ = 100;
1025 EXPECT_EQ(service->IsQueuedJobListEmpty(jobId), true);
1026 }
1027
1028 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0055, TestSize.Level1)
1029 {
1030 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1031 uint32_t event = -1;
1032 std::string jobId = GetDefaultJobId();
1033 EXPECT_EQ(service->NotifyPrintServiceEvent(jobId, event), E_PRINT_INVALID_PARAMETER);
1034 event = 3;
1035 EXPECT_EQ(service->NotifyPrintServiceEvent(jobId, event), E_PRINT_INVALID_PARAMETER);
1036 event = 0;
1037 service->NotifyPrintServiceEvent(jobId, event);
1038 auto printJob = std::make_shared<PrintJob>();
1039 service->printJobList_[jobId] = printJob;
1040 service->NotifyPrintServiceEvent(jobId, event);
1041 event = 1;
1042 service->NotifyPrintServiceEvent(jobId, event);
1043 event = 2;
1044 service->NotifyPrintServiceEvent(jobId, event);
1045 event = 3;
1046 service->NotifyPrintServiceEvent(jobId, event);
1047 }
1048
1049 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0056, TestSize.Level1)
1050 {
1051 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1052 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1053 service->helper_ = helper;
1054 std::string type = "";
1055 sptr<IPrintCallback> listener = nullptr;
1056 EXPECT_EQ(service->RegisterPrinterCallback(type, listener), E_PRINT_INVALID_PARAMETER);
1057 EXPECT_EQ(service->UnregisterPrinterCallback(type), E_PRINT_INVALID_TOKEN);
1058 sptr<IPrintCallback> listener2 = new MockPrintCallbackProxy();
1059 service->RegisterPrinterCallback(type, listener2);
1060 service->UnregisterPrinterCallback(type);
1061 }
1062
1063 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0057, TestSize.Level1)
1064 {
1065 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1066 int event = 0;
1067 PrinterInfo info;
1068 EXPECT_EQ(service->SendPrinterChangeEvent(event, info), 0);
1069 }
1070
1071 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0058, TestSize.Level1)
1072 {
1073 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1074 std::shared_ptr<PrintJob> jobInfo = std::make_shared<PrintJob>();
1075 std::string printerId = "1234";
1076 uint32_t subState = 0;
1077 EXPECT_NE(service->ReportHisysEvent(jobInfo, printerId, subState), 0);
1078 printerId = "ePrintID";
1079 EXPECT_NE(service->ReportHisysEvent(jobInfo, printerId, subState), 0);
1080 std::shared_ptr<PrinterInfo> printInfo = std::make_shared<PrinterInfo>();
1081 printInfo->SetPrinterName("Direct0759");
1082 service->printSystemData_.discoveredPrinterInfoList_[printerId] = printInfo;
1083 EXPECT_NE(service->ReportHisysEvent(jobInfo, printerId, subState), 0);
1084 nlohmann::json infoJson;
1085 infoJson["printerUri"] = "ipp123";
1086 jobInfo->SetOption(infoJson.dump());
1087 EXPECT_NE(service->ReportHisysEvent(jobInfo, printerId, subState), 0);
1088 infoJson["jobDescription"] = "testPrinter";
1089 jobInfo->SetOption(infoJson.dump());
1090 EXPECT_NE(service->ReportHisysEvent(jobInfo, printerId, subState), 0);
1091 }
1092
1093 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0059, TestSize.Level1)
1094 {
1095 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1096 PrintJob jobInfo;
1097 std::string previewResult = "";
1098 service->RequestPreview(jobInfo, previewResult);
1099
1100 std::string extensionId = "DEFAULT_EXTENSION_ID";
1101 std::string extInfo = "spooler";
1102 service->SendExtensionEvent(extensionId, extInfo);
1103 EXPECT_EQ(service->UnregisterAllExtCallback(extensionId), E_PRINT_NONE);
1104 }
1105
1106 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0060, TestSize.Level1)
1107 {
1108 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1109 AppExecFwk::ExtensionAbilityInfo extInfo;
1110 extInfo.bundleName = "spooler";
1111
1112 PrintExtensionInfo newExtInfo;
1113 PrintExtensionInfo judgeExtInfo;
1114 judgeExtInfo.SetExtensionId(extInfo.bundleName);
1115 judgeExtInfo.SetVendorId(extInfo.bundleName);
1116 judgeExtInfo.SetVendorName(extInfo.bundleName);
1117 judgeExtInfo.SetVendorIcon(0);
1118 judgeExtInfo.SetVersion("1.0.0");
1119 newExtInfo = service->ConvertToPrintExtensionInfo(extInfo);
1120 EXPECT_EQ(newExtInfo.extensionId_, judgeExtInfo.extensionId_);
1121 EXPECT_EQ(newExtInfo.vendorId_, judgeExtInfo.vendorId_);
1122 EXPECT_EQ(newExtInfo.vendorName_, judgeExtInfo.vendorName_);
1123 EXPECT_EQ(newExtInfo.vendorIcon_, judgeExtInfo.vendorIcon_);
1124 EXPECT_EQ(newExtInfo.version_, judgeExtInfo.version_);
1125 }
1126
1127 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0061, TestSize.Level1)
1128 {
1129 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1130 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1131 service->helper_ = helper;
1132 std::string jobId = "123";
1133 int32_t userId = 100;
1134 service->userJobMap_[jobId] = userId;
1135 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1136 service->printUserMap_[userId] = userData;
1137 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_INVALID_PRINTJOB);
1138 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
1139 userData->queuedJobList_[jobId] = printJob;
1140 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_NONE);
1141 printJob->SetJobState(PRINT_JOB_RUNNING);
1142 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_NONE);
1143 printJob->SetPrinterId("1234");
1144 std::string extensionId = PrintUtils::GetExtensionId("1234");
1145 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_CANCEL_PRINT);
1146 sptr<IPrintExtensionCallback> extCb = nullptr;
1147 service->extCallbackMap_[cid] = extCb;
1148 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_NONE);
1149 printJob->SetPrinterId("com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620");
1150 std::string extensionId2 = PrintUtils::GetExtensionId("com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620");
1151 std::string cid2 = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_CANCEL_PRINT);
1152 service->extCallbackMap_[cid2] = extCb;
1153 EXPECT_EQ(service->CancelPrintJob(jobId), E_PRINT_NONE);
1154 }
1155
1156 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0062, TestSize.Level1)
1157 {
1158 DelayedSingleton<PrintBMSHelper>::GetInstance()->hasBms = false;
1159 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1160 std::vector<std::string> extensionIds;
1161 std::string extensionId = "com.ohos.spooler";
1162 extensionIds.push_back(extensionId);
1163 EXPECT_EQ(service->StartDiscoverPrinter(extensionIds), E_PRINT_INVALID_EXTENSION);
1164 std::vector<PrintExtensionInfo> extensionInfos;
1165 service->QueryAllExtension(extensionInfos);
1166 service->StartDiscoverPrinter(extensionIds);
1167 }
1168
1169 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0063, TestSize.Level1)
1170 {
1171 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1172 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1173 service->helper_ = helper;
1174 std::string extensionId = "com.ohos.spooler:0";
1175 service->extensionStateList_[extensionId] = PRINT_EXTENSION_UNLOAD;
1176 EXPECT_EQ(service->DestroyExtension(), E_PRINT_NONE);
1177 service->extensionStateList_[extensionId] = PRINT_EXTENSION_LOADED;
1178 EXPECT_EQ(service->DestroyExtension(), E_PRINT_NONE);
1179 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_DESTROY_EXTENSION);
1180 sptr<IPrintExtensionCallback> listener = nullptr;
1181 service->extCallbackMap_[cid] = listener;
1182 EXPECT_EQ(service->DestroyExtension(), E_PRINT_NONE);
1183 }
1184
1185 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0064, TestSize.Level1)
1186 {
1187 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1188 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1189 service->helper_ = helper;
1190 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
1191 PrinterInfo info;
1192 EXPECT_EQ(service->QueryPrinterInfoByPrinterId(printerId, info), E_PRINT_INVALID_PRINTER);
1193 auto printerInfo = std::make_shared<CupsPrinterInfo>();
1194 printerInfo->name = "testName";
1195 printerInfo->uri = "testUri";
1196 printerInfo->maker = "testMaker";
1197 PrinterCapability caps;
1198 nlohmann::json opsJson;
1199 opsJson["key"] = "value";
1200 caps.SetOption(opsJson.dump());
1201 std::vector<PrintPageSize> pageSizeList;
1202 PrintPageSize pageSize;
1203 pageSizeList.push_back(pageSize);
1204 caps.SetSupportedPageSize(pageSizeList);
1205 printerInfo->printerCapability = caps;
1206 service->printSystemData_.addedPrinterMap_.Insert(printerId, printerInfo);
1207 EXPECT_EQ(service->QueryPrinterInfoByPrinterId(printerId, info), E_PRINT_NONE);
1208 }
1209
1210 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0065, TestSize.Level1)
1211 {
1212 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1213 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
1214 auto info = std::make_shared<PrinterInfo>();
1215 info->SetPrinterId(printerId);
1216 service->printSystemData_.addedPrinterInfoList_[printerId] = info;
1217 std::vector<std::string> keyList;
1218 keyList.emplace_back("pagesizeId");
1219 keyList.emplace_back("orientation");
1220 keyList.emplace_back("duplex");
1221 keyList.emplace_back("quality");
1222 keyList.emplace_back("test");
1223 std::vector<std::string> valueList;
1224 EXPECT_EQ(service->QueryPrinterProperties(printerId, keyList, valueList), E_PRINT_INVALID_PRINTER);
1225 }
1226
1227 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0066, TestSize.Level1)
1228 {
1229 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1230 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
1231 auto info = std::make_shared<PrinterInfo>();
1232 info->SetPrinterId(printerId);
1233 service->printSystemData_.addedPrinterInfoList_[printerId] = info;
1234 std::string savePrinterPreference = "test";
1235 service->printerIdAndPreferenceMap_[printerId] = savePrinterPreference;
1236 std::vector<std::string> keyList;
1237 keyList.emplace_back("pagesizeId");
1238 keyList.emplace_back("orientation");
1239 keyList.emplace_back("duplex");
1240 keyList.emplace_back("quality");
1241 keyList.emplace_back("test");
1242 std::vector<std::string> valueList;
1243 EXPECT_EQ(service->QueryPrinterProperties(printerId, keyList, valueList), E_PRINT_INVALID_PRINTER);
1244 }
1245
1246 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0067, TestSize.Level1)
1247 {
1248 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1249 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
1250 std::string printerExtId = PrintUtils::GetGlobalId("", printerId);
1251 service->printerIdAndPreferenceMap_[printerExtId] = "test";
1252 PrinterCapability printerCaps;
1253 printerCaps.SetOption("test");
1254 std::string printerUri = "ipp://192.168.186.1:631/ipp/print";
1255 EXPECT_EQ(service->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps), E_PRINT_NONE);
1256 }
1257
1258 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0068, TestSize.Level1)
1259 {
1260 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1261 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
1262 std::string printerExtId = PrintUtils::GetGlobalId("", printerId);
1263 service->printerIdAndPreferenceMap_["123"] = "test";
1264 PrinterCapability printerCaps;
1265 printerCaps.SetOption("test");
1266 std::string printerUri = "ipp://192.168.186.1:631/ipp/print";
1267 EXPECT_EQ(service->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps), E_PRINT_NONE);
1268 }
1269
1270 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0069, TestSize.Level1)
1271 {
1272 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1273 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
1274 PrinterCapability printerCaps;
1275 std::string printerUri = "ipp://192.168.186.1:631/ipp/print";
1276 service->printSystemData_.discoveredPrinterInfoList_["123"] = nullptr;
1277 auto printerInfo = std::make_shared<PrinterInfo>();
1278 service->printSystemData_.discoveredPrinterInfoList_["456"] = printerInfo;
1279 service->printSystemData_.discoveredPrinterInfoList_[printerId] = printerInfo;
1280 EXPECT_EQ(service->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps), E_PRINT_NONE);
1281 }
1282
1283 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0071, TestSize.Level1)
1284 {
1285 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1286 PreferenceSetting printerDefaultAttr;
1287 nlohmann::json capOpt;
1288 service->BuildPrinterPreferenceByDefault(capOpt, printerDefaultAttr);
1289 capOpt["defaultPageSizeId"] = 123;
1290 capOpt["orientation-requested-default"] = 123;
1291 capOpt["sides-default"] = 123;
1292 capOpt["print-quality-default"] = 123;
1293 service->BuildPrinterPreferenceByDefault(capOpt, printerDefaultAttr);
1294 capOpt["defaultPageSizeId"] = "123";
1295 capOpt["orientation-requested-default"] = "123";
1296 capOpt["sides-default"] = "123";
1297 capOpt["print-quality-default"] = "123";
1298 service->BuildPrinterPreferenceByDefault(capOpt, printerDefaultAttr);
1299 EXPECT_EQ(printerDefaultAttr.pagesizeId, capOpt["defaultPageSizeId"].get<std::string>());
1300 EXPECT_EQ(printerDefaultAttr.orientation, capOpt["orientation-requested-default"].get<std::string>());
1301 EXPECT_EQ(printerDefaultAttr.duplex, capOpt["sides-default"].get<std::string>());
1302 EXPECT_EQ(printerDefaultAttr.quality, capOpt["print-quality-default"].get<std::string>());
1303 }
1304
1305 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0072, TestSize.Level1)
1306 {
1307 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1308 std::string key;
1309 std::string supportedOpts;
1310 std::vector<std::string> optAttrs;
1311 service->BuildPrinterPreferenceByOption(key, supportedOpts, optAttrs);
1312 std::string supportedOpts2 = "test";
1313 service->BuildPrinterPreferenceByOption(key, supportedOpts2, optAttrs);
1314 nlohmann::json optJson;
1315 nlohmann::json itemJson;
1316 itemJson["key"] = "value";
1317 optJson["testList"] = itemJson;
1318 std::string supportedOpts3 = optJson.dump();
1319 service->BuildPrinterPreferenceByOption(key, supportedOpts3, optAttrs);
1320 }
1321
1322 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0073, TestSize.Level1)
1323 {
1324 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1325 PrinterCapability cap;
1326 PrinterPreference printPreference;
1327 cap.SetOption("test");
1328 EXPECT_EQ(service->BuildPrinterPreference(cap, printPreference), E_PRINT_INVALID_PARAMETER);
1329 nlohmann::json capJson;
1330 capJson["key"] = "value";
1331 cap.SetOption(capJson.dump());
1332 EXPECT_EQ(service->BuildPrinterPreference(cap, printPreference), E_PRINT_INVALID_PARAMETER);
1333 nlohmann::json capJson2;
1334 capJson2["cupsOptions"] = "value";
1335 cap.SetOption(capJson2.dump());
1336 EXPECT_EQ(service->BuildPrinterPreference(cap, printPreference), E_PRINT_NONE);
1337 nlohmann::json capJson3;
1338 nlohmann::json capOpt3;
1339 capOpt3["orientation-requested-supported"] = 123;
1340 capOpt3["sides-supported"] = 123;
1341 capOpt3["print-quality-supported"] = 123;
1342 capJson3["cupsOptions"] = capOpt3;
1343 cap.SetOption(capJson3.dump());
1344 EXPECT_EQ(service->BuildPrinterPreference(cap, printPreference), E_PRINT_NONE);
1345 nlohmann::json capJson4;
1346 nlohmann::json capOpt4;
1347 capOpt4["orientation-requested-supported"] = "123";
1348 capOpt4["sides-supported"] = "123";
1349 capOpt4["print-quality-supported"] = "123";
1350 capJson4["cupsOptions"] = capOpt4;
1351 cap.SetOption(capJson4.dump());
1352 EXPECT_EQ(service->BuildPrinterPreference(cap, printPreference), E_PRINT_NONE);
1353 }
1354
1355 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0074, TestSize.Level1)
1356 {
1357 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1358 std::string key = "key";
1359 nlohmann::json jsonArrObject = nlohmann::json::object();
1360 jsonArrObject["key"] = "value";
1361 std::vector<std::string> printerAttrs;
1362 service->BuildPrinterAttrComponentByJson(key, jsonArrObject, printerAttrs);
1363
1364 nlohmann::json jsonArrObject2 = nlohmann::json::array();
1365 nlohmann::json attrItem = nlohmann::json::object();
1366 attrItem["123"] = "123";
1367 nlohmann::json attrItem2 = nlohmann::json::object();;
1368 attrItem2["key"] = "123";
1369 nlohmann::json attrItem3 = nlohmann::json::object();;
1370 attrItem3["key"] = 123;
1371 jsonArrObject2.push_back(attrItem);
1372 jsonArrObject2.push_back(attrItem2);
1373 jsonArrObject2.push_back(attrItem3);
1374 service->BuildPrinterAttrComponentByJson(key, jsonArrObject2, printerAttrs);
1375 std::vector<std::string> testPrinterAttrs;
1376 for (int i = 0; i < 2; i++) {
1377 testPrinterAttrs.push_back("123");
1378 }
1379 EXPECT_EQ(printerAttrs, testPrinterAttrs);
1380 }
1381
1382 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0075, TestSize.Level1)
1383 {
1384 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1385 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1386 service->helper_ = helper;
1387 std::string printerId = "123";
1388 std::string printerPreference = "";
1389 EXPECT_EQ(service->GetPrinterPreference(printerId, printerPreference), E_PRINT_INVALID_PRINTER);
1390 service->printerIdAndPreferenceMap_["111"] = "123";
1391 EXPECT_EQ(service->GetPrinterPreference(printerId, printerPreference), E_PRINT_INVALID_PRINTER);
1392 service->printerIdAndPreferenceMap_["123"] = "123";
1393 EXPECT_EQ(service->GetPrinterPreference(printerId, printerPreference), E_PRINT_NONE);
1394 }
1395
1396 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0076, TestSize.Level1)
1397 {
1398 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1399 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1400 service->helper_ = helper;
1401 std::string printerId = "123";
1402 std::string printerSetting = "test";
1403 EXPECT_EQ(service->SetPrinterPreference(printerId, printerSetting), E_PRINT_INVALID_PRINTER);
1404 }
1405
1406 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0077, TestSize.Level1)
1407 {
1408 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1409 std::string printerId = "123";
1410 std::string printerPreference = "test";
1411 service->printerIdAndPreferenceMap_["111"] = "123";
1412 EXPECT_EQ(service->ReadPreferenceFromFile(printerId, printerPreference), false);
1413 service->printerIdAndPreferenceMap_["123"] = "123";
1414 EXPECT_EQ(service->ReadPreferenceFromFile(printerId, printerPreference), true);
1415 }
1416
1417 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0078, TestSize.Level1)
1418 {
1419 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1420 service->InitPreferenceMap();
1421 service->printerIdAndPreferenceMap_["printerId"] = "123";
1422 nlohmann::json printPreferenceJson;
1423 printPreferenceJson["key"] = "value";
1424 service->printerIdAndPreferenceMap_["printerId2"] = printPreferenceJson.dump();
1425 EXPECT_EQ(service->WritePreferenceToFile(), true);
1426 service->InitPreferenceMap();
1427 }
1428
1429 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0079, TestSize.Level1)
1430 {
1431 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1432 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1433 service->helper_ = helper;
1434 std::string printerId = "123";
1435 PrintJob printJob;
1436 nlohmann::json opsJson;
1437 opsJson["key"] = "value";
1438 printJob.SetPrinterId(printerId);
1439 printJob.SetOption(opsJson.dump());
1440 auto cupsPrinter = std::make_shared<CupsPrinterInfo>();
1441 service->printSystemData_.addedPrinterMap_.Insert(printerId, cupsPrinter);
1442 service->StartNativePrintJob(printJob);
1443 auto extensionId = PrintUtils::GetExtensionId(printerId);
1444 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_START_PRINT);
1445 sptr<IPrintExtensionCallback> extCb = nullptr;
1446 service->extCallbackMap_[cid] = extCb;
1447 service->StartNativePrintJob(printJob);
1448 }
1449
1450 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0080, TestSize.Level1)
1451 {
1452 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1453 std::string printerId = "123";
1454 service->SetLastUsedPrinter(printerId);
1455 auto cupsPrinter = std::make_shared<CupsPrinterInfo>();
1456 service->printSystemData_.addedPrinterMap_.Insert(printerId, cupsPrinter);
1457 service->SetLastUsedPrinter(printerId);
1458 }
1459
1460 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0081, TestSize.Level1)
1461 {
1462 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1463 uint32_t state = PRINT_JOB_UNKNOWN + 1;
1464 uint32_t subState = PRINT_JOB_CREATE_FILE_COMPLETED_SUCCESS;
1465 service->checkJobState(state, subState);
1466 std::string jobId = "123";
1467 service->UpdatePrintJobStateOnlyForSystemApp(jobId, state, subState);
1468 }
1469
1470 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0082, TestSize.Level1)
1471 {
1472 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1473 uint32_t state = PRINT_JOB_CREATE_FILE_COMPLETED;
1474 uint32_t subState = PRINT_JOB_CREATE_FILE_COMPLETED_SUCCESS;
1475 std::string jobId = "123";
1476 std::string type = PRINT_GET_FILE_EVENT_TYPE;
1477 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1478 service->registeredListeners_[type] = listener;
1479 service->AdapterGetFileCallBack(jobId, state, subState);
1480 subState = PRINT_JOB_CREATE_FILE_COMPLETED_FAILED;
1481 service->AdapterGetFileCallBack(jobId, state, subState);
1482 subState = PRINT_JOB_BLOCKED_UNKNOWN;
1483 service->AdapterGetFileCallBack(jobId, state, subState);
1484 }
1485
1486 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0083, TestSize.Level1)
1487 {
1488 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1489 std::string jobId = "1";
1490 int32_t userId = 100;
1491 service->userJobMap_[jobId] = userId;
1492 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1493 service->printUserMap_[userId] = userData;
1494 uint32_t state = PRINT_JOB_COMPLETED;
1495 uint32_t subState = 0;
1496 std::string printerId = "1234";
1497 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
1498 printJob->SetPrinterId(printerId);
1499 userData->printJobList_[jobId] = printJob;
1500 service->printerJobMap_[printerId].insert(std::make_pair(jobId, true));
1501 EXPECT_EQ(service->CheckAndSendQueuePrintJob(jobId, state, subState), E_PRINT_NONE);
1502 }
1503
1504 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0084, TestSize.Level1)
1505 {
1506 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1507 std::string jobId = "1";
1508 int32_t userId = 100;
1509 service->userJobMap_[jobId] = userId;
1510 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1511 service->printUserMap_[userId] = userData;
1512 uint32_t state = PRINT_JOB_COMPLETED;
1513 uint32_t subState = 0;
1514 std::string printerId = "1234";
1515 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
1516 printJob->SetPrinterId(printerId);
1517 userData->printJobList_[jobId] = printJob;
1518 service->printerJobMap_[printerId].insert(std::make_pair(jobId, true));
1519 auto printerInfo = std::make_shared<PrinterInfo>();
1520 service->printSystemData_.discoveredPrinterInfoList_[printerId] = printerInfo;
1521 service->printSystemData_.addedPrinterInfoList_[printerId] = printerInfo;
1522 EXPECT_EQ(service->CheckAndSendQueuePrintJob(jobId, state, subState), E_PRINT_NONE);
1523 }
1524
1525 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0085, TestSize.Level1)
1526 {
1527 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1528 std::string printerId = "1234";
1529 service->printAppCount_ = 1;
1530 service->ReportCompletedPrint(printerId);
1531 std::string jobId = "1";
1532 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
1533 service->queuedJobList_[jobId] = printJob;
1534 service->printAppCount_ = 0;
1535 service->ReportCompletedPrint(printerId);
1536 EXPECT_EQ(service->unloadCount_, 0);
1537 }
1538
1539 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0086, TestSize.Level1)
1540 {
1541 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1542 std::string printerId = "";
1543 EXPECT_EQ(service->isEprint(printerId), false);
1544 }
1545
1546 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0087, TestSize.Level1)
1547 {
1548 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1549 std::string printerId = "1234";
1550 service->QueryPrinterCapability(printerId);
1551 auto printerInfo = std::make_shared<PrinterInfo>();
1552 service->printSystemData_.discoveredPrinterInfoList_[printerId] = printerInfo;
1553 service->QueryPrinterCapability(printerId);
1554 std::string extensionId = PrintUtils::GetExtensionId(printerId);
1555 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, PRINT_EXTCB_REQUEST_CAP);
1556 sptr<IPrintExtensionCallback> extCb = nullptr;
1557 service->extCallbackMap_[cid] = extCb;
1558 service->QueryPrinterCapability(printerId);
1559 }
1560
1561 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0088, TestSize.Level1)
1562 {
1563 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1564 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1565 service->helper_ = helper;
1566 std::string extensionCid = "";
1567 sptr<IPrintExtensionCallback> listener = nullptr;
1568 service->RegisterExtCallback(extensionCid, listener);
1569 std::string extensionCid2 = "123:20";
1570 service->RegisterExtCallback(extensionCid2, listener);
1571 std::string extensionId = "123";
1572 service->extensionStateList_[extensionId] = PRINT_EXTENSION_UNLOAD;
1573 service->RegisterExtCallback(extensionCid2, listener);
1574 service->extensionStateList_[extensionId] = PRINT_EXTENSION_LOADING;
1575 service->RegisterExtCallback(extensionCid2, listener);
1576 std::string extensionCid3 = "123:2";
1577 service->RegisterExtCallback(extensionCid2, listener);
1578 }
1579
1580 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0089, TestSize.Level1)
1581 {
1582 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1583 uint32_t callbackId = 0;
1584 std::string extensionId = "123";
1585 std::string cid = PrintUtils::EncodeExtensionCid(extensionId, callbackId);
1586 sptr<IPrintExtensionCallback> extCb = nullptr;
1587 service->extCallbackMap_[cid] = extCb;
1588 service->UnregisterAllExtCallback(extensionId);
1589 }
1590
1591 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0090, TestSize.Level1)
1592 {
1593 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1594 std::string extensionId = "123";
1595 service->extensionStateList_[extensionId] = PRINT_EXTENSION_UNLOAD;
1596 service->LoadExtSuccess(extensionId);
1597 service->extensionStateList_[extensionId] = PRINT_EXTENSION_LOADING;
1598 service->LoadExtSuccess(extensionId);
1599 }
1600
1601 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0091, TestSize.Level1)
1602 {
1603 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1604 std::string jobId = "123";
1605 std::string type = PRINT_CALLBACK_ADAPTER;
1606 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1607 EXPECT_NE(listener, nullptr);
1608 service->On(jobId, type, listener);
1609 type = PRINTER_CHANGE_EVENT_TYPE;
1610 service->On(jobId, type, listener);
1611 }
1612
1613 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0092, TestSize.Level1)
1614 {
1615 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1616 service->helper_ = nullptr;
1617 AAFwk::Want want;
1618 service->StartAbility(want);
1619 }
1620
1621 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0093, TestSize.Level1)
1622 {
1623 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1624 service->printUserDataMap_[100] = nullptr;
1625 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1626 service->printUserDataMap_[101] = userData;
1627 int event = 0;
1628 PrinterInfo info;
1629 EXPECT_NE(service->SendPrinterDiscoverEvent(event, info), 0);
1630 }
1631
1632 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0094, TestSize.Level1)
1633 {
1634 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1635 service->printUserDataMap_[100] = nullptr;
1636 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1637 service->printUserDataMap_[101] = userData;
1638 int event = 0;
1639 PrinterInfo info;
1640 EXPECT_NE(service->SendPrinterChangeEvent(event, info), 0);
1641 }
1642
1643 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0095, TestSize.Level1)
1644 {
1645 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1646 PrinterInfo info;
1647 service->SendPrinterEvent(info);
1648 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1649 service->registeredListeners_[PRINTER_EVENT_TYPE] = listener;
1650 service->SendPrinterEvent(info);
1651 }
1652
1653 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0096, TestSize.Level1)
1654 {
1655 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1656 PrinterInfo info;
1657 PrinterEvent printerEvent = PRINTER_EVENT_STATE_CHANGED;
1658 service->registeredListeners_["test"] = nullptr;
1659 EXPECT_EQ(service->SendPrinterEventChangeEvent(printerEvent, info), 0);
1660
1661 std::string eventType = "123" + PRINTER_CHANGE_EVENT_TYPE;
1662 service->registeredListeners_[eventType] = nullptr;
1663 EXPECT_EQ(service->SendPrinterEventChangeEvent(printerEvent, info), 0);
1664
1665 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1666 service->registeredListeners_[eventType] = listener;
1667 EXPECT_EQ(service->SendPrinterEventChangeEvent(printerEvent, info), 0);
1668 }
1669
1670 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0097, TestSize.Level1)
1671 {
1672 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1673 PrintJob jobInfo;
1674 jobInfo.SetJobId("1");
1675 service->SendPrintJobEvent(jobInfo);
1676 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1677 service->registeredListeners_[PRINTJOB_EVENT_TYPE] = listener;
1678 service->SendPrintJobEvent(jobInfo);
1679 jobInfo.SetJobState(PRINT_JOB_COMPLETED);
1680 service->SendPrintJobEvent(jobInfo);
1681 jobInfo.SetJobState(PRINT_JOB_BLOCKED);
1682 service->SendPrintJobEvent(jobInfo);
1683 jobInfo.SetJobState(PRINT_JOB_COMPLETED);
1684 jobInfo.SetSubState(PRINT_JOB_COMPLETED_SUCCESS);
1685 service->SendPrintJobEvent(jobInfo);
1686 jobInfo.SetSubState(PRINT_JOB_COMPLETED_FAILED);
1687 service->SendPrintJobEvent(jobInfo);
1688 jobInfo.SetSubState(PRINT_JOB_COMPLETED_CANCELLED);
1689 std::string taskEvent = PrintUtils::GetTaskEventId(jobInfo.GetJobId(), EVENT_CANCEL);
1690 service->registeredListeners_[taskEvent] = listener;
1691 service->SendPrintJobEvent(jobInfo);
1692 }
1693
1694 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0098, TestSize.Level1)
1695 {
1696 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1697 std::string extensionId = "123";
1698 std::string extInfo = "123";
1699 EXPECT_EQ(service->SendExtensionEvent(extensionId, extInfo), 0);
1700 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1701 service->registeredListeners_[EXTINFO_EVENT_TYPE] = listener;
1702 EXPECT_NE(service->SendExtensionEvent(extensionId, extInfo), 0);
1703 }
1704
1705 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0099, TestSize.Level1)
1706 {
1707 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1708 PrintJob jobInfo;
1709 std::string jobId = "123";
1710 jobInfo.SetJobId(jobId);
1711 service->isJobQueueBlocked_ = true;
1712 jobInfo.SetJobState(PRINT_JOB_COMPLETED);
1713 service->CheckJobQueueBlocked(jobInfo);
1714 EXPECT_EQ(service->isJobQueueBlocked_, true);
1715 service->isJobQueueBlocked_ = false;
1716 service->CheckJobQueueBlocked(jobInfo);
1717 EXPECT_EQ(service->isJobQueueBlocked_, false);
1718 jobInfo.SetJobState(PRINT_JOB_BLOCKED);
1719 service->CheckJobQueueBlocked(jobInfo);
1720 EXPECT_EQ(service->isJobQueueBlocked_, true);
1721 int32_t userId = 100;
1722 service->userJobMap_[jobId] = userId;
1723 service->currentUserId_ = userId;
1724 service->CheckJobQueueBlocked(jobInfo);
1725 EXPECT_EQ(service->isJobQueueBlocked_, true);
1726 service->isJobQueueBlocked_ = true;
1727 jobInfo.SetJobState(PRINT_JOB_COMPLETED);
1728 service->CheckJobQueueBlocked(jobInfo);
1729 EXPECT_EQ(service->isJobQueueBlocked_, true);
1730 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1731 service->printUserMap_[userId] = userData;
1732 auto job = std::make_shared<PrintJob>();
1733 job->SetJobState(PRINT_JOB_COMPLETED);
1734 auto job2 = std::make_shared<PrintJob>();
1735 job2->SetJobState(PRINT_JOB_BLOCKED);
1736 userData->queuedJobList_["1"] = job;
1737 userData->queuedJobList_["2"] = job2;
1738 service->CheckJobQueueBlocked(jobInfo);
1739 EXPECT_EQ(service->isJobQueueBlocked_, true);
1740 userData->queuedJobList_.clear();
1741 userData->queuedJobList_["1"] = job;
1742 service->CheckJobQueueBlocked(jobInfo);
1743 EXPECT_EQ(service->isJobQueueBlocked_, false);
1744 service->userJobMap_.clear();
1745 service->CheckJobQueueBlocked(jobInfo);
1746 EXPECT_EQ(service->isJobQueueBlocked_, false);
1747 }
1748
1749 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0100, TestSize.Level1)
1750 {
1751 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1752 std::string jobName = "";
1753 PrintAttributes printAttributes;
1754 std::string taskId = "";
1755 service->PrintByAdapter(jobName, printAttributes, taskId);
1756 }
1757
1758 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0102, TestSize.Level1)
1759 {
1760 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1761 std::string jobId = "123";
1762 uint32_t state = PRINT_JOB_RUNNING;
1763 uint32_t subState = PRINT_JOB_SPOOLER_CLOSED_FOR_CANCELED;
1764 service->notifyAdapterJobChanged(jobId, state, subState);
1765 auto attrIt = service->printAttributesList_.find(jobId);
1766 EXPECT_EQ(attrIt, service->printAttributesList_.end());
1767 state = PRINT_JOB_SPOOLER_CLOSED;
1768 service->notifyAdapterJobChanged(jobId, state, subState);
1769 attrIt = service->printAttributesList_.find(jobId);
1770 EXPECT_EQ(attrIt, service->printAttributesList_.end());
1771 state = PRINT_JOB_COMPLETED;
1772 PrintAttributes printAttributes;
1773 service->printAttributesList_[jobId] = printAttributes;
1774 service->notifyAdapterJobChanged(jobId, state, subState);
1775 attrIt = service->printAttributesList_.find(jobId);
1776 EXPECT_EQ(attrIt, service->printAttributesList_.end());
1777 }
1778
1779 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0103, TestSize.Level1)
1780 {
1781 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1782 service->helper_ = nullptr;
1783 AAFwk::Want want;
1784 EXPECT_FALSE(service->StartPluginPrintIconExtAbility(want));
1785 service->helper_ = std::make_shared<PrintServiceHelper>();
1786 service->StartPluginPrintIconExtAbility(want);
1787 }
1788
1789 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0104, TestSize.Level1)
1790 {
1791 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1792 std::string jobId = "123";
1793 EXPECT_EQ(service->GetUserDataByJobId(jobId), nullptr);
1794 int32_t userId = 100;
1795 service->userJobMap_[jobId] = userId;
1796 EXPECT_EQ(service->GetUserDataByJobId(jobId), nullptr);
1797 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1798 service->printUserMap_[userId] = userData;
1799 EXPECT_NE(service->GetUserDataByJobId(jobId), nullptr);
1800 }
1801
1802 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0105, TestSize.Level1)
1803 {
1804 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1805 std::string jobId = "123";
1806 service->RegisterAdapterListener(jobId);
1807 auto lisIt = service->adapterListenersByJobId_.find(jobId);
1808 EXPECT_EQ(lisIt, service->adapterListenersByJobId_.end());
1809 sptr<IPrintCallback> listener = new MockPrintCallbackProxy();
1810 service->registeredListeners_[PRINT_ADAPTER_EVENT_TYPE] = listener;
1811 service->RegisterAdapterListener(jobId);
1812 lisIt = service->adapterListenersByJobId_.find(jobId);
1813 EXPECT_NE(lisIt, service->adapterListenersByJobId_.end());
1814 }
1815
1816 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0106, TestSize.Level1)
1817 {
1818 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1819 std::string printerId = "1234";
1820 service->SetDefaultPrinter(printerId, 0);
1821 }
1822
1823 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0107, TestSize.Level1)
1824 {
1825 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1826 std::string printerId = "1234";
1827 EXPECT_EQ(service->CheckIsDefaultPrinter(printerId), false);
1828 }
1829
1830 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0108, TestSize.Level1)
1831 {
1832 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1833 std::string printerId = "1234";
1834 EXPECT_EQ(service->CheckIsLastUsedPrinter(printerId), false);
1835 }
1836
1837 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0109, TestSize.Level1)
1838 {
1839 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1840 std::string printerName = "pixlab_0759";
1841 EXPECT_EQ(service->DeletePrinterFromCups(printerName), E_PRINT_NONE);
1842 }
1843
1844 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0111, TestSize.Level1)
1845 {
1846 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1847 std::string printerId = "printerId";
1848 int32_t userId1 = 100;
1849 int32_t userId2 = 101;
1850 std::shared_ptr<PrintUserData> userData1 = std::make_shared<PrintUserData>();
1851 userData1->SetDefaultPrinter("test", 0);
1852 std::shared_ptr<PrintUserData> userData2 = std::make_shared<PrintUserData>();
1853 userData1->SetDefaultPrinter(printerId, 0);
1854 service->printUserMap_[userId1] = userData1;
1855 service->printUserMap_[userId2] = userData2;
1856 service->DeletePrinterFromUserData(printerId);
1857 }
1858
1859 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0112, TestSize.Level1)
1860 {
1861 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1862 std::string jobId = "1";
1863 int32_t userId = 100;
1864 service->userJobMap_[jobId] = userId;
1865 std::shared_ptr<PrintUserData> userData = std::make_shared<PrintUserData>();
1866 service->printUserMap_[userId] = userData;
1867 uint32_t state = PRINT_JOB_COMPLETED;
1868 uint32_t subState = 0;
1869 std::string printerId = "1234";
1870 std::shared_ptr<PrintJob> printJob = std::make_shared<PrintJob>();
1871 printJob->SetPrinterId(printerId);
1872 userData->queuedJobList_[jobId] = printJob;
1873 service->printerJobMap_[printerId].insert(std::make_pair(jobId, true));
1874 auto printerInfo = std::make_shared<PrinterInfo>();
1875 service->printSystemData_.discoveredPrinterInfoList_[printerId] = printerInfo;
1876 service->printSystemData_.addedPrinterInfoList_[printerId] = printerInfo;
1877 service->currentUserId_ = 0;
1878 EXPECT_EQ(service->CheckAndSendQueuePrintJob(jobId, state, subState), E_PRINT_NONE);
1879 }
1880
1881 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0113, TestSize.Level1)
1882 {
1883 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1884 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
1885 service->helper_ = helper;
1886 std::string taskId = "";
1887 std::string type = PRINTER_CHANGE_EVENT_TYPE;
1888 service->Off(taskId, type);
1889 }
1890
1891 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0120, TestSize.Level1)
1892 {
1893 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1894 EXPECT_NE(service, nullptr);
1895 std::map<std::string, std::shared_ptr<PrintJob>> jobList;
1896 auto job = std::make_shared<PrintJob>();
1897 EXPECT_NE(job, nullptr);
1898 job->SetJobState(PRINT_JOB_BLOCKED);
1899 jobList.insert(std::make_pair("test", job));
1900 EXPECT_EQ(service->DetermineUserJobStatus(jobList), PRINT_JOB_BLOCKED);
1901 }
1902
1903 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0121, TestSize.Level1)
1904 {
1905 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1906 EXPECT_NE(service, nullptr);
1907 std::map<std::string, std::shared_ptr<PrintJob>> jobList;
1908 auto job = std::make_shared<PrintJob>();
1909 EXPECT_NE(job, nullptr);
1910 job->SetJobState(PRINT_JOB_COMPLETED);
1911 jobList.insert(std::make_pair("test", job));
1912 EXPECT_EQ(service->DetermineUserJobStatus(jobList), PRINT_JOB_COMPLETED);
1913 }
1914
1915 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0122, TestSize.Level1)
1916 {
1917 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1918 EXPECT_NE(service, nullptr);
1919 std::map<std::string, std::shared_ptr<PrintJob>> jobList;
1920 auto job = std::make_shared<PrintJob>();
1921 EXPECT_NE(job, nullptr);
1922 job->SetJobState(PRINT_JOB_RUNNING);
1923 jobList.insert(std::make_pair("test", job));
1924 EXPECT_EQ(service->DetermineUserJobStatus(jobList), PRINT_JOB_RUNNING);
1925 }
1926
1927 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0123, TestSize.Level1)
1928 {
1929 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1930 int32_t userId = 100;
1931 auto userData1 = service->GetUserDataByUserId(100);
1932 EXPECT_NE(userData1, nullptr);
1933 auto userData2 = service->GetUserDataByUserId(100);
1934 EXPECT_EQ(userData1, userData2);
1935 auto job = std::make_shared<PrintJob>();
1936 EXPECT_NE(job, nullptr);
1937 job->SetJobState(PRINT_JOB_BLOCKED);
1938 userData1->queuedJobList_.insert(std::make_pair("test1", job));
1939 service->NotifyCurrentUserChanged(userId);
1940 auto job2 = std::make_shared<PrintJob>();
1941 EXPECT_NE(job2, nullptr);
1942 job2->SetJobState(PRINT_JOB_RUNNING);
1943 userData1->queuedJobList_.insert(std::make_pair("test2", job2));
1944 service->NotifyCurrentUserChanged(userId);
1945 }
1946
1947 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0124, TestSize.Level1)
1948 {
1949 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1950 int32_t userId = 100;
1951 auto userData1 = service->GetUserDataByUserId(100);
1952 EXPECT_NE(userData1, nullptr);
1953 auto userData2 = service->GetUserDataByUserId(100);
1954 EXPECT_EQ(userData1, userData2);
1955 auto job = std::make_shared<PrintJob>();
1956 EXPECT_NE(job, nullptr);
1957 job->SetJobState(PRINT_JOB_COMPLETED);
1958 userData1->queuedJobList_.insert(std::make_pair("test1", job));
1959 service->NotifyCurrentUserChanged(userId);
1960 auto job2 = std::make_shared<PrintJob>();
1961 EXPECT_NE(job2, nullptr);
1962 job2->SetJobState(PRINT_JOB_RUNNING);
1963 userData1->queuedJobList_.insert(std::make_pair("test2", job2));
1964 service->NotifyCurrentUserChanged(userId);
1965 }
1966
1967 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0125, TestSize.Level1)
1968 {
1969 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1970 EXPECT_NE(service, nullptr);
1971 uint32_t subState = PRINT_JOB_SPOOLER_CLOSED_FOR_CANCELED;
1972 EXPECT_EQ(service->GetListeningState(subState), PREVIEW_ABILITY_DESTROY_FOR_CANCELED);
1973 subState = PRINT_JOB_SPOOLER_CLOSED_FOR_STARTED;
1974 EXPECT_EQ(service->GetListeningState(subState), PREVIEW_ABILITY_DESTROY_FOR_STARTED);
1975 subState = PRINT_JOB_CREATE_FILE_COMPLETED_SUCCESS;
1976 EXPECT_EQ(service->GetListeningState(subState), PREVIEW_ABILITY_DESTROY);
1977 uint32_t state1 = service->GetListeningState(PRINT_JOB_SPOOLER_CLOSED, subState);
1978 uint32_t state2 = service->GetListeningState(subState);
1979 EXPECT_EQ(state1, state2);
1980 state1 = service->GetListeningState(PRINT_JOB_BLOCKED, subState);
1981 EXPECT_EQ(state1, PRINT_TASK_BLOCK);
1982 state1 = service->GetListeningState(PRINT_JOB_QUEUED, PRINT_JOB_COMPLETED_SUCCESS);
1983 EXPECT_EQ(state1, PRINT_TASK_SUCCEED);
1984 state1 = service->GetListeningState(PRINT_JOB_QUEUED, PRINT_JOB_COMPLETED_FAILED);
1985 EXPECT_EQ(state1, PRINT_TASK_FAIL);
1986 state1 = service->GetListeningState(PRINT_JOB_QUEUED, PRINT_JOB_COMPLETED_CANCELLED);
1987 EXPECT_EQ(state1, PRINT_TASK_CANCEL);
1988 state1 = service->GetListeningState(PRINT_JOB_QUEUED, PRINT_JOB_BLOCKED_OUT_OF_INK);
1989 EXPECT_EQ(state1, PRINT_TASK_FAIL);
1990 }
1991
1992 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0126, TestSize.Level1)
1993 {
1994 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
1995 std::string printerName = "testPrinterName";
1996 EXPECT_EQ(service->printSystemData_.QueryPrinterIdByStandardizeName(printerName), "");
1997 }
1998
1999 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0127, TestSize.Level1)
2000 {
2001 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2002 std::string printerId = "Pixlab_0759";
2003 PrinterCapability printerCaps;
2004 EXPECT_EQ(service->WriteEprinterPreference(printerId, printerCaps), true);
2005 }
2006
2007 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0128, TestSize.Level1)
2008 {
2009 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2010 std::string printerId = "Pixlab_0759";
2011 PrinterInfo info;
2012 EXPECT_EQ(service->UpdatePrinterCapability(printerId, info), true);
2013 }
2014
2015 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0129, TestSize.Level1)
2016 {
2017 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2018 std::shared_ptr<PrintServiceHelper> helper = std::make_shared<PrintServiceHelper>();
2019 service->helper_ = helper;
2020 std::vector<PrinterInfo> printers;
2021 service->DiscoverUsbPrinters(printers);
2022 EXPECT_EQ(printers.size(), 0);
2023 }
2024
2025 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0130, TestSize.Level1)
2026 {
2027 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2028 PrinterInfo info;
2029 info.SetPrinterId(DEFAULT_EXT_PRINTER_ID);
2030 EXPECT_EQ(service->AddPrinterToDiscovery(info), E_PRINT_NONE);
2031 EXPECT_EQ(service->UpdatePrinterInDiscovery(info), E_PRINT_NONE);
2032 info.SetPrinterId("1234");
2033 EXPECT_EQ(service->UpdatePrinterInDiscovery(info), E_PRINT_NONE);
2034
2035 std::shared_ptr<PrinterInfo> info1 = std::make_shared<PrinterInfo>();
2036 info1->SetPrinterId(DEFAULT_EXT_PRINTER_ID);
2037 service->printSystemData_.discoveredPrinterInfoList_[DEFAULT_EXT_PRINTER_ID] = info1;
2038 EXPECT_EQ(service->RemovePrinterFromDiscovery(DEFAULT_EXT_PRINTER_ID), E_PRINT_NONE);
2039 EXPECT_EQ(service->RemovePrinterFromDiscovery(DEFAULT_EXT_PRINTER_ID), E_PRINT_INVALID_PRINTER);
2040 }
2041
2042 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0131, TestSize.Level1)
2043 {
2044 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2045 std::string printerId = "com.ohos.spooler:p2p://DIRECT-PixLab_V1-1620";
2046 std::string printerExtId = PrintUtils::GetGlobalId("", printerId);
2047 service->printerIdAndPreferenceMap_[printerExtId] = "test";
2048 PrinterCapability printerCaps;
2049 printerCaps.SetOption("test");
2050 std::string printerUri = "usb:ipp://192.168.186.1:631/ipp/print";
2051 EXPECT_EQ(service->QueryPrinterCapabilityByUri(printerUri, printerId, printerCaps), E_PRINT_INVALID_PRINTER);
2052 }
2053
2054 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0132, TestSize.Level1)
2055 {
2056 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2057 std::string vendorName = "fwk.driver";
2058 std::string printerId = "testprinter";
2059 PrinterInfo info;
2060 info.SetPrinterId(printerId);
2061 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2062 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2063 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2064 EXPECT_TRUE(service->RemoveVendorPrinterFromDiscovery(vendorName, printerId));
2065 }
2066
2067 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0133, TestSize.Level1)
2068 {
2069 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2070 std::string vendorName = "fwk.driver";
2071 std::string printerId = "testprinter";
2072 PrinterInfo info;
2073 PrinterInfo info2;
2074 info.SetPrinterId(printerId);
2075 std::string globalId = VendorManager::GetGlobalPrinterId(vendorName, printerId);
2076 EXPECT_EQ(service->QueryVendorPrinterInfo(globalId, info2), E_PRINT_INVALID_PRINTER);
2077 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2078 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2079 EXPECT_EQ(service->QueryVendorPrinterInfo(globalId, info2), E_PRINT_INVALID_PRINTER);
2080 EXPECT_TRUE(service->RemoveVendorPrinterFromDiscovery(vendorName, printerId));
2081 PrinterCapability cap;
2082 info.SetCapability(cap);
2083 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2084 EXPECT_EQ(service->QueryVendorPrinterInfo(globalId, info2), E_PRINT_NONE);
2085 }
2086
2087 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0134, TestSize.Level1)
2088 {
2089 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2090 std::string vendorName = "fwk.driver";
2091 std::string printerId = "testprinter";
2092 std::string ppdData;
2093 PrinterInfo info;
2094 info.SetPrinterId(printerId);
2095 EXPECT_FALSE(service->RemoveVendorPrinterFromCups(vendorName, printerId));
2096 EXPECT_FALSE(service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData));
2097 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2098 EXPECT_FALSE(service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData));
2099 PrinterCapability cap;
2100 info.SetCapability(cap);
2101 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2102 EXPECT_FALSE(service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData));
2103 info.SetUri("uri");
2104 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2105 EXPECT_FALSE(service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData));
2106 info.SetPrinterMake("maker");
2107 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2108 service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData);
2109 ppdData = "ppd";
2110 service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData);
2111 service->RemoveVendorPrinterFromCups(vendorName, printerId);
2112 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2113 }
2114
2115 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0135, TestSize.Level1)
2116 {
2117 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2118 EXPECT_EQ(service->TryConnectPrinterByIp(""), E_PRINT_INVALID_PRINTER);
2119 std::string param = "{\"protocol\":\"ipp\"}";
2120 EXPECT_EQ(service->TryConnectPrinterByIp(param), E_PRINT_INVALID_PRINTER);
2121 param = "{\"protocol\":\"ipp\",\"ip\":\"a.b.c.d\"}";
2122 EXPECT_EQ(service->TryConnectPrinterByIp(param), E_PRINT_SERVER_FAILURE);
2123 }
2124
2125 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0136, TestSize.Level1)
2126 {
2127 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2128 std::string vendorName = "fwk.driver";
2129 std::string printerId = "testprinter";
2130 std::string ppdData;
2131 PrinterInfo info;
2132 info.SetPrinterName(vendorName);
2133 info.SetPrinterId(printerId);
2134 PrinterCapability cap;
2135 info.SetCapability(cap);
2136 info.SetUri("uri");
2137 info.SetPrinterMake("maker");
2138 ppdData = "ppd";
2139 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2140 service->AddVendorPrinterToCupsWithPpd(vendorName, printerId, ppdData);
2141
2142 std::string vendorName1 = "fwk.driver";
2143 std::string printerId1 = "testprinter1";
2144 PrinterInfo info1;
2145 info1.SetPrinterName(vendorName1);
2146 info1.SetPrinterId(printerId1);
2147 PrinterCapability cap1;
2148 info1.SetCapability(cap1);
2149 info1.SetUri("uri1");
2150 info1.SetPrinterMake("maker1");
2151 EXPECT_TRUE(service->RenamePrinterWhenAdded(info1) == "fwk.driver 1");
2152 service->RemoveVendorPrinterFromCups(vendorName, printerId);
2153 }
2154
2155 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0137, TestSize.Level1)
2156 {
2157 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2158 PrinterInfo info;
2159 info.SetPrinterId(DEFAULT_EXT_PRINTER_ID);
2160 EXPECT_EQ(service->UpdatePrinterInSystem(info), E_PRINT_INVALID_PARAMETER);
2161
2162 nlohmann::json infoJson;
2163 infoJson["alias"] = "testPrinterName";
2164 info.SetOption(infoJson.dump());
2165 EXPECT_EQ(service->UpdatePrinterInSystem(info), E_PRINT_INVALID_PARAMETER);
2166 }
2167
2168 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0138, TestSize.Level1)
2169 {
2170 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2171 PrinterInfo info;
2172 info.SetPrinterId(DEFAULT_EXT_PRINTER_ID);
2173 std::string type = "testType";
2174 EXPECT_EQ(service->CheckUserIdInEventType(type), false);
2175 type = PRINTER_CHANGE_EVENT_TYPE;
2176 EXPECT_EQ(service->CheckUserIdInEventType(type), false);
2177 }
2178
2179 HWTEST_F(PrintServiceAbilityTest, PrintServiceAbilityTest_0139, TestSize.Level1)
2180 {
2181 auto service = std::make_shared<PrintServiceAbility>(PRINT_SERVICE_ID, true);
2182 std::string vendorName = "fwk.driver";
2183 std::string printerId = "testprinter";
2184 std::string ppdData;
2185 PrinterInfo info;
2186 info.SetPrinterId(printerId);
2187 EXPECT_FALSE(service->RemoveVendorPrinterFromCups(vendorName, printerId));
2188 EXPECT_FALSE(service->AddVendorPrinterToCupsWithSpecificPpd(vendorName, printerId, ppdData));
2189 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2190 EXPECT_FALSE(service->AddVendorPrinterToCupsWithSpecificPpd(vendorName, printerId, ppdData));
2191 PrinterCapability cap;
2192 info.SetCapability(cap);
2193 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2194 EXPECT_FALSE(service->AddVendorPrinterToCupsWithSpecificPpd(vendorName, printerId, ppdData));
2195 info.SetUri("uri");
2196 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2197 EXPECT_FALSE(service->AddVendorPrinterToCupsWithSpecificPpd(vendorName, printerId, ppdData));
2198 info.SetPrinterMake("maker");
2199 EXPECT_TRUE(service->UpdateVendorPrinterToDiscovery(vendorName, info));
2200 service->AddVendorPrinterToCupsWithSpecificPpd(vendorName, printerId, ppdData);
2201 ppdData = "ppd";
2202 service->AddVendorPrinterToCupsWithSpecificPpd(vendorName, printerId, ppdData);
2203 service->RemoveVendorPrinterFromCups(vendorName, printerId);
2204 EXPECT_TRUE(service->AddVendorPrinterToDiscovery(vendorName, info));
2205 }
2206 } // namespace OHOS::Print
2207