Commit c471f36c authored by Lei Zhang's avatar Lei Zhang Committed by Commit Bot

Simplify printing::GetPrintTicket().

This function takes a PrinterType and a separate boolean to indicate the
printer is a cloud printer. This was likely written before enum
PrinterType gained a |kCloudPrinter| enum value. Now that the
|kCloudPrinter| value exists, just use that and get rid of the separate
boolean.

Change-Id: I14ca569167d49bf273c02e4d24cdaa6c17e9dc2b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1838624
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#702742}
parent 8895f360
......@@ -16,9 +16,10 @@ namespace printing {
const char kDummyPrinterName[] = "DefaultPrinter";
base::Value GetPrintTicket(PrinterType type, bool cloud) {
bool is_privet_printer = !cloud && type == kPrivetPrinter;
bool is_extension_printer = !cloud && type == kExtensionPrinter;
base::Value GetPrintTicket(PrinterType type) {
bool is_cloud_printer = type == kCloudPrinter;
bool is_privet_printer = type == kPrivetPrinter;
bool is_extension_printer = type == kExtensionPrinter;
base::Value ticket(base::Value::Type::DICTIONARY);
......@@ -41,8 +42,8 @@ base::Value GetPrintTicket(PrinterType type, bool cloud) {
ticket.SetBoolKey(kSettingShouldPrintSelectionOnly, false);
ticket.SetBoolKey(kSettingPreviewModifiable, true);
ticket.SetBoolKey(kSettingPreviewIsPdf, false);
ticket.SetBoolKey(kSettingPrintToPDF, !cloud && type == kPdfPrinter);
ticket.SetBoolKey(kSettingCloudPrintDialog, cloud);
ticket.SetBoolKey(kSettingPrintToPDF, type == kPdfPrinter);
ticket.SetBoolKey(kSettingCloudPrintDialog, is_cloud_printer);
ticket.SetBoolKey(kSettingPrintWithPrivet, is_privet_printer);
ticket.SetBoolKey(kSettingPrintWithExtension, is_extension_printer);
ticket.SetBoolKey(kSettingRasterizePdf, false);
......@@ -56,7 +57,7 @@ base::Value GetPrintTicket(PrinterType type, bool cloud) {
ticket.SetIntKey(kSettingPageHeight, 279400);
ticket.SetBoolKey(kSettingShowSystemDialog, false);
if (cloud)
if (is_cloud_printer)
ticket.SetStringKey(kSettingCloudPrintId, kDummyPrinterName);
if (is_privet_printer || is_extension_printer) {
......
......@@ -18,7 +18,7 @@ const int kTestPrinterDpi = 600;
// Creates a print ticket with some default values. Based on ticket creation in
// chrome/browser/resources/print_preview/native_layer.js.
base::Value GetPrintTicket(PrinterType type, bool cloud);
base::Value GetPrintTicket(PrinterType type);
} // namespace printing
......
......@@ -54,7 +54,7 @@ TEST_F(PrintViewManagerBasicTest, CancelJobDuringDestruction) {
auto query = queue->CreatePrinterQuery(main_rfh()->GetProcess()->GetID(),
main_rfh()->GetRoutingID());
base::RunLoop runloop;
query->SetSettings(GetPrintTicket(printing::kLocalPrinter, false),
query->SetSettings(GetPrintTicket(printing::kLocalPrinter),
runloop.QuitClosure());
runloop.Run();
auto cookie = query->cookie();
......
......@@ -144,7 +144,7 @@ TEST_F(PrintViewManagerTest, PostScriptHasCorrectOffsets) {
print_view_manager->PrintPreviewNow(web_contents->GetMainFrame(), false);
base::Value print_ticket = GetPrintTicket(printing::kLocalPrinter, false);
base::Value print_ticket = GetPrintTicket(printing::kLocalPrinter);
const char kTestData[] = "abc";
auto print_data = base::MakeRefCounted<base::RefCountedStaticMemory>(
kTestData, sizeof(kTestData));
......
......@@ -48,9 +48,13 @@ namespace {
const char kDummyInitiatorName[] = "TestInitiator";
const char kTestData[] = "abc";
// Array of all PrinterType values.
const PrinterType kAllTypes[] = {kPrivetPrinter, kExtensionPrinter, kPdfPrinter,
kLocalPrinter};
// Array of all PrinterTypes.
constexpr PrinterType kAllTypes[] = {kPrivetPrinter, kExtensionPrinter,
kPdfPrinter, kLocalPrinter, kCloudPrinter};
// Array of all PrinterTypes that have working PrinterHandlers.
constexpr PrinterType kAllSupportedTypes[] = {kPrivetPrinter, kExtensionPrinter,
kPdfPrinter, kLocalPrinter};
struct PrinterInfo {
std::string id;
......@@ -91,7 +95,7 @@ PrinterInfo GetEmptyPrinterInfo() {
}
base::Value GetPrintPreviewTicket() {
base::Value print_ticket = GetPrintTicket(kLocalPrinter, false);
base::Value print_ticket = GetPrintTicket(kLocalPrinter);
// Make some modifications to match a preview print ticket.
print_ticket.SetKey(kSettingPageRange, base::Value());
......@@ -553,8 +557,8 @@ TEST_F(PrintPreviewHandlerTest, GetPrinterCapabilities) {
// Check all four printer types that implement
// PrinterHandler::StartGetCapability().
for (size_t i = 0; i < base::size(kAllTypes); i++) {
PrinterType type = kAllTypes[i];
for (size_t i = 0; i < base::size(kAllSupportedTypes); i++) {
PrinterType type = kAllSupportedTypes[i];
handler()->reset_calls();
base::Value args(base::Value::Type::LIST);
std::string callback_id_in =
......@@ -582,13 +586,13 @@ TEST_F(PrintPreviewHandlerTest, GetPrinterCapabilities) {
// Run through the loop again, this time with a printer that has no
// capabilities.
for (size_t i = 0; i < base::size(kAllTypes); i++) {
PrinterType type = kAllTypes[i];
for (size_t i = 0; i < base::size(kAllSupportedTypes); i++) {
PrinterType type = kAllSupportedTypes[i];
handler()->reset_calls();
base::Value args(base::Value::Type::LIST);
std::string callback_id_in =
"test-callback-id-" +
base::NumberToString(i + base::size(kAllTypes) + 1);
base::NumberToString(i + base::size(kAllSupportedTypes) + 1);
args.Append(callback_id_in);
args.Append("EmptyPrinter");
args.Append(type);
......@@ -597,9 +601,10 @@ TEST_F(PrintPreviewHandlerTest, GetPrinterCapabilities) {
handler()->HandleGetPrinterCapabilities(list_args.get());
EXPECT_TRUE(handler()->CalledOnlyForType(type));
// Start with 1 call from initial settings plus base::size(kAllTypes) from
// first loop, then add 1 more for each loop iteration.
ASSERT_EQ(1u + base::size(kAllTypes) + (i + 1),
// Start with 1 call from initial settings plus
// base::size(kAllSupportedTypes) from first loop, then add 1 more for each
// loop iteration.
ASSERT_EQ(1u + base::size(kAllSupportedTypes) + (i + 1),
web_ui()->call_data().size());
// Verify printer capabilities promise was rejected.
......@@ -611,17 +616,15 @@ TEST_F(PrintPreviewHandlerTest, GetPrinterCapabilities) {
TEST_F(PrintPreviewHandlerTest, Print) {
Initialize();
// All four printer types can print, as well as cloud printers.
for (size_t i = 0; i <= base::size(kAllTypes); i++) {
// Also check cloud print. Use dummy type value of Privet (will be ignored).
bool cloud = i == base::size(kAllTypes);
PrinterType type = cloud ? kPrivetPrinter : kAllTypes[i];
// All printer types can print.
for (size_t i = 0; i < base::size(kAllTypes); i++) {
PrinterType type = kAllTypes[i];
handler()->reset_calls();
base::Value args(base::Value::Type::LIST);
std::string callback_id_in =
"test-callback-id-" + base::NumberToString(i + 1);
args.Append(callback_id_in);
base::Value print_ticket = GetPrintTicket(type, cloud);
base::Value print_ticket = GetPrintTicket(type);
std::string json;
base::JSONWriter::Write(print_ticket, &json);
args.Append(json);
......@@ -631,7 +634,7 @@ TEST_F(PrintPreviewHandlerTest, Print) {
// Verify correct PrinterHandler was called or that no handler was requested
// for cloud printers.
if (cloud) {
if (type == kCloudPrinter) {
EXPECT_TRUE(handler()->NotCalled());
} else {
EXPECT_TRUE(handler()->CalledOnlyForType(type));
......@@ -642,7 +645,7 @@ TEST_F(PrintPreviewHandlerTest, Print) {
CheckWebUIResponse(data, callback_id_in, true);
// For cloud print, should also get the encoded data back as a string.
if (cloud) {
if (type == kCloudPrinter) {
std::string print_data;
ASSERT_TRUE(data.arg3()->GetAsString(&print_data));
std::string expected_data;
......@@ -789,8 +792,8 @@ TEST_F(PrintPreviewHandlerFailingTest, GetPrinterCapabilities) {
// Check all four printer types that implement
// PrinterHandler::StartGetCapability().
for (size_t i = 0; i < base::size(kAllTypes); i++) {
PrinterType type = kAllTypes[i];
for (size_t i = 0; i < base::size(kAllSupportedTypes); i++) {
PrinterType type = kAllSupportedTypes[i];
handler()->reset_calls();
base::Value args(base::Value::Type::LIST);
std::string callback_id_in =
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment