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