| Index: chrome/browser/printing/print_system_task_proxy_unittest.cc
|
| ===================================================================
|
| --- chrome/browser/printing/print_system_task_proxy_unittest.cc (revision 110345)
|
| +++ chrome/browser/printing/print_system_task_proxy_unittest.cc (working copy)
|
| @@ -13,8 +13,10 @@
|
| #include "base/scoped_temp_dir.h"
|
| #include "chrome/browser/printing/print_system_task_proxy.h"
|
| #include "printing/backend/print_backend.h"
|
| +#include "printing/print_job_constants.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +#if !defined(OS_MACOSX)
|
| namespace {
|
|
|
| // TestEntry stores the printer name and the expected number of options.
|
| @@ -84,27 +86,27 @@
|
| user_lpoptions.size()));
|
| // Specifies the test ppd data.
|
| std::string test_ppd_data;
|
| - test_ppd_data.append("*PPD-Adobe: \"4.3\"\n");
|
| - test_ppd_data.append("\n*OpenGroup: General/General\n\n");
|
| - test_ppd_data.append("*OpenUI *ColorModel/Color Model: PickOne\n");
|
| - test_ppd_data.append("*DefaultColorModel: Gray\n");
|
| - test_ppd_data.append("*ColorModel Gray/Grayscale: \"");
|
| - test_ppd_data.append("<</cupsColorSpace 0/cupsColorOrder 0>>");
|
| - test_ppd_data.append("setpagedevice\"\n");
|
| - test_ppd_data.append("*ColorModel Black/Inverted Grayscale: \"");
|
| - test_ppd_data.append("<</cupsColorSpace 3/cupsColorOrder 0>>");
|
| - test_ppd_data.append("setpagedevice\"\n");
|
| - test_ppd_data.append("*CloseUI: *ColorModel\n");
|
| - test_ppd_data.append("*OpenUI *Duplex/2-Sided Printing: PickOne\n");
|
| - test_ppd_data.append("*DefaultDuplex: DuplexTumble\n");
|
| - test_ppd_data.append("*Duplex None/Off: \"<</Duplex false>>");
|
| - test_ppd_data.append("setpagedevice\"\n");
|
| - test_ppd_data.append("*Duplex DuplexNoTumble/LongEdge: \"");
|
| - test_ppd_data.append("<</Duplex true/Tumble false>>setpagedevice\"\n");
|
| - test_ppd_data.append("*Duplex DuplexTumble/ShortEdge: \"");
|
| - test_ppd_data.append("<</Duplex true/Tumble true>>setpagedevice\"\n");
|
| - test_ppd_data.append("*CloseUI: *Duplex\n\n");
|
| - test_ppd_data.append("*CloseGroup: General\n");
|
| + test_ppd_data.append("*PPD-Adobe: \"4.3\"\n\n"
|
| + "*OpenGroup: General/General\n\n"
|
| + "*OpenUI *ColorModel/Color Model: PickOne\n"
|
| + "*DefaultColorModel: Gray\n"
|
| + "*ColorModel Gray/Grayscale: \""
|
| + "<</cupsColorSpace 0/cupsColorOrder 0>>"
|
| + "setpagedevice\"\n"
|
| + "*ColorModel Black/Inverted Grayscale: \""
|
| + "<</cupsColorSpace 3/cupsColorOrder 0>>"
|
| + "setpagedevice\"\n"
|
| + "*CloseUI: *ColorModel\n"
|
| + "*OpenUI *Duplex/2-Sided Printing: PickOne\n"
|
| + "*DefaultDuplex: DuplexTumble\n"
|
| + "*Duplex None/Off: \"<</Duplex false>>"
|
| + "setpagedevice\"\n"
|
| + "*Duplex DuplexNoTumble/LongEdge: \""
|
| + "<</Duplex true/Tumble false>>setpagedevice\"\n"
|
| + "*Duplex DuplexTumble/ShortEdge: \""
|
| + "<</Duplex true/Tumble true>>setpagedevice\"\n"
|
| + "*CloseUI: *Duplex\n\n"
|
| + "*CloseGroup: General\n");
|
|
|
| // Create a test ppd file.
|
| FilePath ppd_file_path;
|
| @@ -221,3 +223,70 @@
|
| cupsFreeOptions(num_options, options);
|
| }
|
| }
|
| +#endif // !defined(OS_MACOSX)
|
| +
|
| +// Test duplex detection code, which regressed in http://crbug.com/103999.
|
| +TEST(PrintSystemTaskProxyTest, DetectDuplexModeCUPS) {
|
| + // Specifies the test ppd data.
|
| + printing::PrinterCapsAndDefaults printer_info;
|
| + printer_info.printer_capabilities.append(
|
| + "*PPD-Adobe: \"4.3\"\n\n"
|
| + "*OpenGroup: General/General\n\n"
|
| + "*OpenUI *Duplex/Double-Sided Printing: PickOne\n"
|
| + "*DefaultDuplex: None\n"
|
| + "*Duplex None/Off: "
|
| + "\"<</Duplex false>>setpagedevice\"\n"
|
| + "*Duplex DuplexNoTumble/Long Edge (Standard): "
|
| + "\"<</Duplex true/Tumble false>>setpagedevice\"\n"
|
| + "*Duplex DuplexTumble/Short Edge (Flip): "
|
| + "\"<</Duplex true/Tumble true>>setpagedevice\"\n"
|
| + "*CloseUI: *Duplex\n\n"
|
| + "*CloseGroup: General\n");
|
| +
|
| + bool set_color_as_default = false;
|
| + bool set_duplex_as_default = false;
|
| + int printer_color_space_for_color = printing::UNKNOWN_COLOR_MODEL;
|
| + int printer_color_space_for_black = printing::UNKNOWN_COLOR_MODEL;
|
| + int default_duplex_setting_value = printing::UNKNOWN_DUPLEX_MODE;
|
| +
|
| + scoped_refptr<PrintSystemTaskProxy> test_proxy;
|
| + bool res = test_proxy->GetPrinterCapabilitiesCUPS(
|
| + printer_info,
|
| + "InvalidPrinter",
|
| + &set_color_as_default,
|
| + &printer_color_space_for_color,
|
| + &printer_color_space_for_black,
|
| + &set_duplex_as_default,
|
| + &default_duplex_setting_value);
|
| + ASSERT_TRUE(res);
|
| + EXPECT_FALSE(set_duplex_as_default);
|
| + EXPECT_EQ(printing::SIMPLEX, default_duplex_setting_value);
|
| +}
|
| +
|
| +TEST(PrintSystemTaskProxyTest, DetectNoDuplexModeCUPS) {
|
| + // Specifies the test ppd data.
|
| + printing::PrinterCapsAndDefaults printer_info;
|
| + printer_info.printer_capabilities.append(
|
| + "*PPD-Adobe: \"4.3\"\n\n"
|
| + "*OpenGroup: General/General\n\n"
|
| + "*CloseGroup: General\n");
|
| +
|
| + bool set_color_as_default = false;
|
| + bool set_duplex_as_default = false;
|
| + int printer_color_space_for_color = printing::UNKNOWN_COLOR_MODEL;
|
| + int printer_color_space_for_black = printing::UNKNOWN_COLOR_MODEL;
|
| + int default_duplex_setting_value = printing::UNKNOWN_DUPLEX_MODE;
|
| +
|
| + scoped_refptr<PrintSystemTaskProxy> test_proxy;
|
| + bool res = test_proxy->GetPrinterCapabilitiesCUPS(
|
| + printer_info,
|
| + "InvalidPrinter",
|
| + &set_color_as_default,
|
| + &printer_color_space_for_color,
|
| + &printer_color_space_for_black,
|
| + &set_duplex_as_default,
|
| + &default_duplex_setting_value);
|
| + ASSERT_TRUE(res);
|
| + EXPECT_FALSE(set_duplex_as_default);
|
| + EXPECT_EQ(printing::UNKNOWN_DUPLEX_MODE, default_duplex_setting_value);
|
| +}
|
|
|