| OLD | NEW |
| 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/run_loop.h" | 6 #include "base/run_loop.h" |
| 7 #include "components/printing/common/print_messages.h" | 7 #include "components/printing/common/print_messages.h" |
| 8 #include "components/printing/renderer/print_web_view_helper.h" | 8 #include "components/printing/renderer/print_web_view_helper.h" |
| 9 #include "components/printing/test/mock_printer.h" | 9 #include "components/printing/test/mock_printer.h" |
| 10 #include "components/printing/test/print_mock_render_thread.h" | 10 #include "components/printing/test/print_mock_render_thread.h" |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(dict); | 241 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(dict); |
| 242 ProcessPendingMessages(); | 242 ProcessPendingMessages(); |
| 243 } | 243 } |
| 244 | 244 |
| 245 // Naked pointer as ownership is with content::RenderViewTest::render_thread_. | 245 // Naked pointer as ownership is with content::RenderViewTest::render_thread_. |
| 246 PrintMockRenderThread* print_render_thread_; | 246 PrintMockRenderThread* print_render_thread_; |
| 247 | 247 |
| 248 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperTestBase); | 248 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperTestBase); |
| 249 }; | 249 }; |
| 250 | 250 |
| 251 class PrintWebViewHelperTest : public PrintWebViewHelperTestBase { | 251 // RenderVIewTest-based tests crash on Android |
| 252 // http://crbug.com/187500 |
| 253 #if defined(OS_ANDROID) |
| 254 #define MAYBE_PrintWebViewHelperTest DISABLED_PrintWebViewHelperTest |
| 255 #else |
| 256 #define MAYBE_PrintWebViewHelperTest PrintWebViewHelperTest |
| 257 #endif // defined(OS_ANDROID) |
| 258 |
| 259 class MAYBE_PrintWebViewHelperTest : public PrintWebViewHelperTestBase { |
| 252 public: | 260 public: |
| 253 PrintWebViewHelperTest() {} | 261 MAYBE_PrintWebViewHelperTest() {} |
| 254 ~PrintWebViewHelperTest() override {} | 262 ~MAYBE_PrintWebViewHelperTest() override {} |
| 255 | 263 |
| 256 void SetUp() override { PrintWebViewHelperTestBase::SetUp(); } | 264 void SetUp() override { PrintWebViewHelperTestBase::SetUp(); } |
| 257 | 265 |
| 258 protected: | 266 protected: |
| 259 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperTest); | 267 DISALLOW_COPY_AND_ASSIGN(MAYBE_PrintWebViewHelperTest); |
| 260 }; | 268 }; |
| 261 | 269 |
| 262 // This tests only for platforms without print preview. | 270 // This tests only for platforms without print preview. |
| 263 #if !defined(ENABLE_PRINT_PREVIEW) | 271 #if !defined(ENABLE_PRINT_PREVIEW) |
| 264 // Tests that the renderer blocks window.print() calls if they occur too | 272 // Tests that the renderer blocks window.print() calls if they occur too |
| 265 // frequently. | 273 // frequently. |
| 266 TEST_F(PrintWebViewHelperTest, BlockScriptInitiatedPrinting) { | 274 TEST_F(MAYBE_PrintWebViewHelperTest, BlockScriptInitiatedPrinting) { |
| 267 // Pretend user will cancel printing. | 275 // Pretend user will cancel printing. |
| 268 print_render_thread_->set_print_dialog_user_response(false); | 276 print_render_thread_->set_print_dialog_user_response(false); |
| 269 // Try to print with window.print() a few times. | 277 // Try to print with window.print() a few times. |
| 270 PrintWithJavaScript(); | 278 PrintWithJavaScript(); |
| 271 PrintWithJavaScript(); | 279 PrintWithJavaScript(); |
| 272 PrintWithJavaScript(); | 280 PrintWithJavaScript(); |
| 273 VerifyPagesPrinted(false); | 281 VerifyPagesPrinted(false); |
| 274 | 282 |
| 275 // Pretend user will print. (but printing is blocked.) | 283 // Pretend user will print. (but printing is blocked.) |
| 276 print_render_thread_->set_print_dialog_user_response(true); | 284 print_render_thread_->set_print_dialog_user_response(true); |
| 277 PrintWithJavaScript(); | 285 PrintWithJavaScript(); |
| 278 VerifyPagesPrinted(false); | 286 VerifyPagesPrinted(false); |
| 279 | 287 |
| 280 // Unblock script initiated printing and verify printing works. | 288 // Unblock script initiated printing and verify printing works. |
| 281 PrintWebViewHelper::Get(view_)->scripting_throttler_.Reset(); | 289 PrintWebViewHelper::Get(view_)->scripting_throttler_.Reset(); |
| 282 print_render_thread_->printer()->ResetPrinter(); | 290 print_render_thread_->printer()->ResetPrinter(); |
| 283 PrintWithJavaScript(); | 291 PrintWithJavaScript(); |
| 284 VerifyPageCount(1); | 292 VerifyPageCount(1); |
| 285 VerifyPagesPrinted(true); | 293 VerifyPagesPrinted(true); |
| 286 } | 294 } |
| 287 | 295 |
| 288 // Tests that the renderer always allows window.print() calls if they are user | 296 // Tests that the renderer always allows window.print() calls if they are user |
| 289 // initiated. | 297 // initiated. |
| 290 TEST_F(PrintWebViewHelperTest, AllowUserOriginatedPrinting) { | 298 TEST_F(MAYBE_PrintWebViewHelperTest, AllowUserOriginatedPrinting) { |
| 291 // Pretend user will cancel printing. | 299 // Pretend user will cancel printing. |
| 292 print_render_thread_->set_print_dialog_user_response(false); | 300 print_render_thread_->set_print_dialog_user_response(false); |
| 293 // Try to print with window.print() a few times. | 301 // Try to print with window.print() a few times. |
| 294 PrintWithJavaScript(); | 302 PrintWithJavaScript(); |
| 295 PrintWithJavaScript(); | 303 PrintWithJavaScript(); |
| 296 PrintWithJavaScript(); | 304 PrintWithJavaScript(); |
| 297 VerifyPagesPrinted(false); | 305 VerifyPagesPrinted(false); |
| 298 | 306 |
| 299 // Pretend user will print. (but printing is blocked.) | 307 // Pretend user will print. (but printing is blocked.) |
| 300 print_render_thread_->set_print_dialog_user_response(true); | 308 print_render_thread_->set_print_dialog_user_response(true); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 318 SendWebMouseEvent(mouse_event); | 326 SendWebMouseEvent(mouse_event); |
| 319 mouse_event.type = blink::WebInputEvent::MouseUp; | 327 mouse_event.type = blink::WebInputEvent::MouseUp; |
| 320 SendWebMouseEvent(mouse_event); | 328 SendWebMouseEvent(mouse_event); |
| 321 ProcessPendingMessages(); | 329 ProcessPendingMessages(); |
| 322 | 330 |
| 323 VerifyPageCount(1); | 331 VerifyPageCount(1); |
| 324 VerifyPagesPrinted(true); | 332 VerifyPagesPrinted(true); |
| 325 } | 333 } |
| 326 | 334 |
| 327 // Duplicate of OnPrintPagesTest only using javascript to print. | 335 // Duplicate of OnPrintPagesTest only using javascript to print. |
| 328 TEST_F(PrintWebViewHelperTest, PrintWithJavascript) { | 336 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithJavascript) { |
| 329 PrintWithJavaScript(); | 337 PrintWithJavaScript(); |
| 330 | 338 |
| 331 VerifyPageCount(1); | 339 VerifyPageCount(1); |
| 332 VerifyPagesPrinted(true); | 340 VerifyPagesPrinted(true); |
| 333 } | 341 } |
| 334 #endif // !ENABLE_PRINT_PREVIEW | 342 #endif // !ENABLE_PRINT_PREVIEW |
| 335 | 343 |
| 336 #if defined(ENABLE_BASIC_PRINTING) | 344 #if defined(ENABLE_BASIC_PRINTING) |
| 337 // Tests that printing pages work and sending and receiving messages through | 345 // Tests that printing pages work and sending and receiving messages through |
| 338 // that channel all works. | 346 // that channel all works. |
| 339 TEST_F(PrintWebViewHelperTest, OnPrintPages) { | 347 TEST_F(MAYBE_PrintWebViewHelperTest, OnPrintPages) { |
| 340 LoadHTML(kHelloWorldHTML); | 348 LoadHTML(kHelloWorldHTML); |
| 341 OnPrintPages(); | 349 OnPrintPages(); |
| 342 | 350 |
| 343 VerifyPageCount(1); | 351 VerifyPageCount(1); |
| 344 VerifyPagesPrinted(true); | 352 VerifyPagesPrinted(true); |
| 345 } | 353 } |
| 346 #endif // ENABLE_BASIC_PRINTING | 354 #endif // ENABLE_BASIC_PRINTING |
| 347 | 355 |
| 348 #if defined(OS_MACOSX) && defined(ENABLE_BASIC_PRINTING) | 356 #if defined(OS_MACOSX) && defined(ENABLE_BASIC_PRINTING) |
| 349 // TODO(estade): I don't think this test is worth porting to Linux. We will have | 357 // TODO(estade): I don't think this test is worth porting to Linux. We will have |
| 350 // to rip out and replace most of the IPC code if we ever plan to improve | 358 // to rip out and replace most of the IPC code if we ever plan to improve |
| 351 // printing, and the comment below by sverrir suggests that it doesn't do much | 359 // printing, and the comment below by sverrir suggests that it doesn't do much |
| 352 // for us anyway. | 360 // for us anyway. |
| 353 TEST_F(PrintWebViewHelperTest, PrintWithIframe) { | 361 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithIframe) { |
| 354 // Document that populates an iframe. | 362 // Document that populates an iframe. |
| 355 const char html[] = | 363 const char html[] = |
| 356 "<html><body>Lorem Ipsum:" | 364 "<html><body>Lorem Ipsum:" |
| 357 "<iframe name=\"sub1\" id=\"sub1\"></iframe><script>" | 365 "<iframe name=\"sub1\" id=\"sub1\"></iframe><script>" |
| 358 " document.write(frames['sub1'].name);" | 366 " document.write(frames['sub1'].name);" |
| 359 " frames['sub1'].document.write(" | 367 " frames['sub1'].document.write(" |
| 360 " '<p>Cras tempus ante eu felis semper luctus!</p>');" | 368 " '<p>Cras tempus ante eu felis semper luctus!</p>');" |
| 361 " frames['sub1'].document.close();" | 369 " frames['sub1'].document.close();" |
| 362 "</script></body></html>"; | 370 "</script></body></html>"; |
| 363 | 371 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 }, | 441 }, |
| 434 }; | 442 }; |
| 435 #endif // defined(OS_WIN) || defined(OS_MACOSX) | 443 #endif // defined(OS_WIN) || defined(OS_MACOSX) |
| 436 } // namespace | 444 } // namespace |
| 437 | 445 |
| 438 // TODO(estade): need to port MockPrinter to get this on Linux. This involves | 446 // TODO(estade): need to port MockPrinter to get this on Linux. This involves |
| 439 // hooking up Cairo to read a pdf stream, or accessing the cairo surface in the | 447 // hooking up Cairo to read a pdf stream, or accessing the cairo surface in the |
| 440 // metafile directly. | 448 // metafile directly. |
| 441 // Same for printing via PDF on Windows. | 449 // Same for printing via PDF on Windows. |
| 442 #if defined(OS_MACOSX) && defined(ENABLE_BASIC_PRINTING) | 450 #if defined(OS_MACOSX) && defined(ENABLE_BASIC_PRINTING) |
| 443 TEST_F(PrintWebViewHelperTest, PrintLayoutTest) { | 451 TEST_F(MAYBE_PrintWebViewHelperTest, PrintLayoutTest) { |
| 444 bool baseline = false; | 452 bool baseline = false; |
| 445 | 453 |
| 446 EXPECT_TRUE(print_render_thread_->printer() != NULL); | 454 EXPECT_TRUE(print_render_thread_->printer() != NULL); |
| 447 for (size_t i = 0; i < arraysize(kTestPages); ++i) { | 455 for (size_t i = 0; i < arraysize(kTestPages); ++i) { |
| 448 // Load an HTML page and print it. | 456 // Load an HTML page and print it. |
| 449 LoadHTML(kTestPages[i].page); | 457 LoadHTML(kTestPages[i].page); |
| 450 OnPrintPages(); | 458 OnPrintPages(); |
| 451 VerifyPagesPrinted(true); | 459 VerifyPagesPrinted(true); |
| 452 | 460 |
| 453 // MockRenderThread::Send() just calls MockRenderThread::OnReceived(). | 461 // MockRenderThread::Send() just calls MockRenderThread::OnReceived(). |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 base::FilePath bitmap_path; | 497 base::FilePath bitmap_path; |
| 490 base::CreateTemporaryFile(&bitmap_path); | 498 base::CreateTemporaryFile(&bitmap_path); |
| 491 print_render_thread_->printer()->SaveBitmap(0, bitmap_path); | 499 print_render_thread_->printer()->SaveBitmap(0, bitmap_path); |
| 492 } | 500 } |
| 493 } | 501 } |
| 494 } | 502 } |
| 495 #endif // OS_MACOSX && ENABLE_BASIC_PRINTING | 503 #endif // OS_MACOSX && ENABLE_BASIC_PRINTING |
| 496 | 504 |
| 497 // These print preview tests do not work on Chrome OS yet. | 505 // These print preview tests do not work on Chrome OS yet. |
| 498 #if !defined(OS_CHROMEOS) | 506 #if !defined(OS_CHROMEOS) |
| 499 class PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { | 507 |
| 508 // RenderVIewTest-based tests crash on Android |
| 509 // http://crbug.com/187500 |
| 510 #if defined(OS_ANDROID) |
| 511 #define MAYBE_PrintWebViewHelperPreviewTest \ |
| 512 DISABLED_PrintWebViewHelperPreviewTest |
| 513 #else |
| 514 #define MAYBE_PrintWebViewHelperPreviewTest PrintWebViewHelperPreviewTest |
| 515 #endif // defined(OS_ANDROID) |
| 516 |
| 517 class MAYBE_PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { |
| 500 public: | 518 public: |
| 501 PrintWebViewHelperPreviewTest() {} | 519 MAYBE_PrintWebViewHelperPreviewTest() {} |
| 502 ~PrintWebViewHelperPreviewTest() override {} | 520 ~MAYBE_PrintWebViewHelperPreviewTest() override {} |
| 503 | 521 |
| 504 protected: | 522 protected: |
| 505 void VerifyPrintPreviewCancelled(bool did_cancel) { | 523 void VerifyPrintPreviewCancelled(bool did_cancel) { |
| 506 bool print_preview_cancelled = | 524 bool print_preview_cancelled = |
| 507 (render_thread_->sink().GetUniqueMessageMatching( | 525 (render_thread_->sink().GetUniqueMessageMatching( |
| 508 PrintHostMsg_PrintPreviewCancelled::ID) != NULL); | 526 PrintHostMsg_PrintPreviewCancelled::ID) != NULL); |
| 509 EXPECT_EQ(did_cancel, print_preview_cancelled); | 527 EXPECT_EQ(did_cancel, print_preview_cancelled); |
| 510 } | 528 } |
| 511 | 529 |
| 512 void VerifyPrintPreviewFailed(bool did_fail) { | 530 void VerifyPrintPreviewFailed(bool did_fail) { |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 584 EXPECT_EQ(content_width, get<0>(param).content_width); | 602 EXPECT_EQ(content_width, get<0>(param).content_width); |
| 585 EXPECT_EQ(content_height, get<0>(param).content_height); | 603 EXPECT_EQ(content_height, get<0>(param).content_height); |
| 586 EXPECT_EQ(margin_top, get<0>(param).margin_top); | 604 EXPECT_EQ(margin_top, get<0>(param).margin_top); |
| 587 EXPECT_EQ(margin_right, get<0>(param).margin_right); | 605 EXPECT_EQ(margin_right, get<0>(param).margin_right); |
| 588 EXPECT_EQ(margin_left, get<0>(param).margin_left); | 606 EXPECT_EQ(margin_left, get<0>(param).margin_left); |
| 589 EXPECT_EQ(margin_bottom, get<0>(param).margin_bottom); | 607 EXPECT_EQ(margin_bottom, get<0>(param).margin_bottom); |
| 590 EXPECT_EQ(page_has_print_css, get<2>(param)); | 608 EXPECT_EQ(page_has_print_css, get<2>(param)); |
| 591 } | 609 } |
| 592 } | 610 } |
| 593 | 611 |
| 594 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperPreviewTest); | 612 DISALLOW_COPY_AND_ASSIGN(MAYBE_PrintWebViewHelperPreviewTest); |
| 595 }; | 613 }; |
| 596 | 614 |
| 597 #if defined(ENABLE_PRINT_PREVIEW) | 615 #if defined(ENABLE_PRINT_PREVIEW) |
| 598 TEST_F(PrintWebViewHelperPreviewTest, BlockScriptInitiatedPrinting) { | 616 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, BlockScriptInitiatedPrinting) { |
| 599 LoadHTML(kHelloWorldHTML); | 617 LoadHTML(kHelloWorldHTML); |
| 600 PrintWebViewHelper* print_web_view_helper = PrintWebViewHelper::Get(view_); | 618 PrintWebViewHelper* print_web_view_helper = PrintWebViewHelper::Get(view_); |
| 601 print_web_view_helper->SetScriptedPrintBlocked(true); | 619 print_web_view_helper->SetScriptedPrintBlocked(true); |
| 602 PrintWithJavaScript(); | 620 PrintWithJavaScript(); |
| 603 VerifyPreviewRequest(false); | 621 VerifyPreviewRequest(false); |
| 604 | 622 |
| 605 print_web_view_helper->SetScriptedPrintBlocked(false); | 623 print_web_view_helper->SetScriptedPrintBlocked(false); |
| 606 PrintWithJavaScript(); | 624 PrintWithJavaScript(); |
| 607 VerifyPreviewRequest(true); | 625 VerifyPreviewRequest(true); |
| 608 } | 626 } |
| 609 | 627 |
| 610 TEST_F(PrintWebViewHelperPreviewTest, PrintWithJavaScript) { | 628 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, PrintWithJavaScript) { |
| 611 LoadHTML(kPrintOnUserAction); | 629 LoadHTML(kPrintOnUserAction); |
| 612 gfx::Size new_size(200, 100); | 630 gfx::Size new_size(200, 100); |
| 613 Resize(new_size, gfx::Rect(), false); | 631 Resize(new_size, gfx::Rect(), false); |
| 614 | 632 |
| 615 gfx::Rect bounds = GetElementBounds("print"); | 633 gfx::Rect bounds = GetElementBounds("print"); |
| 616 EXPECT_FALSE(bounds.IsEmpty()); | 634 EXPECT_FALSE(bounds.IsEmpty()); |
| 617 blink::WebMouseEvent mouse_event; | 635 blink::WebMouseEvent mouse_event; |
| 618 mouse_event.type = blink::WebInputEvent::MouseDown; | 636 mouse_event.type = blink::WebInputEvent::MouseDown; |
| 619 mouse_event.button = blink::WebMouseEvent::ButtonLeft; | 637 mouse_event.button = blink::WebMouseEvent::ButtonLeft; |
| 620 mouse_event.x = bounds.CenterPoint().x(); | 638 mouse_event.x = bounds.CenterPoint().x(); |
| 621 mouse_event.y = bounds.CenterPoint().y(); | 639 mouse_event.y = bounds.CenterPoint().y(); |
| 622 mouse_event.clickCount = 1; | 640 mouse_event.clickCount = 1; |
| 623 SendWebMouseEvent(mouse_event); | 641 SendWebMouseEvent(mouse_event); |
| 624 mouse_event.type = blink::WebInputEvent::MouseUp; | 642 mouse_event.type = blink::WebInputEvent::MouseUp; |
| 625 SendWebMouseEvent(mouse_event); | 643 SendWebMouseEvent(mouse_event); |
| 626 | 644 |
| 627 VerifyPreviewRequest(true); | 645 VerifyPreviewRequest(true); |
| 628 } | 646 } |
| 629 #endif // ENABLE_PRINT_PREVIEW | 647 #endif // ENABLE_PRINT_PREVIEW |
| 630 | 648 |
| 631 // Tests that print preview work and sending and receiving messages through | 649 // Tests that print preview work and sending and receiving messages through |
| 632 // that channel all works. | 650 // that channel all works. |
| 633 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreview) { | 651 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreview) { |
| 634 LoadHTML(kHelloWorldHTML); | 652 LoadHTML(kHelloWorldHTML); |
| 635 | 653 |
| 636 // Fill in some dummy values. | 654 // Fill in some dummy values. |
| 637 base::DictionaryValue dict; | 655 base::DictionaryValue dict; |
| 638 CreatePrintSettingsDictionary(&dict); | 656 CreatePrintSettingsDictionary(&dict); |
| 639 OnPrintPreview(dict); | 657 OnPrintPreview(dict); |
| 640 | 658 |
| 641 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 659 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 642 VerifyDefaultPageLayout(540, 720, 36, 36, 36, 36, false); | 660 VerifyDefaultPageLayout(540, 720, 36, 36, 36, 36, false); |
| 643 VerifyPrintPreviewCancelled(false); | 661 VerifyPrintPreviewCancelled(false); |
| 644 VerifyPrintPreviewFailed(false); | 662 VerifyPrintPreviewFailed(false); |
| 645 VerifyPrintPreviewGenerated(true); | 663 VerifyPrintPreviewGenerated(true); |
| 646 VerifyPagesPrinted(false); | 664 VerifyPagesPrinted(false); |
| 647 } | 665 } |
| 648 | 666 |
| 649 TEST_F(PrintWebViewHelperPreviewTest, PrintPreviewHTMLWithPageMarginsCss) { | 667 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 668 PrintPreviewHTMLWithPageMarginsCss) { |
| 650 // A simple web page with print margins css. | 669 // A simple web page with print margins css. |
| 651 const char kHTMLWithPageMarginsCss[] = | 670 const char kHTMLWithPageMarginsCss[] = |
| 652 "<html><head><style>" | 671 "<html><head><style>" |
| 653 "@media print {" | 672 "@media print {" |
| 654 " @page {" | 673 " @page {" |
| 655 " margin: 3in 1in 2in 0.3in;" | 674 " margin: 3in 1in 2in 0.3in;" |
| 656 " }" | 675 " }" |
| 657 "}" | 676 "}" |
| 658 "</style></head>" | 677 "</style></head>" |
| 659 "<body>Lorem Ipsum:" | 678 "<body>Lorem Ipsum:" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 670 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 689 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 671 VerifyDefaultPageLayout(519, 432, 216, 144, 21, 72, false); | 690 VerifyDefaultPageLayout(519, 432, 216, 144, 21, 72, false); |
| 672 VerifyPrintPreviewCancelled(false); | 691 VerifyPrintPreviewCancelled(false); |
| 673 VerifyPrintPreviewFailed(false); | 692 VerifyPrintPreviewFailed(false); |
| 674 VerifyPrintPreviewGenerated(true); | 693 VerifyPrintPreviewGenerated(true); |
| 675 VerifyPagesPrinted(false); | 694 VerifyPagesPrinted(false); |
| 676 } | 695 } |
| 677 | 696 |
| 678 // Test to verify that print preview ignores print media css when non-default | 697 // Test to verify that print preview ignores print media css when non-default |
| 679 // margin is selected. | 698 // margin is selected. |
| 680 TEST_F(PrintWebViewHelperPreviewTest, NonDefaultMarginsSelectedIgnorePrintCss) { | 699 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 700 NonDefaultMarginsSelectedIgnorePrintCss) { |
| 681 LoadHTML(kHTMLWithPageSizeCss); | 701 LoadHTML(kHTMLWithPageSizeCss); |
| 682 | 702 |
| 683 // Fill in some dummy values. | 703 // Fill in some dummy values. |
| 684 base::DictionaryValue dict; | 704 base::DictionaryValue dict; |
| 685 CreatePrintSettingsDictionary(&dict); | 705 CreatePrintSettingsDictionary(&dict); |
| 686 dict.SetBoolean(kSettingPrintToPDF, false); | 706 dict.SetBoolean(kSettingPrintToPDF, false); |
| 687 dict.SetInteger(kSettingMarginsType, NO_MARGINS); | 707 dict.SetInteger(kSettingMarginsType, NO_MARGINS); |
| 688 OnPrintPreview(dict); | 708 OnPrintPreview(dict); |
| 689 | 709 |
| 690 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 710 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 691 VerifyDefaultPageLayout(612, 792, 0, 0, 0, 0, true); | 711 VerifyDefaultPageLayout(612, 792, 0, 0, 0, 0, true); |
| 692 VerifyPrintPreviewCancelled(false); | 712 VerifyPrintPreviewCancelled(false); |
| 693 VerifyPrintPreviewFailed(false); | 713 VerifyPrintPreviewFailed(false); |
| 694 VerifyPrintPreviewGenerated(true); | 714 VerifyPrintPreviewGenerated(true); |
| 695 VerifyPagesPrinted(false); | 715 VerifyPagesPrinted(false); |
| 696 } | 716 } |
| 697 | 717 |
| 698 // Test to verify that print preview honor print media size css when | 718 // Test to verify that print preview honor print media size css when |
| 699 // PRINT_TO_PDF is selected and doesn't fit to printer default paper size. | 719 // PRINT_TO_PDF is selected and doesn't fit to printer default paper size. |
| 700 TEST_F(PrintWebViewHelperPreviewTest, PrintToPDFSelectedHonorPrintCss) { | 720 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, PrintToPDFSelectedHonorPrintCss) { |
| 701 LoadHTML(kHTMLWithPageSizeCss); | 721 LoadHTML(kHTMLWithPageSizeCss); |
| 702 | 722 |
| 703 // Fill in some dummy values. | 723 // Fill in some dummy values. |
| 704 base::DictionaryValue dict; | 724 base::DictionaryValue dict; |
| 705 CreatePrintSettingsDictionary(&dict); | 725 CreatePrintSettingsDictionary(&dict); |
| 706 dict.SetBoolean(kSettingPrintToPDF, true); | 726 dict.SetBoolean(kSettingPrintToPDF, true); |
| 707 dict.SetInteger(kSettingMarginsType, PRINTABLE_AREA_MARGINS); | 727 dict.SetInteger(kSettingMarginsType, PRINTABLE_AREA_MARGINS); |
| 708 OnPrintPreview(dict); | 728 OnPrintPreview(dict); |
| 709 | 729 |
| 710 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 730 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 711 // Since PRINT_TO_PDF is selected, pdf page size is equal to print media page | 731 // Since PRINT_TO_PDF is selected, pdf page size is equal to print media page |
| 712 // size. | 732 // size. |
| 713 VerifyDefaultPageLayout(252, 252, 18, 18, 18, 18, true); | 733 VerifyDefaultPageLayout(252, 252, 18, 18, 18, 18, true); |
| 714 VerifyPrintPreviewCancelled(false); | 734 VerifyPrintPreviewCancelled(false); |
| 715 VerifyPrintPreviewFailed(false); | 735 VerifyPrintPreviewFailed(false); |
| 716 } | 736 } |
| 717 | 737 |
| 718 // Test to verify that print preview honor print margin css when PRINT_TO_PDF | 738 // Test to verify that print preview honor print margin css when PRINT_TO_PDF |
| 719 // is selected and doesn't fit to printer default paper size. | 739 // is selected and doesn't fit to printer default paper size. |
| 720 TEST_F(PrintWebViewHelperPreviewTest, PrintToPDFSelectedHonorPageMarginsCss) { | 740 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 741 PrintToPDFSelectedHonorPageMarginsCss) { |
| 721 // A simple web page with print margins css. | 742 // A simple web page with print margins css. |
| 722 const char kHTMLWithPageCss[] = | 743 const char kHTMLWithPageCss[] = |
| 723 "<html><head><style>" | 744 "<html><head><style>" |
| 724 "@media print {" | 745 "@media print {" |
| 725 " @page {" | 746 " @page {" |
| 726 " margin: 3in 1in 2in 0.3in;" | 747 " margin: 3in 1in 2in 0.3in;" |
| 727 " size: 14in 14in;" | 748 " size: 14in 14in;" |
| 728 " }" | 749 " }" |
| 729 "}" | 750 "}" |
| 730 "</style></head>" | 751 "</style></head>" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 742 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 763 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 743 // Since PRINT_TO_PDF is selected, pdf page size is equal to print media page | 764 // Since PRINT_TO_PDF is selected, pdf page size is equal to print media page |
| 744 // size. | 765 // size. |
| 745 VerifyDefaultPageLayout(915, 648, 216, 144, 21, 72, true); | 766 VerifyDefaultPageLayout(915, 648, 216, 144, 21, 72, true); |
| 746 VerifyPrintPreviewCancelled(false); | 767 VerifyPrintPreviewCancelled(false); |
| 747 VerifyPrintPreviewFailed(false); | 768 VerifyPrintPreviewFailed(false); |
| 748 } | 769 } |
| 749 | 770 |
| 750 // Test to verify that print preview workflow center the html page contents to | 771 // Test to verify that print preview workflow center the html page contents to |
| 751 // fit the page size. | 772 // fit the page size. |
| 752 TEST_F(PrintWebViewHelperPreviewTest, PrintPreviewCenterToFitPage) { | 773 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, PrintPreviewCenterToFitPage) { |
| 753 LoadHTML(kHTMLWithPageSizeCss); | 774 LoadHTML(kHTMLWithPageSizeCss); |
| 754 | 775 |
| 755 // Fill in some dummy values. | 776 // Fill in some dummy values. |
| 756 base::DictionaryValue dict; | 777 base::DictionaryValue dict; |
| 757 CreatePrintSettingsDictionary(&dict); | 778 CreatePrintSettingsDictionary(&dict); |
| 758 dict.SetBoolean(kSettingPrintToPDF, false); | 779 dict.SetBoolean(kSettingPrintToPDF, false); |
| 759 dict.SetInteger(kSettingMarginsType, DEFAULT_MARGINS); | 780 dict.SetInteger(kSettingMarginsType, DEFAULT_MARGINS); |
| 760 OnPrintPreview(dict); | 781 OnPrintPreview(dict); |
| 761 | 782 |
| 762 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 783 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 763 VerifyDefaultPageLayout(216, 216, 288, 288, 198, 198, true); | 784 VerifyDefaultPageLayout(216, 216, 288, 288, 198, 198, true); |
| 764 VerifyPrintPreviewCancelled(false); | 785 VerifyPrintPreviewCancelled(false); |
| 765 VerifyPrintPreviewFailed(false); | 786 VerifyPrintPreviewFailed(false); |
| 766 VerifyPrintPreviewGenerated(true); | 787 VerifyPrintPreviewGenerated(true); |
| 767 } | 788 } |
| 768 | 789 |
| 769 // Test to verify that print preview workflow scale the html page contents to | 790 // Test to verify that print preview workflow scale the html page contents to |
| 770 // fit the page size. | 791 // fit the page size. |
| 771 TEST_F(PrintWebViewHelperPreviewTest, PrintPreviewShrinkToFitPage) { | 792 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, PrintPreviewShrinkToFitPage) { |
| 772 // A simple web page with print margins css. | 793 // A simple web page with print margins css. |
| 773 const char kHTMLWithPageCss[] = | 794 const char kHTMLWithPageCss[] = |
| 774 "<html><head><style>" | 795 "<html><head><style>" |
| 775 "@media print {" | 796 "@media print {" |
| 776 " @page {" | 797 " @page {" |
| 777 " size: 15in 17in;" | 798 " size: 15in 17in;" |
| 778 " }" | 799 " }" |
| 779 "}" | 800 "}" |
| 780 "</style></head>" | 801 "</style></head>" |
| 781 "<body>Lorem Ipsum:" | 802 "<body>Lorem Ipsum:" |
| 782 "</body></html>"; | 803 "</body></html>"; |
| 783 LoadHTML(kHTMLWithPageCss); | 804 LoadHTML(kHTMLWithPageCss); |
| 784 | 805 |
| 785 // Fill in some dummy values. | 806 // Fill in some dummy values. |
| 786 base::DictionaryValue dict; | 807 base::DictionaryValue dict; |
| 787 CreatePrintSettingsDictionary(&dict); | 808 CreatePrintSettingsDictionary(&dict); |
| 788 dict.SetBoolean(kSettingPrintToPDF, false); | 809 dict.SetBoolean(kSettingPrintToPDF, false); |
| 789 dict.SetInteger(kSettingMarginsType, DEFAULT_MARGINS); | 810 dict.SetInteger(kSettingMarginsType, DEFAULT_MARGINS); |
| 790 OnPrintPreview(dict); | 811 OnPrintPreview(dict); |
| 791 | 812 |
| 792 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 813 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 793 VerifyDefaultPageLayout(571, 652, 69, 71, 20, 21, true); | 814 VerifyDefaultPageLayout(571, 652, 69, 71, 20, 21, true); |
| 794 VerifyPrintPreviewCancelled(false); | 815 VerifyPrintPreviewCancelled(false); |
| 795 VerifyPrintPreviewFailed(false); | 816 VerifyPrintPreviewFailed(false); |
| 796 } | 817 } |
| 797 | 818 |
| 798 // Test to verify that print preview workflow honor the orientation settings | 819 // Test to verify that print preview workflow honor the orientation settings |
| 799 // specified in css. | 820 // specified in css. |
| 800 TEST_F(PrintWebViewHelperPreviewTest, PrintPreviewHonorsOrientationCss) { | 821 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, PrintPreviewHonorsOrientationCss) { |
| 801 LoadHTML(kHTMLWithLandscapePageCss); | 822 LoadHTML(kHTMLWithLandscapePageCss); |
| 802 | 823 |
| 803 // Fill in some dummy values. | 824 // Fill in some dummy values. |
| 804 base::DictionaryValue dict; | 825 base::DictionaryValue dict; |
| 805 CreatePrintSettingsDictionary(&dict); | 826 CreatePrintSettingsDictionary(&dict); |
| 806 dict.SetBoolean(kSettingPrintToPDF, false); | 827 dict.SetBoolean(kSettingPrintToPDF, false); |
| 807 dict.SetInteger(kSettingMarginsType, NO_MARGINS); | 828 dict.SetInteger(kSettingMarginsType, NO_MARGINS); |
| 808 OnPrintPreview(dict); | 829 OnPrintPreview(dict); |
| 809 | 830 |
| 810 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 831 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 811 VerifyDefaultPageLayout(792, 612, 0, 0, 0, 0, true); | 832 VerifyDefaultPageLayout(792, 612, 0, 0, 0, 0, true); |
| 812 VerifyPrintPreviewCancelled(false); | 833 VerifyPrintPreviewCancelled(false); |
| 813 VerifyPrintPreviewFailed(false); | 834 VerifyPrintPreviewFailed(false); |
| 814 } | 835 } |
| 815 | 836 |
| 816 // Test to verify that print preview workflow honors the orientation settings | 837 // Test to verify that print preview workflow honors the orientation settings |
| 817 // specified in css when PRINT_TO_PDF is selected. | 838 // specified in css when PRINT_TO_PDF is selected. |
| 818 TEST_F(PrintWebViewHelperPreviewTest, PrintToPDFSelectedHonorOrientationCss) { | 839 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 840 PrintToPDFSelectedHonorOrientationCss) { |
| 819 LoadHTML(kHTMLWithLandscapePageCss); | 841 LoadHTML(kHTMLWithLandscapePageCss); |
| 820 | 842 |
| 821 // Fill in some dummy values. | 843 // Fill in some dummy values. |
| 822 base::DictionaryValue dict; | 844 base::DictionaryValue dict; |
| 823 CreatePrintSettingsDictionary(&dict); | 845 CreatePrintSettingsDictionary(&dict); |
| 824 dict.SetBoolean(kSettingPrintToPDF, true); | 846 dict.SetBoolean(kSettingPrintToPDF, true); |
| 825 dict.SetInteger(kSettingMarginsType, CUSTOM_MARGINS); | 847 dict.SetInteger(kSettingMarginsType, CUSTOM_MARGINS); |
| 826 OnPrintPreview(dict); | 848 OnPrintPreview(dict); |
| 827 | 849 |
| 828 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 850 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 829 VerifyDefaultPageLayout(748, 568, 21, 23, 21, 23, true); | 851 VerifyDefaultPageLayout(748, 568, 21, 23, 21, 23, true); |
| 830 VerifyPrintPreviewCancelled(false); | 852 VerifyPrintPreviewCancelled(false); |
| 831 VerifyPrintPreviewFailed(false); | 853 VerifyPrintPreviewFailed(false); |
| 832 } | 854 } |
| 833 | 855 |
| 834 // Test to verify that complete metafile is generated for a subset of pages | 856 // Test to verify that complete metafile is generated for a subset of pages |
| 835 // without creating draft pages. | 857 // without creating draft pages. |
| 836 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewForSelectedPages) { | 858 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreviewForSelectedPages) { |
| 837 LoadHTML(kMultipageHTML); | 859 LoadHTML(kMultipageHTML); |
| 838 | 860 |
| 839 // Fill in some dummy values. | 861 // Fill in some dummy values. |
| 840 base::DictionaryValue dict; | 862 base::DictionaryValue dict; |
| 841 CreatePrintSettingsDictionary(&dict); | 863 CreatePrintSettingsDictionary(&dict); |
| 842 | 864 |
| 843 // Set a page range and update the dictionary to generate only the complete | 865 // Set a page range and update the dictionary to generate only the complete |
| 844 // metafile with the selected pages. Page numbers used in the dictionary | 866 // metafile with the selected pages. Page numbers used in the dictionary |
| 845 // are 1-based. | 867 // are 1-based. |
| 846 base::DictionaryValue* page_range = new base::DictionaryValue(); | 868 base::DictionaryValue* page_range = new base::DictionaryValue(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 859 VerifyDidPreviewPage(false, 1); | 881 VerifyDidPreviewPage(false, 1); |
| 860 VerifyDidPreviewPage(false, 2); | 882 VerifyDidPreviewPage(false, 2); |
| 861 VerifyPreviewPageCount(3); | 883 VerifyPreviewPageCount(3); |
| 862 VerifyPrintPreviewCancelled(false); | 884 VerifyPrintPreviewCancelled(false); |
| 863 VerifyPrintPreviewFailed(false); | 885 VerifyPrintPreviewFailed(false); |
| 864 VerifyPrintPreviewGenerated(true); | 886 VerifyPrintPreviewGenerated(true); |
| 865 VerifyPagesPrinted(false); | 887 VerifyPagesPrinted(false); |
| 866 } | 888 } |
| 867 | 889 |
| 868 // Test to verify that preview generated only for one page. | 890 // Test to verify that preview generated only for one page. |
| 869 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewForSelectedText) { | 891 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreviewForSelectedText) { |
| 870 LoadHTML(kMultipageHTML); | 892 LoadHTML(kMultipageHTML); |
| 871 GetMainFrame()->selectRange( | 893 GetMainFrame()->selectRange( |
| 872 blink::WebRange::fromDocumentRange(GetMainFrame(), 1, 3)); | 894 blink::WebRange::fromDocumentRange(GetMainFrame(), 1, 3)); |
| 873 | 895 |
| 874 // Fill in some dummy values. | 896 // Fill in some dummy values. |
| 875 base::DictionaryValue dict; | 897 base::DictionaryValue dict; |
| 876 CreatePrintSettingsDictionary(&dict); | 898 CreatePrintSettingsDictionary(&dict); |
| 877 dict.SetBoolean(kSettingShouldPrintSelectionOnly, true); | 899 dict.SetBoolean(kSettingShouldPrintSelectionOnly, true); |
| 878 | 900 |
| 879 OnPrintPreview(dict); | 901 OnPrintPreview(dict); |
| 880 | 902 |
| 881 VerifyPreviewPageCount(1); | 903 VerifyPreviewPageCount(1); |
| 882 VerifyPrintPreviewCancelled(false); | 904 VerifyPrintPreviewCancelled(false); |
| 883 VerifyPrintPreviewFailed(false); | 905 VerifyPrintPreviewFailed(false); |
| 884 VerifyPrintPreviewGenerated(true); | 906 VerifyPrintPreviewGenerated(true); |
| 885 VerifyPagesPrinted(false); | 907 VerifyPagesPrinted(false); |
| 886 } | 908 } |
| 887 | 909 |
| 888 // Tests that print preview fails and receiving error messages through | 910 // Tests that print preview fails and receiving error messages through |
| 889 // that channel all works. | 911 // that channel all works. |
| 890 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewFail) { | 912 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreviewFail) { |
| 891 LoadHTML(kHelloWorldHTML); | 913 LoadHTML(kHelloWorldHTML); |
| 892 | 914 |
| 893 // An empty dictionary should fail. | 915 // An empty dictionary should fail. |
| 894 base::DictionaryValue empty_dict; | 916 base::DictionaryValue empty_dict; |
| 895 OnPrintPreview(empty_dict); | 917 OnPrintPreview(empty_dict); |
| 896 | 918 |
| 897 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 919 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 898 VerifyPrintPreviewCancelled(false); | 920 VerifyPrintPreviewCancelled(false); |
| 899 VerifyPrintPreviewFailed(true); | 921 VerifyPrintPreviewFailed(true); |
| 900 VerifyPrintPreviewGenerated(false); | 922 VerifyPrintPreviewGenerated(false); |
| 901 VerifyPagesPrinted(false); | 923 VerifyPagesPrinted(false); |
| 902 } | 924 } |
| 903 | 925 |
| 904 // Tests that cancelling print preview works. | 926 // Tests that cancelling print preview works. |
| 905 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewCancel) { | 927 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreviewCancel) { |
| 906 LoadHTML(kLongPageHTML); | 928 LoadHTML(kLongPageHTML); |
| 907 | 929 |
| 908 const int kCancelPage = 3; | 930 const int kCancelPage = 3; |
| 909 print_render_thread_->set_print_preview_cancel_page_number(kCancelPage); | 931 print_render_thread_->set_print_preview_cancel_page_number(kCancelPage); |
| 910 // Fill in some dummy values. | 932 // Fill in some dummy values. |
| 911 base::DictionaryValue dict; | 933 base::DictionaryValue dict; |
| 912 CreatePrintSettingsDictionary(&dict); | 934 CreatePrintSettingsDictionary(&dict); |
| 913 OnPrintPreview(dict); | 935 OnPrintPreview(dict); |
| 914 | 936 |
| 915 EXPECT_EQ(kCancelPage, print_render_thread_->print_preview_pages_remaining()); | 937 EXPECT_EQ(kCancelPage, print_render_thread_->print_preview_pages_remaining()); |
| 916 VerifyPrintPreviewCancelled(true); | 938 VerifyPrintPreviewCancelled(true); |
| 917 VerifyPrintPreviewFailed(false); | 939 VerifyPrintPreviewFailed(false); |
| 918 VerifyPrintPreviewGenerated(false); | 940 VerifyPrintPreviewGenerated(false); |
| 919 VerifyPagesPrinted(false); | 941 VerifyPagesPrinted(false); |
| 920 } | 942 } |
| 921 | 943 |
| 922 // Tests that printing from print preview works and sending and receiving | 944 // Tests that printing from print preview works and sending and receiving |
| 923 // messages through that channel all works. | 945 // messages through that channel all works. |
| 924 TEST_F(PrintWebViewHelperPreviewTest, OnPrintForPrintPreview) { | 946 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintForPrintPreview) { |
| 925 LoadHTML(kPrintPreviewHTML); | 947 LoadHTML(kPrintPreviewHTML); |
| 926 | 948 |
| 927 // Fill in some dummy values. | 949 // Fill in some dummy values. |
| 928 base::DictionaryValue dict; | 950 base::DictionaryValue dict; |
| 929 CreatePrintSettingsDictionary(&dict); | 951 CreatePrintSettingsDictionary(&dict); |
| 930 OnPrintForPrintPreview(dict); | 952 OnPrintForPrintPreview(dict); |
| 931 | 953 |
| 932 VerifyPrintFailed(false); | 954 VerifyPrintFailed(false); |
| 933 VerifyPagesPrinted(true); | 955 VerifyPagesPrinted(true); |
| 934 } | 956 } |
| 935 | 957 |
| 936 // Tests that printing from print preview fails and receiving error messages | 958 // Tests that printing from print preview fails and receiving error messages |
| 937 // through that channel all works. | 959 // through that channel all works. |
| 938 TEST_F(PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { | 960 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { |
| 939 LoadHTML(kPrintPreviewHTML); | 961 LoadHTML(kPrintPreviewHTML); |
| 940 | 962 |
| 941 // An empty dictionary should fail. | 963 // An empty dictionary should fail. |
| 942 base::DictionaryValue empty_dict; | 964 base::DictionaryValue empty_dict; |
| 943 OnPrintForPrintPreview(empty_dict); | 965 OnPrintForPrintPreview(empty_dict); |
| 944 | 966 |
| 945 VerifyPagesPrinted(false); | 967 VerifyPagesPrinted(false); |
| 946 } | 968 } |
| 947 | 969 |
| 948 // Tests that when default printer has invalid printer settings, print preview | 970 // Tests that when default printer has invalid printer settings, print preview |
| 949 // receives error message. | 971 // receives error message. |
| 950 TEST_F(PrintWebViewHelperPreviewTest, | 972 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 951 OnPrintPreviewUsingInvalidPrinterSettings) { | 973 OnPrintPreviewUsingInvalidPrinterSettings) { |
| 952 LoadHTML(kPrintPreviewHTML); | 974 LoadHTML(kPrintPreviewHTML); |
| 953 | 975 |
| 954 // Set mock printer to provide invalid settings. | 976 // Set mock printer to provide invalid settings. |
| 955 print_render_thread_->printer()->UseInvalidSettings(); | 977 print_render_thread_->printer()->UseInvalidSettings(); |
| 956 | 978 |
| 957 // Fill in some dummy values. | 979 // Fill in some dummy values. |
| 958 base::DictionaryValue dict; | 980 base::DictionaryValue dict; |
| 959 CreatePrintSettingsDictionary(&dict); | 981 CreatePrintSettingsDictionary(&dict); |
| 960 OnPrintPreview(dict); | 982 OnPrintPreview(dict); |
| 961 | 983 |
| 962 // We should have received invalid printer settings from |printer_|. | 984 // We should have received invalid printer settings from |printer_|. |
| 963 VerifyPrintPreviewInvalidPrinterSettings(true); | 985 VerifyPrintPreviewInvalidPrinterSettings(true); |
| 964 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 986 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 965 | 987 |
| 966 // It should receive the invalid printer settings message only. | 988 // It should receive the invalid printer settings message only. |
| 967 VerifyPrintPreviewFailed(false); | 989 VerifyPrintPreviewFailed(false); |
| 968 VerifyPrintPreviewGenerated(false); | 990 VerifyPrintPreviewGenerated(false); |
| 969 } | 991 } |
| 970 | 992 |
| 971 // Tests that when the selected printer has invalid page settings, print preview | 993 // Tests that when the selected printer has invalid page settings, print preview |
| 972 // receives error message. | 994 // receives error message. |
| 973 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewUsingInvalidPageSize) { | 995 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 996 OnPrintPreviewUsingInvalidPageSize) { |
| 974 LoadHTML(kPrintPreviewHTML); | 997 LoadHTML(kPrintPreviewHTML); |
| 975 | 998 |
| 976 print_render_thread_->printer()->UseInvalidPageSize(); | 999 print_render_thread_->printer()->UseInvalidPageSize(); |
| 977 | 1000 |
| 978 base::DictionaryValue dict; | 1001 base::DictionaryValue dict; |
| 979 CreatePrintSettingsDictionary(&dict); | 1002 CreatePrintSettingsDictionary(&dict); |
| 980 OnPrintPreview(dict); | 1003 OnPrintPreview(dict); |
| 981 | 1004 |
| 982 VerifyPrintPreviewInvalidPrinterSettings(true); | 1005 VerifyPrintPreviewInvalidPrinterSettings(true); |
| 983 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 1006 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 984 | 1007 |
| 985 // It should receive the invalid printer settings message only. | 1008 // It should receive the invalid printer settings message only. |
| 986 VerifyPrintPreviewFailed(false); | 1009 VerifyPrintPreviewFailed(false); |
| 987 VerifyPrintPreviewGenerated(false); | 1010 VerifyPrintPreviewGenerated(false); |
| 988 } | 1011 } |
| 989 | 1012 |
| 990 // Tests that when the selected printer has invalid content settings, print | 1013 // Tests that when the selected printer has invalid content settings, print |
| 991 // preview receives error message. | 1014 // preview receives error message. |
| 992 TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewUsingInvalidContentSize) { | 1015 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 1016 OnPrintPreviewUsingInvalidContentSize) { |
| 993 LoadHTML(kPrintPreviewHTML); | 1017 LoadHTML(kPrintPreviewHTML); |
| 994 | 1018 |
| 995 print_render_thread_->printer()->UseInvalidContentSize(); | 1019 print_render_thread_->printer()->UseInvalidContentSize(); |
| 996 | 1020 |
| 997 base::DictionaryValue dict; | 1021 base::DictionaryValue dict; |
| 998 CreatePrintSettingsDictionary(&dict); | 1022 CreatePrintSettingsDictionary(&dict); |
| 999 OnPrintPreview(dict); | 1023 OnPrintPreview(dict); |
| 1000 | 1024 |
| 1001 VerifyPrintPreviewInvalidPrinterSettings(true); | 1025 VerifyPrintPreviewInvalidPrinterSettings(true); |
| 1002 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 1026 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 1003 | 1027 |
| 1004 // It should receive the invalid printer settings message only. | 1028 // It should receive the invalid printer settings message only. |
| 1005 VerifyPrintPreviewFailed(false); | 1029 VerifyPrintPreviewFailed(false); |
| 1006 VerifyPrintPreviewGenerated(false); | 1030 VerifyPrintPreviewGenerated(false); |
| 1007 } | 1031 } |
| 1008 | 1032 |
| 1009 TEST_F(PrintWebViewHelperPreviewTest, | 1033 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 1010 OnPrintForPrintPreviewUsingInvalidPrinterSettings) { | 1034 OnPrintForPrintPreviewUsingInvalidPrinterSettings) { |
| 1011 LoadHTML(kPrintPreviewHTML); | 1035 LoadHTML(kPrintPreviewHTML); |
| 1012 | 1036 |
| 1013 // Set mock printer to provide invalid settings. | 1037 // Set mock printer to provide invalid settings. |
| 1014 print_render_thread_->printer()->UseInvalidSettings(); | 1038 print_render_thread_->printer()->UseInvalidSettings(); |
| 1015 | 1039 |
| 1016 // Fill in some dummy values. | 1040 // Fill in some dummy values. |
| 1017 base::DictionaryValue dict; | 1041 base::DictionaryValue dict; |
| 1018 CreatePrintSettingsDictionary(&dict); | 1042 CreatePrintSettingsDictionary(&dict); |
| 1019 OnPrintForPrintPreview(dict); | 1043 OnPrintForPrintPreview(dict); |
| 1020 | 1044 |
| 1021 VerifyPrintFailed(true); | 1045 VerifyPrintFailed(true); |
| 1022 VerifyPagesPrinted(false); | 1046 VerifyPagesPrinted(false); |
| 1023 } | 1047 } |
| 1024 | 1048 |
| 1025 #endif // !defined(OS_CHROMEOS) | 1049 #endif // !defined(OS_CHROMEOS) |
| 1026 | 1050 |
| 1027 } // namespace printing | 1051 } // namespace printing |
| OLD | NEW |