Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: printing/backend/cups_helper_unittest.cc

Issue 2739133002: Better detect options for Brother CUPS printers. (Closed)
Patch Set: Fix more color checks Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « printing/backend/cups_helper.cc ('k') | printing/print_job_constants.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "printing/backend/cups_helper.h" 5 #include "printing/backend/cups_helper.h"
6 #include "printing/backend/print_backend.h" 6 #include "printing/backend/print_backend.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorDuplexLongEdge) { 9 TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorDuplexShortEdge) {
10 const char kTestPpdData[] = 10 const char kTestPpdData[] =
11 "*PPD-Adobe: \"4.3\"\n\n" 11 "*PPD-Adobe: \"4.3\"\n\n"
12 "*OpenGroup: General/General\n\n" 12 "*OpenGroup: General/General\n\n"
13 "*OpenUI *ColorModel/Color Model: PickOne\n" 13 "*OpenUI *ColorModel/Color Model: PickOne\n"
14 "*DefaultColorModel: Gray\n" 14 "*DefaultColorModel: Gray\n"
15 "*ColorModel Gray/Grayscale: \"" 15 "*ColorModel Gray/Grayscale: \""
16 "<</cupsColorSpace 0/cupsColorOrder 0>>" 16 "<</cupsColorSpace 0/cupsColorOrder 0>>"
17 "setpagedevice\"\n" 17 "setpagedevice\"\n"
18 "*ColorModel Black/Inverted Grayscale: \"" 18 "*ColorModel Black/Inverted Grayscale: \""
19 "<</cupsColorSpace 3/cupsColorOrder 0>>" 19 "<</cupsColorSpace 3/cupsColorOrder 0>>"
20 "setpagedevice\"\n" 20 "setpagedevice\"\n"
21 "*CloseUI: *ColorModel\n" 21 "*CloseUI: *ColorModel\n"
22 "*OpenUI *Duplex/2-Sided Printing: PickOne\n" 22 "*OpenUI *Duplex/2-Sided Printing: PickOne\n"
23 "*DefaultDuplex: DuplexTumble\n" 23 "*DefaultDuplex: DuplexTumble\n"
24 "*Duplex None/Off: \"<</Duplex false>>" 24 "*Duplex None/Off: \"<</Duplex false>>"
25 "setpagedevice\"\n" 25 "setpagedevice\"\n"
26 "*Duplex DuplexNoTumble/LongEdge: \"" 26 "*Duplex DuplexNoTumble/LongEdge: \""
27 "<</Duplex true/Tumble false>>setpagedevice\"\n" 27 "<</Duplex true/Tumble false>>setpagedevice\"\n"
28 "*Duplex DuplexTumble/ShortEdge: \"" 28 "*Duplex DuplexTumble/ShortEdge: \""
29 "<</Duplex true/Tumble true>>setpagedevice\"\n" 29 "<</Duplex true/Tumble true>>setpagedevice\"\n"
30 "*CloseUI: *Duplex\n\n" 30 "*CloseUI: *Duplex\n\n"
31 "*CloseGroup: General\n"; 31 "*CloseGroup: General\n";
32 32
33 printing::PrinterSemanticCapsAndDefaults caps; 33 printing::PrinterSemanticCapsAndDefaults caps;
34 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps)); 34 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps));
35 EXPECT_TRUE(caps.collate_capable); 35 EXPECT_TRUE(caps.collate_capable);
36 EXPECT_TRUE(caps.collate_default); 36 EXPECT_TRUE(caps.collate_default);
37 EXPECT_TRUE(caps.copies_capable); 37 EXPECT_TRUE(caps.copies_capable);
38 EXPECT_TRUE(caps.duplex_capable); 38 EXPECT_TRUE(caps.duplex_capable);
39 EXPECT_EQ(printing::LONG_EDGE, caps.duplex_default); 39 EXPECT_EQ(printing::SHORT_EDGE, caps.duplex_default);
40 EXPECT_FALSE(caps.color_changeable); 40 EXPECT_FALSE(caps.color_changeable);
41 EXPECT_FALSE(caps.color_default); 41 EXPECT_FALSE(caps.color_default);
42 } 42 }
43 43
44 // Test duplex detection code, which regressed in http://crbug.com/103999. 44 // Test duplex detection code, which regressed in http://crbug.com/103999.
45 TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorDuplexSimples) { 45 TEST(PrintBackendCupsHelperTest, TestPpdParsingNoColorDuplexSimples) {
46 const char kTestPpdData[] = 46 const char kTestPpdData[] =
47 "*PPD-Adobe: \"4.3\"\n\n" 47 "*PPD-Adobe: \"4.3\"\n\n"
48 "*OpenGroup: General/General\n\n" 48 "*OpenGroup: General/General\n\n"
49 "*OpenUI *Duplex/Double-Sided Printing: PickOne\n" 49 "*OpenUI *Duplex/Double-Sided Printing: PickOne\n"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps)); 87 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps));
88 EXPECT_TRUE(caps.collate_capable); 88 EXPECT_TRUE(caps.collate_capable);
89 EXPECT_TRUE(caps.collate_default); 89 EXPECT_TRUE(caps.collate_default);
90 EXPECT_TRUE(caps.copies_capable); 90 EXPECT_TRUE(caps.copies_capable);
91 EXPECT_FALSE(caps.duplex_capable); 91 EXPECT_FALSE(caps.duplex_capable);
92 EXPECT_EQ(printing::UNKNOWN_DUPLEX_MODE, caps.duplex_default); 92 EXPECT_EQ(printing::UNKNOWN_DUPLEX_MODE, caps.duplex_default);
93 EXPECT_FALSE(caps.color_changeable); 93 EXPECT_FALSE(caps.color_changeable);
94 EXPECT_FALSE(caps.color_default); 94 EXPECT_FALSE(caps.color_default);
95 } 95 }
96 96
97 TEST(PrintBackendCupsHelperTest, TestPpdParsingColorTrueDuplexLongEdge) { 97 TEST(PrintBackendCupsHelperTest, TestPpdParsingColorTrueDuplexShortEdge) {
98 const char kTestPpdData[] = 98 const char kTestPpdData[] =
99 "*PPD-Adobe: \"4.3\"\n\n" 99 "*PPD-Adobe: \"4.3\"\n\n"
100 "*ColorDevice: True\n" 100 "*ColorDevice: True\n"
101 "*DefaultColorSpace: CMYK\n\n" 101 "*DefaultColorSpace: CMYK\n\n"
102 "*OpenGroup: General/General\n\n" 102 "*OpenGroup: General/General\n\n"
103 "*OpenUI *ColorModel/Color Model: PickOne\n" 103 "*OpenUI *ColorModel/Color Model: PickOne\n"
104 "*DefaultColorModel: CMYK\n" 104 "*DefaultColorModel: CMYK\n"
105 "*ColorModel CMYK/Color: " 105 "*ColorModel CMYK/Color: "
106 "\"(cmyk) RCsetdevicecolor\"\n" 106 "\"(cmyk) RCsetdevicecolor\"\n"
107 "*ColorModel Gray/Black and White: " 107 "*ColorModel Gray/Black and White: "
108 "\"(gray) RCsetdevicecolor\"\n" 108 "\"(gray) RCsetdevicecolor\"\n"
109 "*CloseUI: *ColorModel\n" 109 "*CloseUI: *ColorModel\n"
110 "*OpenUI *Duplex/2-Sided Printing: PickOne\n" 110 "*OpenUI *Duplex/2-Sided Printing: PickOne\n"
111 "*DefaultDuplex: DuplexTumble\n" 111 "*DefaultDuplex: DuplexTumble\n"
112 "*Duplex None/Off: \"<</Duplex false>>" 112 "*Duplex None/Off: \"<</Duplex false>>"
113 "setpagedevice\"\n" 113 "setpagedevice\"\n"
114 "*Duplex DuplexNoTumble/LongEdge: \"" 114 "*Duplex DuplexNoTumble/LongEdge: \""
115 "<</Duplex true/Tumble false>>setpagedevice\"\n" 115 "<</Duplex true/Tumble false>>setpagedevice\"\n"
116 "*Duplex DuplexTumble/ShortEdge: \"" 116 "*Duplex DuplexTumble/ShortEdge: \""
117 "<</Duplex true/Tumble true>>setpagedevice\"\n" 117 "<</Duplex true/Tumble true>>setpagedevice\"\n"
118 "*CloseUI: *Duplex\n\n" 118 "*CloseUI: *Duplex\n\n"
119 "*CloseGroup: General\n"; 119 "*CloseGroup: General\n";
120 120
121 printing::PrinterSemanticCapsAndDefaults caps; 121 printing::PrinterSemanticCapsAndDefaults caps;
122 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps)); 122 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps));
123 EXPECT_TRUE(caps.collate_capable); 123 EXPECT_TRUE(caps.collate_capable);
124 EXPECT_TRUE(caps.collate_default); 124 EXPECT_TRUE(caps.collate_default);
125 EXPECT_TRUE(caps.copies_capable); 125 EXPECT_TRUE(caps.copies_capable);
126 EXPECT_TRUE(caps.duplex_capable); 126 EXPECT_TRUE(caps.duplex_capable);
127 EXPECT_EQ(printing::LONG_EDGE, caps.duplex_default); 127 EXPECT_EQ(printing::SHORT_EDGE, caps.duplex_default);
128 EXPECT_TRUE(caps.color_changeable); 128 EXPECT_TRUE(caps.color_changeable);
129 EXPECT_TRUE(caps.color_default); 129 EXPECT_TRUE(caps.color_default);
130 } 130 }
131 131
132 TEST(PrintBackendCupsHelperTest, TestPpdParsingColorFalseDuplexLongEdge) { 132 TEST(PrintBackendCupsHelperTest, TestPpdParsingColorFalseDuplexLongEdge) {
133 const char kTestPpdData[] = 133 const char kTestPpdData[] =
134 "*PPD-Adobe: \"4.3\"\n\n" 134 "*PPD-Adobe: \"4.3\"\n\n"
135 "*ColorDevice: True\n" 135 "*ColorDevice: True\n"
136 "*DefaultColorSpace: CMYK\n\n" 136 "*DefaultColorSpace: CMYK\n\n"
137 "*OpenGroup: General/General\n\n" 137 "*OpenGroup: General/General\n\n"
138 "*OpenUI *ColorModel/Color Model: PickOne\n" 138 "*OpenUI *ColorModel/Color Model: PickOne\n"
139 "*DefaultColorModel: Grayscale\n" 139 "*DefaultColorModel: Grayscale\n"
140 "*ColorModel Color/Color: " 140 "*ColorModel Color/Color: "
141 "\"%% FoomaticRIPOptionSetting: ColorModel=Color\"\n" 141 "\"%% FoomaticRIPOptionSetting: ColorModel=Color\"\n"
142 "*FoomaticRIPOptionSetting ColorModel=Color: " 142 "*FoomaticRIPOptionSetting ColorModel=Color: "
143 "\"JCLDatamode=Color GSCmdLine=Color\"\n" 143 "\"JCLDatamode=Color GSCmdLine=Color\"\n"
144 "*ColorModel Grayscale/Grayscale: " 144 "*ColorModel Grayscale/Grayscale: "
145 "\"%% FoomaticRIPOptionSetting: ColorModel=Grayscale\"\n" 145 "\"%% FoomaticRIPOptionSetting: ColorModel=Grayscale\"\n"
146 "*FoomaticRIPOptionSetting ColorModel=Grayscale: " 146 "*FoomaticRIPOptionSetting ColorModel=Grayscale: "
147 "\"JCLDatamode=Grayscale GSCmdLine=Grayscale\"\n" 147 "\"JCLDatamode=Grayscale GSCmdLine=Grayscale\"\n"
148 "*CloseUI: *ColorModel\n" 148 "*CloseUI: *ColorModel\n"
149 "*OpenUI *Duplex/2-Sided Printing: PickOne\n" 149 "*OpenUI *Duplex/2-Sided Printing: PickOne\n"
150 "*DefaultDuplex: DuplexTumble\n" 150 "*DefaultDuplex: DuplexNoTumble\n"
151 "*Duplex None/Off: \"<</Duplex false>>" 151 "*Duplex None/Off: \"<</Duplex false>>"
152 "setpagedevice\"\n" 152 "setpagedevice\"\n"
153 "*Duplex DuplexNoTumble/LongEdge: \"" 153 "*Duplex DuplexNoTumble/LongEdge: \""
154 "<</Duplex true/Tumble false>>setpagedevice\"\n" 154 "<</Duplex true/Tumble false>>setpagedevice\"\n"
155 "*Duplex DuplexTumble/ShortEdge: \"" 155 "*Duplex DuplexTumble/ShortEdge: \""
156 "<</Duplex true/Tumble true>>setpagedevice\"\n" 156 "<</Duplex true/Tumble true>>setpagedevice\"\n"
157 "*CloseUI: *Duplex\n\n" 157 "*CloseUI: *Duplex\n\n"
158 "*CloseGroup: General\n"; 158 "*CloseGroup: General\n";
159 159
160 printing::PrinterSemanticCapsAndDefaults caps; 160 printing::PrinterSemanticCapsAndDefaults caps;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 ASSERT_EQ(2UL, caps.papers.size()); 192 ASSERT_EQ(2UL, caps.papers.size());
193 EXPECT_EQ("Letter", caps.papers[0].vendor_id); 193 EXPECT_EQ("Letter", caps.papers[0].vendor_id);
194 EXPECT_EQ("US Letter", caps.papers[0].display_name); 194 EXPECT_EQ("US Letter", caps.papers[0].display_name);
195 EXPECT_EQ(215900, caps.papers[0].size_um.width()); 195 EXPECT_EQ(215900, caps.papers[0].size_um.width());
196 EXPECT_EQ(279400, caps.papers[0].size_um.height()); 196 EXPECT_EQ(279400, caps.papers[0].size_um.height());
197 EXPECT_EQ("Legal", caps.papers[1].vendor_id); 197 EXPECT_EQ("Legal", caps.papers[1].vendor_id);
198 EXPECT_EQ("US Legal", caps.papers[1].display_name); 198 EXPECT_EQ("US Legal", caps.papers[1].display_name);
199 EXPECT_EQ(215900, caps.papers[1].size_um.width()); 199 EXPECT_EQ(215900, caps.papers[1].size_um.width());
200 EXPECT_EQ(355600, caps.papers[1].size_um.height()); 200 EXPECT_EQ(355600, caps.papers[1].size_um.height());
201 } 201 }
202
203 TEST(PrintBackendCupsHelperTest, TestPpdParsingBrotherPrinters) {
204 {
205 const char kTestPpdData[] =
206 "*PPD-Adobe: \"4.3\"\n\n"
207 "*ColorDevice: True\n"
208 "*OpenUI *BRPrintQuality/Color/Mono: PickOne\n"
209 "*DefaultBRPrintQuality: Auto\n"
210 "*BRPrintQuality Auto/Auto: \"\"\n"
211 "*BRPrintQuality Color/Color: \"\"\n"
212 "*BRPrintQuality Black/Mono: \"\"\n"
213 "*CloseUI: *BRPrintQuality\n\n";
214
215 printing::PrinterSemanticCapsAndDefaults caps;
216 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps));
217 EXPECT_TRUE(caps.color_changeable);
218 EXPECT_TRUE(caps.color_default);
219 EXPECT_EQ(printing::BROTHER_COLOR_COLOR, caps.color_model);
220 EXPECT_EQ(printing::BROTHER_COLOR_BLACK, caps.bw_model);
221 }
222 {
223 const char kTestPpdData[] =
224 "*PPD-Adobe: \"4.3\"\n\n"
225 "*ColorDevice: True\n"
226 "*OpenUI *BRMonoColor/Color / Mono: PickOne\n"
227 "*DefaultBRMonoColor: Auto\n"
228 "*BRMonoColor Auto/Auto: \"\"\n"
229 "*BRMonoColor FullColor/Color: \"\"\n"
230 "*BRMonoColor Mono/Mono: \"\"\n"
231 "*CloseUI: *BRMonoColor\n\n";
232
233 printing::PrinterSemanticCapsAndDefaults caps;
234 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps));
235 EXPECT_TRUE(caps.color_changeable);
236 EXPECT_TRUE(caps.color_default);
237 EXPECT_EQ(printing::BROTHER_COLOR_COLOR, caps.color_model);
238 EXPECT_EQ(printing::BROTHER_COLOR_BLACK, caps.bw_model);
239 }
240 {
241 const char kTestPpdData[] =
242 "*PPD-Adobe: \"4.3\"\n\n"
243 "*ColorDevice: True\n"
244 "*OpenUI *BRDuplex/Two-Sided Printing: PickOne\n"
245 "*OrderDependency: 25 AnySetup *BRDuplex\n"
246 "*DefaultBRDuplex: DuplexTumble\n"
247 "*BRDuplex DuplexTumble/Short-Edge Binding: \"\"\n"
248 "*BRDuplex DuplexNoTumble/Long-Edge Binding: \"\"\n"
249 "*BRDuplex None/Off: \"\"\n"
250 "*CloseUI: *BRDuplex\n\n";
251
252 printing::PrinterSemanticCapsAndDefaults caps;
253 EXPECT_TRUE(printing::ParsePpdCapabilities("test", kTestPpdData, &caps));
254 EXPECT_TRUE(caps.duplex_capable);
255 EXPECT_EQ(printing::SHORT_EDGE, caps.duplex_default);
256 }
257 }
OLDNEW
« no previous file with comments | « printing/backend/cups_helper.cc ('k') | printing/print_job_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698