Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "components/cloud_devices/printer_description.h" | |
| 6 | |
| 7 #include "base/json/json_reader.h" | |
| 8 #include "base/json/json_writer.h" | |
| 9 #include "base/strings/string_util.h" | |
| 10 #include "base/values.h" | |
| 11 #include "testing/gtest/include/gtest/gtest.h" | |
| 12 | |
| 13 namespace cloud_devices { | |
| 14 | |
| 15 namespace printer { | |
| 16 | |
| 17 // Replaces ' with " to allow readable json constants in tests. | |
| 18 // Makes sure that same json value represented by same strings to simplify | |
| 19 // comparison. | |
| 20 std::string NormalizeJson(const std::string& json) { | |
| 21 std::string result = json; | |
| 22 base::ReplaceChars(result, "'", "\"", &result); | |
| 23 scoped_ptr<base::Value> value(base::JSONReader::Read(result)); | |
| 24 DCHECK(value); | |
| 25 base::JSONWriter::Write(value.get(), &result); | |
| 26 return result; | |
| 27 } | |
| 28 | |
| 29 const char kCdd[] = | |
| 30 "{" | |
| 31 " 'version': '1.0'," | |
| 32 " 'printer': {" | |
| 33 " 'supported_content_type': [ {" | |
| 34 " 'content_type': 'image/pwg-raster'" | |
| 35 " }, {" | |
| 36 " 'content_type': 'image/jpeg'" | |
| 37 " } ]," | |
| 38 " 'color': {" | |
| 39 " 'option': [ {" | |
| 40 " 'is_default': true," | |
| 41 " 'type': 'STANDARD_COLOR'" | |
| 42 " }, {" | |
| 43 " 'type': 'STANDARD_MONOCHROME'" | |
| 44 " }, {" | |
| 45 " 'type': 'CUSTOM_MONOCHROME'," | |
| 46 " 'vendor_id': '123'," | |
| 47 " 'custom_display_name': 'monochrome'" | |
| 48 " } ]" | |
| 49 " }," | |
| 50 " 'duplex': {" | |
| 51 " 'option': [ {" | |
| 52 " 'is_default': true," | |
| 53 " 'type': 'LONG_EDGE'" | |
| 54 " }, {" | |
| 55 " 'type': 'SHORT_EDGE'" | |
| 56 " }, {" | |
| 57 " 'type': 'NO_DUPLEX'" | |
| 58 " } ]" | |
| 59 " }," | |
| 60 " 'page_orientation': {" | |
| 61 " 'option': [ {" | |
| 62 " 'type': 'PORTRAIT'" | |
| 63 " }, {" | |
| 64 " 'type': 'LANDSCAPE'" | |
| 65 " }, {" | |
| 66 " 'is_default': true," | |
| 67 " 'type': 'AUTO'" | |
| 68 " } ]" | |
| 69 " }," | |
| 70 " 'copies': {" | |
| 71 " }," | |
| 72 " 'margins': {" | |
| 73 " 'option': [ {" | |
| 74 " 'is_default': true," | |
| 75 " 'type': 'BORDERLESS'," | |
| 76 " 'top_microns': 0," | |
| 77 " 'right_microns': 0," | |
| 78 " 'bottom_microns': 0," | |
| 79 " 'left_microns': 0" | |
| 80 " }, {" | |
| 81 " 'type': 'STANDARD'," | |
| 82 " 'top_microns': 100," | |
| 83 " 'right_microns': 200," | |
| 84 " 'bottom_microns': 300," | |
| 85 " 'left_microns': 400" | |
| 86 " }, {" | |
| 87 " 'type': 'CUSTOM'," | |
| 88 " 'top_microns': 1," | |
| 89 " 'right_microns': 2," | |
| 90 " 'bottom_microns': 3," | |
| 91 " 'left_microns': 4" | |
| 92 " } ]" | |
| 93 " }," | |
| 94 " 'dpi': {" | |
| 95 " 'option': [ {" | |
| 96 " 'horizontal_dpi': 150," | |
| 97 " 'vertical_dpi': 250" | |
| 98 " }, {" | |
| 99 " 'is_default': true," | |
| 100 " 'horizontal_dpi': 600," | |
| 101 " 'vertical_dpi': 1600" | |
| 102 " } ]" | |
| 103 " }," | |
| 104 " 'fit_to_page': {" | |
| 105 " 'option': [ {" | |
| 106 " 'is_default': true," | |
| 107 " 'type': 'NO_FITTING'" | |
| 108 " }, {" | |
| 109 " 'type': 'FIT_TO_PAGE'" | |
| 110 " }, {" | |
| 111 " 'type': 'GROW_TO_PAGE'" | |
| 112 " }, {" | |
| 113 " 'type': 'SHRINK_TO_PAGE'" | |
| 114 " }, {" | |
| 115 " 'type': 'FILL_PAGE'" | |
| 116 " } ]" | |
| 117 " }," | |
| 118 " 'page_range': {" | |
| 119 " }," | |
| 120 " 'media_size': {" | |
| 121 " 'option': [ {" | |
| 122 " 'is_default': true," | |
| 123 " 'name': 'NA_LETTER'," | |
| 124 " 'width_microns': 2222," | |
| 125 " 'height_microns': 3333" | |
| 126 " }, {" | |
| 127 " 'name': 'ISO_A6'," | |
| 128 " 'width_microns': 4444," | |
| 129 " 'height_microns': 5555" | |
| 130 " }, {" | |
| 131 " 'name': 'JPN_YOU4'," | |
| 132 " 'width_microns': 6666," | |
| 133 " 'height_microns': 7777" | |
| 134 " }, {" | |
| 135 " 'width_microns': 1111," | |
| 136 " 'is_continuous_feed': true," | |
| 137 " 'custom_display_name': 'FEED'" | |
| 138 " } ]" | |
| 139 " }," | |
| 140 " 'collate': {" | |
| 141 " 'default': false" | |
| 142 " }," | |
| 143 " 'reverse_order': {" | |
| 144 " 'default': true" | |
| 145 " }" | |
| 146 " }" | |
| 147 "}"; | |
| 148 | |
| 149 | |
| 150 const char kDefaultCdd[] = | |
| 151 "{" | |
| 152 " 'version': '1.0'" | |
| 153 "}"; | |
| 154 | |
| 155 const char kBadVersionCdd[] = | |
| 156 "{" | |
| 157 " 'version': '1.1'," | |
| 158 " 'printer': {" | |
| 159 " }" | |
| 160 "}"; | |
| 161 | |
| 162 const char kNoDefaultCdd[] = | |
| 163 "{" | |
| 164 " 'version': '1.0'," | |
| 165 " 'printer': {" | |
| 166 " 'color': {" | |
| 167 " 'option': [ {" | |
| 168 " 'type': 'STANDARD_COLOR'" | |
| 169 " }, {" | |
| 170 " 'type': 'STANDARD_MONOCHROME'" | |
| 171 " } ]" | |
| 172 " }" | |
| 173 " }" | |
| 174 "}"; | |
| 175 | |
| 176 const char kMultyDefaultCdd[] = | |
| 177 "{" | |
| 178 " 'version': '1.0'," | |
| 179 " 'printer': {" | |
| 180 " 'color': {" | |
| 181 " 'option': [ {" | |
| 182 " 'is_default': true," | |
| 183 " 'type': 'STANDARD_COLOR'" | |
| 184 " }, {" | |
| 185 " 'is_default': true," | |
| 186 " 'type': 'STANDARD_MONOCHROME'" | |
| 187 " } ]" | |
| 188 " }" | |
| 189 " }" | |
| 190 "}"; | |
| 191 | |
| 192 const char kCjt[] = | |
| 193 "{" | |
| 194 " 'version': '1.0'," | |
| 195 " 'printer': {" | |
| 196 " 'color': {" | |
| 197 " 'type': 'STANDARD_MONOCHROME'" | |
| 198 " }," | |
| 199 " 'duplex': {" | |
| 200 " 'type': 'NO_DUPLEX'" | |
| 201 " }," | |
| 202 " 'page_orientation': {" | |
| 203 " 'type': 'LANDSCAPE'" | |
| 204 " }," | |
| 205 " 'copies': {" | |
| 206 " 'copies': 123" | |
| 207 " }," | |
| 208 " 'margins': {" | |
| 209 " 'type': 'CUSTOM'," | |
| 210 " 'top_microns': 7," | |
| 211 " 'right_microns': 6," | |
| 212 " 'bottom_microns': 3," | |
| 213 " 'left_microns': 1" | |
| 214 " }," | |
| 215 " 'dpi': {" | |
| 216 " 'horizontal_dpi': 562," | |
| 217 " 'vertical_dpi': 125" | |
| 218 " }," | |
| 219 " 'fit_to_page': {" | |
| 220 " 'type': 'SHRINK_TO_PAGE'" | |
| 221 " }," | |
| 222 " 'page_range': {" | |
| 223 " 'interval': [ {" | |
| 224 " 'start': 1," | |
| 225 " 'end': 99" | |
| 226 " }, {" | |
| 227 " 'start': 150" | |
| 228 " } ]" | |
| 229 " }," | |
| 230 " 'media_size': {" | |
| 231 " 'name': 'ISO_C7C6'," | |
| 232 " 'width_microns': 4261," | |
| 233 " 'height_microns': 334" | |
| 234 " }," | |
| 235 " 'collate': {" | |
| 236 " 'collate': false" | |
| 237 " }," | |
| 238 " 'reverse_order': {" | |
| 239 " 'reverse_order': true" | |
| 240 " }" | |
| 241 " }" | |
| 242 "}"; | |
| 243 | |
| 244 const char kDefaultCjt[] = | |
| 245 "{" | |
| 246 " 'version': '1.0'" | |
| 247 "}"; | |
| 248 | |
| 249 const char kBadVersionCjt[] = | |
| 250 "{" | |
| 251 " 'version': '1.1'," | |
| 252 " 'printer': {" | |
| 253 " }" | |
| 254 "}"; | |
| 255 | |
| 256 TEST(PrinterDescriptionTest, CddInit) { | |
| 257 CloudDeviceDescription description; | |
| 258 EXPECT_EQ(NormalizeJson(kDefaultCdd), NormalizeJson(description.ToString())); | |
| 259 | |
| 260 ContentTypesCapability content_types; | |
| 261 ColorCapability color; | |
| 262 DuplexCapability duplex; | |
| 263 OrientationCapability orientation; | |
| 264 MarginsCapability margins; | |
| 265 DpiCapability dpi; | |
| 266 FitToPageCapability fit_to_page; | |
| 267 MediaCapability media; | |
| 268 CopiesCapability copies; | |
| 269 PageRangeCapability page_range; | |
| 270 CollateCapability collate; | |
| 271 ReverseCapability reverse; | |
| 272 | |
| 273 EXPECT_FALSE(content_types.LoadFrom(description)); | |
| 274 EXPECT_FALSE(color.LoadFrom(description)); | |
| 275 EXPECT_FALSE(duplex.LoadFrom(description)); | |
| 276 EXPECT_FALSE(orientation.LoadFrom(description)); | |
| 277 EXPECT_FALSE(copies.LoadFrom(description)); | |
| 278 EXPECT_FALSE(margins.LoadFrom(description)); | |
| 279 EXPECT_FALSE(dpi.LoadFrom(description)); | |
| 280 EXPECT_FALSE(fit_to_page.LoadFrom(description)); | |
| 281 EXPECT_FALSE(page_range.LoadFrom(description)); | |
| 282 EXPECT_FALSE(media.LoadFrom(description)); | |
| 283 EXPECT_FALSE(collate.LoadFrom(description)); | |
| 284 EXPECT_FALSE(reverse.LoadFrom(description)); | |
| 285 EXPECT_FALSE(media.LoadFrom(description)); | |
| 286 } | |
| 287 | |
| 288 TEST(PrinterDescriptionTest, CddInvalid) { | |
| 289 CloudDeviceDescription description; | |
| 290 ColorCapability color; | |
| 291 | |
| 292 EXPECT_FALSE(description.InitFromString(NormalizeJson(kBadVersionCdd))); | |
| 293 | |
| 294 EXPECT_TRUE(description.InitFromString(NormalizeJson(kNoDefaultCdd))); | |
| 295 EXPECT_FALSE(color.LoadFrom(description)); | |
| 296 | |
| 297 EXPECT_TRUE(description.InitFromString(NormalizeJson(kMultyDefaultCdd))); | |
| 298 EXPECT_FALSE(color.LoadFrom(description)); | |
| 299 } | |
| 300 | |
| 301 TEST(PrinterDescriptionTest, CddSetAll) { | |
| 302 CloudDeviceDescription description; | |
| 303 | |
| 304 ContentTypesCapability content_types; | |
| 305 ColorCapability color; | |
| 306 DuplexCapability duplex; | |
| 307 OrientationCapability orientation; | |
| 308 MarginsCapability margins; | |
| 309 DpiCapability dpi; | |
| 310 FitToPageCapability fit_to_page; | |
| 311 MediaCapability media; | |
| 312 CopiesCapability copies; | |
| 313 PageRangeCapability page_range; | |
| 314 CollateCapability collate; | |
| 315 ReverseCapability reverse; | |
| 316 | |
| 317 content_types.AddOption("image/pwg-raster"); | |
| 318 content_types.AddOption("image/jpeg"); | |
| 319 | |
| 320 color.AddDefaultOption(Color(STANDARD_COLOR), true); | |
| 321 color.AddOption(Color(STANDARD_MONOCHROME)); | |
| 322 Color custom(CUSTOM_MONOCHROME); | |
| 323 custom.vendor_id = "123"; | |
| 324 custom.custom_display_name = "monochrome"; | |
| 325 color.AddOption(custom); | |
| 326 | |
| 327 duplex.AddDefaultOption(LONG_EDGE, true); | |
| 328 duplex.AddOption(SHORT_EDGE); | |
| 329 duplex.AddOption(NO_DUPLEX); | |
| 330 | |
| 331 orientation.AddOption(PORTRAIT); | |
| 332 orientation.AddOption(LANDSCAPE); | |
| 333 orientation.AddDefaultOption(AUTO_ORIENTATION, true); | |
| 334 | |
| 335 margins.AddDefaultOption(Margins(NO_MARGINS, 0, 0, 0, 0), true); | |
| 336 margins.AddOption(Margins(STANDARD_MARGINS, 100, 200, 300, 400)); | |
| 337 margins.AddOption(Margins(CUSTOM_MARGINS, 1, 2, 3, 4)); | |
| 338 | |
| 339 dpi.AddOption(Dpi(150, 250)); | |
| 340 dpi.AddDefaultOption(Dpi(600, 1600), true); | |
| 341 | |
| 342 fit_to_page.AddDefaultOption(NO_FITTING, true); | |
| 343 fit_to_page.AddOption(FIT_TO_PAGE); | |
| 344 fit_to_page.AddOption(GROW_TO_PAGE); | |
| 345 fit_to_page.AddOption(SHRINK_TO_PAGE); | |
| 346 fit_to_page.AddOption(FILL_PAGE); | |
| 347 | |
| 348 media.AddDefaultOption(Media(NA_LETTER, 2222, 3333), true); | |
| 349 media.AddOption(Media(ISO_A6, 4444, 5555)); | |
| 350 media.AddOption(Media(JPN_YOU4, 6666, 7777)); | |
| 351 media.AddOption(Media("FEED", 1111, 0)); | |
| 352 | |
| 353 collate.set_default_value(false); | |
| 354 reverse.set_default_value(true); | |
| 355 | |
| 356 content_types.SaveTo(&description); | |
| 357 color.SaveTo(&description); | |
| 358 duplex.SaveTo(&description); | |
| 359 orientation.SaveTo(&description); | |
| 360 copies.SaveTo(&description); | |
| 361 margins.SaveTo(&description); | |
| 362 dpi.SaveTo(&description); | |
| 363 fit_to_page.SaveTo(&description); | |
| 364 page_range.SaveTo(&description); | |
| 365 media.SaveTo(&description); | |
| 366 collate.SaveTo(&description); | |
| 367 reverse.SaveTo(&description); | |
| 368 | |
| 369 EXPECT_EQ(NormalizeJson(kCdd), NormalizeJson(description.ToString())); | |
| 370 } | |
| 371 | |
| 372 TEST(PrinterDescriptionTest, CddGetAll) { | |
| 373 CloudDeviceDescription description; | |
| 374 ASSERT_TRUE(description.InitFromString(NormalizeJson(kCdd))); | |
| 375 | |
| 376 ContentTypesCapability content_types; | |
| 377 ColorCapability color; | |
| 378 DuplexCapability duplex; | |
| 379 OrientationCapability orientation; | |
| 380 MarginsCapability margins; | |
| 381 DpiCapability dpi; | |
| 382 FitToPageCapability fit_to_page; | |
| 383 MediaCapability media; | |
| 384 CopiesCapability copies; | |
| 385 PageRangeCapability page_range; | |
| 386 CollateCapability collate; | |
| 387 ReverseCapability reverse; | |
| 388 | |
| 389 EXPECT_TRUE(content_types.LoadFrom(description)); | |
| 390 EXPECT_TRUE(color.LoadFrom(description)); | |
| 391 EXPECT_TRUE(duplex.LoadFrom(description)); | |
| 392 EXPECT_TRUE(orientation.LoadFrom(description)); | |
| 393 EXPECT_TRUE(copies.LoadFrom(description)); | |
| 394 EXPECT_TRUE(margins.LoadFrom(description)); | |
| 395 EXPECT_TRUE(dpi.LoadFrom(description)); | |
| 396 EXPECT_TRUE(fit_to_page.LoadFrom(description)); | |
| 397 EXPECT_TRUE(page_range.LoadFrom(description)); | |
| 398 EXPECT_TRUE(media.LoadFrom(description)); | |
| 399 EXPECT_TRUE(collate.LoadFrom(description)); | |
| 400 EXPECT_TRUE(reverse.LoadFrom(description)); | |
| 401 EXPECT_TRUE(media.LoadFrom(description)); | |
| 402 | |
| 403 EXPECT_TRUE(content_types.Contains("image/pwg-raster")); | |
| 404 EXPECT_TRUE(content_types.Contains("image/jpeg")); | |
| 405 | |
| 406 EXPECT_TRUE(color.Contains(Color(STANDARD_COLOR))); | |
| 407 EXPECT_TRUE(color.Contains(Color(STANDARD_MONOCHROME))); | |
| 408 Color custom(CUSTOM_MONOCHROME); | |
| 409 custom.vendor_id = "123"; | |
| 410 custom.custom_display_name = "monochrome"; | |
| 411 EXPECT_TRUE(color.Contains(custom)); | |
| 412 EXPECT_EQ(Color(STANDARD_COLOR), color.GetDefault()); | |
| 413 | |
| 414 EXPECT_TRUE(duplex.Contains(LONG_EDGE)); | |
| 415 EXPECT_TRUE(duplex.Contains(SHORT_EDGE)); | |
| 416 EXPECT_TRUE(duplex.Contains(NO_DUPLEX)); | |
| 417 EXPECT_EQ(LONG_EDGE, duplex.GetDefault()); | |
| 418 | |
| 419 EXPECT_TRUE(orientation.Contains(PORTRAIT)); | |
| 420 EXPECT_TRUE(orientation.Contains(LANDSCAPE)); | |
| 421 EXPECT_TRUE(orientation.Contains(AUTO_ORIENTATION)); | |
| 422 EXPECT_EQ(AUTO_ORIENTATION, orientation.GetDefault()); | |
| 423 | |
| 424 EXPECT_TRUE(margins.Contains(Margins(NO_MARGINS, 0, 0, 0, 0))); | |
| 425 EXPECT_TRUE(margins.Contains(Margins(STANDARD_MARGINS, 100, 200, 300, 400))); | |
| 426 EXPECT_TRUE(margins.Contains(Margins(CUSTOM_MARGINS, 1, 2, 3, 4))); | |
| 427 EXPECT_EQ(Margins(NO_MARGINS, 0, 0, 0, 0), margins.GetDefault()); | |
| 428 | |
| 429 EXPECT_TRUE(dpi.Contains(Dpi(150, 250))); | |
| 430 EXPECT_TRUE(dpi.Contains(Dpi(600, 1600))); | |
| 431 EXPECT_EQ(Dpi(600, 1600), dpi.GetDefault()); | |
| 432 | |
| 433 EXPECT_TRUE(fit_to_page.Contains(NO_FITTING)); | |
| 434 EXPECT_TRUE(fit_to_page.Contains(FIT_TO_PAGE)); | |
| 435 EXPECT_TRUE(fit_to_page.Contains(GROW_TO_PAGE)); | |
| 436 EXPECT_TRUE(fit_to_page.Contains(SHRINK_TO_PAGE)); | |
| 437 EXPECT_TRUE(fit_to_page.Contains(FILL_PAGE)); | |
| 438 EXPECT_EQ(NO_FITTING, fit_to_page.GetDefault()); | |
| 439 | |
| 440 EXPECT_TRUE(media.Contains(Media(NA_LETTER, 2222, 3333))); | |
| 441 EXPECT_TRUE(media.Contains(Media(ISO_A6, 4444, 5555))); | |
| 442 EXPECT_TRUE(media.Contains(Media(JPN_YOU4, 6666, 7777))); | |
| 443 EXPECT_TRUE(media.Contains(Media("FEED", 1111, 0))); | |
| 444 EXPECT_EQ(Media(NA_LETTER, 2222, 3333), media.GetDefault()); | |
| 445 | |
| 446 EXPECT_FALSE(collate.default_value()); | |
| 447 EXPECT_TRUE(reverse.default_value()); | |
| 448 | |
| 449 EXPECT_EQ(NormalizeJson(kCdd), NormalizeJson(description.ToString())); | |
| 450 } | |
| 451 | |
| 452 TEST(PrinterDescriptionTest, CjtInit) { | |
| 453 CloudDeviceDescription description; | |
| 454 EXPECT_EQ(NormalizeJson(kDefaultCjt), NormalizeJson(description.ToString())); | |
| 455 | |
| 456 ColorTicketItem color; | |
| 457 DuplexTicketItem duplex; | |
| 458 OrientationTicketItem orientation; | |
| 459 MarginsTicketItem margins; | |
| 460 DpiTicketItem dpi; | |
| 461 FitToPageTicketItem fit_to_page; | |
| 462 MediaTicketItem media; | |
| 463 CopiesTicketItem copies; | |
| 464 PageRangeTicketItem page_range; | |
| 465 CollateTicketItem collate; | |
| 466 ReverseTicketItem reverse; | |
| 467 | |
| 468 EXPECT_FALSE(color.LoadFrom(description)); | |
| 469 EXPECT_FALSE(duplex.LoadFrom(description)); | |
| 470 EXPECT_FALSE(orientation.LoadFrom(description)); | |
| 471 EXPECT_FALSE(copies.LoadFrom(description)); | |
| 472 EXPECT_FALSE(margins.LoadFrom(description)); | |
| 473 EXPECT_FALSE(dpi.LoadFrom(description)); | |
| 474 EXPECT_FALSE(fit_to_page.LoadFrom(description)); | |
| 475 EXPECT_FALSE(page_range.LoadFrom(description)); | |
| 476 EXPECT_FALSE(media.LoadFrom(description)); | |
| 477 EXPECT_FALSE(collate.LoadFrom(description)); | |
| 478 EXPECT_FALSE(reverse.LoadFrom(description)); | |
| 479 EXPECT_FALSE(media.LoadFrom(description)); | |
| 480 } | |
| 481 | |
| 482 TEST(PrinterDescriptionTest, CjtInvalid) { | |
| 483 CloudDeviceDescription ticket; | |
| 484 EXPECT_FALSE(ticket.InitFromString(NormalizeJson(kBadVersionCjt))); | |
| 485 } | |
| 486 | |
| 487 TEST(PrinterDescriptionTest, GctSetAll) { | |
|
Noam Samuel
2014/02/03 20:30:34
CjtSetAll?
Vitaly Buka (NO REVIEWS)
2014/02/03 22:06:52
Done.
| |
| 488 CloudDeviceDescription description; | |
| 489 | |
| 490 ColorTicketItem color; | |
| 491 DuplexTicketItem duplex; | |
| 492 OrientationTicketItem orientation; | |
| 493 MarginsTicketItem margins; | |
| 494 DpiTicketItem dpi; | |
| 495 FitToPageTicketItem fit_to_page; | |
| 496 MediaTicketItem media; | |
| 497 CopiesTicketItem copies; | |
| 498 PageRangeTicketItem page_range; | |
| 499 CollateTicketItem collate; | |
| 500 ReverseTicketItem reverse; | |
| 501 | |
| 502 color.set_value(Color(STANDARD_MONOCHROME)); | |
| 503 duplex.set_value(NO_DUPLEX); | |
| 504 orientation.set_value(LANDSCAPE); | |
| 505 copies.set_value(123); | |
| 506 margins.set_value(Margins(CUSTOM_MARGINS, 7, 6, 3, 1)); | |
| 507 dpi.set_value(Dpi(562, 125)); | |
| 508 fit_to_page.set_value(SHRINK_TO_PAGE); | |
| 509 PageRange page_ranges; | |
| 510 page_ranges.push_back(Interval(1, 99)); | |
| 511 page_ranges.push_back(Interval(150)); | |
| 512 page_range.set_value(page_ranges); | |
| 513 media.set_value(Media(ISO_C7C6, 4261, 334)); | |
| 514 collate.set_value(false); | |
| 515 reverse.set_value(true); | |
| 516 | |
| 517 color.SaveTo(&description); | |
| 518 duplex.SaveTo(&description); | |
| 519 orientation.SaveTo(&description); | |
| 520 copies.SaveTo(&description); | |
| 521 margins.SaveTo(&description); | |
| 522 dpi.SaveTo(&description); | |
| 523 fit_to_page.SaveTo(&description); | |
| 524 page_range.SaveTo(&description); | |
| 525 media.SaveTo(&description); | |
| 526 collate.SaveTo(&description); | |
| 527 reverse.SaveTo(&description); | |
| 528 | |
| 529 EXPECT_EQ(NormalizeJson(kCjt), NormalizeJson(description.ToString())); | |
| 530 } | |
| 531 | |
| 532 TEST(PrinterDescriptionTest, CjtGetAll) { | |
| 533 CloudDeviceDescription description; | |
| 534 ASSERT_TRUE(description.InitFromString(NormalizeJson(kCjt))); | |
| 535 | |
| 536 ColorTicketItem color; | |
| 537 DuplexTicketItem duplex; | |
| 538 OrientationTicketItem orientation; | |
| 539 MarginsTicketItem margins; | |
| 540 DpiTicketItem dpi; | |
| 541 FitToPageTicketItem fit_to_page; | |
| 542 MediaTicketItem media; | |
| 543 CopiesTicketItem copies; | |
| 544 PageRangeTicketItem page_range; | |
| 545 CollateTicketItem collate; | |
| 546 ReverseTicketItem reverse; | |
| 547 | |
| 548 EXPECT_TRUE(color.LoadFrom(description)); | |
| 549 EXPECT_TRUE(duplex.LoadFrom(description)); | |
| 550 EXPECT_TRUE(orientation.LoadFrom(description)); | |
| 551 EXPECT_TRUE(copies.LoadFrom(description)); | |
| 552 EXPECT_TRUE(margins.LoadFrom(description)); | |
| 553 EXPECT_TRUE(dpi.LoadFrom(description)); | |
| 554 EXPECT_TRUE(fit_to_page.LoadFrom(description)); | |
| 555 EXPECT_TRUE(page_range.LoadFrom(description)); | |
| 556 EXPECT_TRUE(media.LoadFrom(description)); | |
| 557 EXPECT_TRUE(collate.LoadFrom(description)); | |
| 558 EXPECT_TRUE(reverse.LoadFrom(description)); | |
| 559 EXPECT_TRUE(media.LoadFrom(description)); | |
| 560 | |
| 561 EXPECT_EQ(color.value(), Color(STANDARD_MONOCHROME)); | |
| 562 EXPECT_EQ(duplex.value(), NO_DUPLEX); | |
| 563 EXPECT_EQ(orientation.value(), LANDSCAPE); | |
| 564 EXPECT_EQ(copies.value(), 123); | |
| 565 EXPECT_EQ(margins.value(), Margins(CUSTOM_MARGINS, 7, 6, 3, 1)); | |
| 566 EXPECT_EQ(dpi.value(), Dpi(562, 125)); | |
| 567 EXPECT_EQ(fit_to_page.value(), SHRINK_TO_PAGE); | |
| 568 PageRange page_ranges; | |
| 569 page_ranges.push_back(Interval(1, 99)); | |
| 570 page_ranges.push_back(Interval(150)); | |
| 571 EXPECT_EQ(page_range.value(), page_ranges); | |
| 572 EXPECT_EQ(media.value(), Media(ISO_C7C6, 4261, 334)); | |
| 573 EXPECT_FALSE(collate.value()); | |
| 574 EXPECT_TRUE(reverse.value()); | |
| 575 | |
| 576 EXPECT_EQ(NormalizeJson(kCjt), NormalizeJson(description.ToString())); | |
| 577 } | |
| 578 | |
| 579 } // namespace printer | |
| 580 | |
| 581 } // namespace cloud_devices | |
| OLD | NEW |