mirror of
https://gitee.com/openharmony/print_print_fwk
synced 2025-02-17 00:39:13 +00:00
代码检视修改 Signed-off-by:baozewei@huawei.com
Signed-off-by: b30052170 <baozewei@huawei.com>
This commit is contained in:
parent
ee052752de
commit
33a8ed660b
@ -229,27 +229,27 @@ void ParseDefaultPageMargin(const nlohmann::json &cupsOpt, Print_Margin &default
|
||||
|
||||
void ParseMediaOpt(const nlohmann::json &cupsOpt, Print_PrinterInfo &nativePrinterInfo)
|
||||
{
|
||||
if (cupsOpt.contains("defaultPageSizeId")) {
|
||||
if (cupsOpt.contains("defaultPageSizeId") && cupsOpt["defaultPageSizeId"].is_string()) {
|
||||
std::string defaultPageSizeId = cupsOpt["defaultPageSizeId"].get<std::string>();
|
||||
PRINT_HILOGD("defaultPageSizeId %{public}s", defaultPageSizeId.c_str());
|
||||
nativePrinterInfo.defaultValue.defaultPageSizeId = CopyString(defaultPageSizeId);
|
||||
}
|
||||
if (cupsOpt.contains("media-type-supported")) {
|
||||
if (cupsOpt.contains("media-type-supported") && cupsOpt["media-type-supported"].is_string()) {
|
||||
std::string mediaTypeSupported = cupsOpt["media-type-supported"].get<std::string>();
|
||||
PRINT_HILOGD("cupsOptionsStr media-type-supported %{public}s", mediaTypeSupported.c_str());
|
||||
nativePrinterInfo.capability.supportedMediaTypes = CopyString(mediaTypeSupported);
|
||||
}
|
||||
if (cupsOpt.contains("media-type-default")) {
|
||||
if (cupsOpt.contains("media-type-default") && cupsOpt["media-type-default"].is_string()) {
|
||||
std::string mediaTypeDefault = cupsOpt["media-type-default"].get<std::string>();
|
||||
PRINT_HILOGD("cupsOptionsStr media-type-default %{public}s", mediaTypeDefault.c_str());
|
||||
nativePrinterInfo.defaultValue.defaultMediaType = CopyString(mediaTypeDefault);
|
||||
}
|
||||
if (cupsOpt.contains("media-source-default")) {
|
||||
if (cupsOpt.contains("media-source-default") && cupsOpt["media-source-default"].is_string()) {
|
||||
std::string mediaSourceDefault = cupsOpt["media-source-default"].get<std::string>();
|
||||
PRINT_HILOGD("cupsOptionsStr media-source-default %{public}s", mediaSourceDefault.c_str());
|
||||
nativePrinterInfo.defaultValue.defaultPaperSource = CopyString(mediaSourceDefault);
|
||||
}
|
||||
if (cupsOpt.contains("media-source-supported")) {
|
||||
if (cupsOpt.contains("media-source-supported") && cupsOpt["media-source-supported"].is_string()) {
|
||||
std::string mediaSourceSupported = cupsOpt["media-source-supported"].get<std::string>();
|
||||
PRINT_HILOGD("cupsOptionsStr media-source-supported %{public}s", mediaSourceSupported.c_str());
|
||||
nativePrinterInfo.capability.supportedPaperSources = CopyString(mediaSourceSupported);
|
||||
@ -428,7 +428,8 @@ int32_t ParseInfoOption(const std::string &infoOption, Print_PrinterInfo &native
|
||||
return E_PRINT_INVALID_PARAMETER;
|
||||
}
|
||||
nlohmann::json infoJson = json::parse(infoOption);
|
||||
if (!infoJson.contains("printerUri") || !infoJson.contains("make")) {
|
||||
if (!infoJson.contains("printerUri") || !infoJson["printerUri"].is_string() ||
|
||||
!infoJson.contains("make") || !infoJson["make"].is_string()) {
|
||||
PRINT_HILOGW("The infoJson does not have a necessary attribute.");
|
||||
return E_PRINT_INVALID_PARAMETER;
|
||||
}
|
||||
|
@ -35,16 +35,16 @@ public:
|
||||
static PreferenceSetting BuildPreferenceSettingFromJson(const json& printerAttr)
|
||||
{
|
||||
PreferenceSetting preferenceSetting;
|
||||
if (printerAttr.contains("pagesizeId")) {
|
||||
if (printerAttr.contains("pagesizeId") && printerAttr["pagesizeId"].is_string()) {
|
||||
preferenceSetting.pagesizeId = printerAttr.at("pagesizeId").get<std::string>();
|
||||
}
|
||||
if (printerAttr.contains("orientation")) {
|
||||
if (printerAttr.contains("orientation") && printerAttr["orientation"].is_string()) {
|
||||
preferenceSetting.orientation = printerAttr.at("orientation").get<std::string>();
|
||||
}
|
||||
if (printerAttr.contains("duplex")) {
|
||||
if (printerAttr.contains("duplex") && printerAttr["duplex"].is_string()) {
|
||||
preferenceSetting.duplex = printerAttr.at("duplex").get<std::string>();
|
||||
}
|
||||
if (printerAttr.contains("quality")) {
|
||||
if (printerAttr.contains("quality") && printerAttr["quality"].is_string()) {
|
||||
preferenceSetting.quality = printerAttr.at("quality").get<std::string>();
|
||||
}
|
||||
return preferenceSetting;
|
||||
|
@ -133,6 +133,7 @@ private:
|
||||
void JobCompleteCallback();
|
||||
|
||||
void UpdateBorderlessJobParameter(json& optionJson, JobParameters *params);
|
||||
void UpdateJobParameterByOption(json& optionJson, JobParameters *params);
|
||||
JobParameters* BuildJobParameters(const PrintJob &jobInfo);
|
||||
std::string GetColorString(uint32_t colorCode);
|
||||
std::string GetMedieSize(const PrintJob &jobInfo);
|
||||
|
@ -1533,6 +1533,31 @@ void PrintCupsClient::UpdateBorderlessJobParameter(json& optionJson, JobParamete
|
||||
}
|
||||
}
|
||||
|
||||
void PrintCupsClient::UpdateJobParameterByOption(json& optionJson, JobParameters *params)
|
||||
{
|
||||
if (optionJson.contains("cupsOptions") && optionJson["cupsOptions"].is_string()) {
|
||||
params->printerAttrsOption_cupsOption = optionJson["cupsOptions"];
|
||||
}
|
||||
|
||||
if (optionJson.contains("printQuality") && optionJson["printQuality"].is_string()) {
|
||||
params->printQuality = optionJson["printQuality"].get<std::string>();
|
||||
} else {
|
||||
params->printQuality = CUPS_PRINT_QUALITY_NORMAL;
|
||||
}
|
||||
|
||||
if (optionJson.contains("jobName") && optionJson["jobName"].is_string()) {
|
||||
params->jobName = optionJson["jobName"].get<std::string>();
|
||||
} else {
|
||||
params->jobName = DEFAULT_JOB_NAME;
|
||||
}
|
||||
|
||||
if (optionJson.contains("mediaType") && optionJson["mediaType"].is_string()) {
|
||||
params->mediaType = optionJson["mediaType"].get<std::string>();
|
||||
} else {
|
||||
params->mediaType = CUPS_MEDIA_TYPE_PLAIN;
|
||||
}
|
||||
}
|
||||
|
||||
JobParameters* PrintCupsClient::BuildJobParameters(const PrintJob &jobInfo)
|
||||
{
|
||||
JobParameters *params = nullptr;
|
||||
@ -1547,8 +1572,9 @@ JobParameters* PrintCupsClient::BuildJobParameters(const PrintJob &jobInfo)
|
||||
}
|
||||
json optionJson = json::parse(option);
|
||||
PRINT_HILOGD("test optionJson: %{private}s", optionJson.dump().c_str());
|
||||
if (!optionJson.contains("printerUri") || !optionJson.contains("printerName")
|
||||
|| !optionJson.contains("documentFormat")) {
|
||||
if (!optionJson.contains("printerUri") || !optionJson["printerUri"].is_string() ||
|
||||
!optionJson.contains("printerName") || !optionJson["printerName"].is_string() ||
|
||||
!optionJson.contains("documentFormat") || !optionJson["documentFormat"].is_string()) {
|
||||
PRINT_HILOGE("The option does not have a necessary attribute.");
|
||||
return params;
|
||||
}
|
||||
@ -1568,18 +1594,8 @@ JobParameters* PrintCupsClient::BuildJobParameters(const PrintJob &jobInfo)
|
||||
params->printerName = PrintUtil::StandardizePrinterName(optionJson["printerName"]);
|
||||
params->printerUri = optionJson["printerUri"];
|
||||
params->documentFormat = optionJson["documentFormat"];
|
||||
if (optionJson.contains("cupsOptions")) {
|
||||
params->printerAttrsOption_cupsOption = optionJson["cupsOptions"];
|
||||
}
|
||||
UpdateJobParameterByOption(optionJson, params);
|
||||
UpdateBorderlessJobParameter(optionJson, params);
|
||||
if (optionJson.contains("printQuality") && optionJson["printQuality"].is_string()) {
|
||||
params->printQuality = optionJson["printQuality"].get<std::string>();
|
||||
} else {
|
||||
params->printQuality = CUPS_PRINT_QUALITY_NORMAL;
|
||||
}
|
||||
params->jobName = optionJson.contains("jobName") ? optionJson["jobName"].get<std::string>() : DEFAULT_JOB_NAME;
|
||||
params->mediaType = optionJson.contains("mediaType") ?
|
||||
optionJson["mediaType"].get<std::string>() : CUPS_MEDIA_TYPE_PLAIN;
|
||||
params->serviceAbility = PrintServiceAbility::GetInstance();
|
||||
return params;
|
||||
}
|
||||
|
@ -143,7 +143,7 @@ std::string PrintUsbManager::QueryPrinterInfoFromStringDescriptor(
|
||||
uint16_t index = USB_INDEX_LANGUAGE_ID_ENGLISH;
|
||||
int32_t timeOut = HTTP_COMMON_CONST_VALUE_500;
|
||||
const HDI::Usb::V1_0::UsbCtrlTransfer tctrl = {requestType, request, value, index, timeOut};
|
||||
std::vector<uint8_t> bufferData(HTTP_COMMON_CONST_VALUE_100, 0);
|
||||
std::vector<uint8_t> bufferData(USB_CONTROLTRANSFER_READ_TIMEOUT, 0);
|
||||
int32_t ret = 0;
|
||||
if (isUsbEnable) {
|
||||
ret = UsbSrvClient::GetInstance().ControlTransfer(usbDevicePipe, tctrl, bufferData);
|
||||
|
@ -1627,5 +1627,45 @@ HWTEST_F(PrintCupsClientTest, PrintCupsClientTest_0077, TestSize.Level1)
|
||||
printCupsClient.DiscoverUsbPrinters(printers);
|
||||
EXPECT_EQ(printers.size(), 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* @tc.name: PrintCupsClientTest_0078
|
||||
* @tc.desc: BuildJobParameters
|
||||
* @tc.type: FUNC
|
||||
* @tc.require:
|
||||
*/
|
||||
HWTEST_F(PrintCupsClientTest, PrintCupsClientTest_0078, TestSize.Level1)
|
||||
{
|
||||
OHOS::Print::PrintCupsClient printCupsClient;
|
||||
PrintJob testJob;
|
||||
testJob.SetJobId(GetDefaultJobId());
|
||||
std::vector<uint32_t> files = {1};
|
||||
testJob.SetFdList(files);
|
||||
OHOS::Print::PrintPageSize pageSize;
|
||||
pageSize.SetId("pgid-1234");
|
||||
testJob.SetPageSize(pageSize);
|
||||
testJob.SetPrinterId("printid-1234");
|
||||
testJob.SetOption(R"({"key": "value"})");
|
||||
|
||||
json optionJson = json::parse(testJob.GetOption());
|
||||
optionJson["printerUri"] = 1;
|
||||
optionJson["printerName"] = "printer1";
|
||||
optionJson["documentFormat"] = "application/pdf";
|
||||
testJob.SetOption(optionJson.dump());
|
||||
JobParameters *jobParams = printCupsClient.BuildJobParameters(testJob);
|
||||
EXPECT_EQ(jobParams->printerUri, optionJson["printerUri"]);
|
||||
|
||||
optionJson["printerUri"] = "ipp://192.168.0.1:111/ipp/print";
|
||||
optionJson["printerName"] = 1;
|
||||
testJob.SetOption(optionJson.dump());
|
||||
JobParameters *jobParams = printCupsClient.BuildJobParameters(testJob);
|
||||
EXPECT_EQ(jobParams->printerName, PrintUtil::StandardizePrinterName(optionJson["printerName"]));
|
||||
|
||||
optionJson["printerName"] = "printer1";
|
||||
optionJson["documentFormat"] = 1;
|
||||
testJob.SetOption(optionJson.dump());
|
||||
JobParameters *jobParams = printCupsClient.BuildJobParameters(testJob);
|
||||
EXPECT_EQ(jobParams->documentFormat, optionJson["documentFormat"]);
|
||||
}
|
||||
} // namespace Print
|
||||
} // namespace OHOS
|
@ -157,6 +157,7 @@ const int USB_WRITE_INTERVAL = 50;
|
||||
const int CPP_HTTP_OK = 1;
|
||||
const int CPP_HTTP_FAIL = 0;
|
||||
const int REQID_OPERAID_LEN = 8;
|
||||
const int USB_CONTROLTRANSFER_READ_TIMEOUT = 2000;
|
||||
|
||||
const char HTTP_MSG_CHAR_1 = '1';
|
||||
const char HTTP_MSG_CHAR_2E = '.';
|
||||
|
Loading…
x
Reference in New Issue
Block a user