| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 // A simple web page. | 41 // A simple web page. |
| 42 const char kHelloWorldHTML[] = "<body><p>Hello World!</p></body>"; | 42 const char kHelloWorldHTML[] = "<body><p>Hello World!</p></body>"; |
| 43 | 43 |
| 44 // A simple webpage with a button to print itself with. | 44 // A simple webpage with a button to print itself with. |
| 45 const char kPrintOnUserAction[] = | 45 const char kPrintOnUserAction[] = |
| 46 "<body>" | 46 "<body>" |
| 47 " <button id=\"print\" onclick=\"window.print();\">Hello World!</button>" | 47 " <button id=\"print\" onclick=\"window.print();\">Hello World!</button>" |
| 48 "</body>"; | 48 "</body>"; |
| 49 | 49 |
| 50 #if defined(ENABLE_PRINT_PREVIEW) |
| 50 // HTML with 3 pages. | 51 // HTML with 3 pages. |
| 51 const char kMultipageHTML[] = | 52 const char kMultipageHTML[] = |
| 52 "<html><head><style>" | 53 "<html><head><style>" |
| 53 ".break { page-break-after: always; }" | 54 ".break { page-break-after: always; }" |
| 54 "</style></head>" | 55 "</style></head>" |
| 55 "<body>" | 56 "<body>" |
| 56 "<div class='break'>page1</div>" | 57 "<div class='break'>page1</div>" |
| 57 "<div class='break'>page2</div>" | 58 "<div class='break'>page2</div>" |
| 58 "<div>page3</div>" | 59 "<div>page3</div>" |
| 59 "</body></html>"; | 60 "</body></html>"; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 dict->SetInteger(kPreviewUIID, 4); | 102 dict->SetInteger(kPreviewUIID, 4); |
| 102 dict->SetInteger(kPreviewRequestID, 12345); | 103 dict->SetInteger(kPreviewRequestID, 12345); |
| 103 dict->SetBoolean(kIsFirstRequest, true); | 104 dict->SetBoolean(kIsFirstRequest, true); |
| 104 dict->SetInteger(kSettingMarginsType, DEFAULT_MARGINS); | 105 dict->SetInteger(kSettingMarginsType, DEFAULT_MARGINS); |
| 105 dict->SetBoolean(kSettingPreviewModifiable, false); | 106 dict->SetBoolean(kSettingPreviewModifiable, false); |
| 106 dict->SetBoolean(kSettingHeaderFooterEnabled, false); | 107 dict->SetBoolean(kSettingHeaderFooterEnabled, false); |
| 107 dict->SetBoolean(kSettingGenerateDraftData, true); | 108 dict->SetBoolean(kSettingGenerateDraftData, true); |
| 108 dict->SetBoolean(kSettingShouldPrintBackgrounds, false); | 109 dict->SetBoolean(kSettingShouldPrintBackgrounds, false); |
| 109 dict->SetBoolean(kSettingShouldPrintSelectionOnly, false); | 110 dict->SetBoolean(kSettingShouldPrintSelectionOnly, false); |
| 110 } | 111 } |
| 112 #endif // defined(ENABLE_PRINT_PREVIEW) |
| 111 #endif // !defined(OS_CHROMEOS) | 113 #endif // !defined(OS_CHROMEOS) |
| 112 | 114 |
| 115 #if defined(ENABLE_PRINT_PREVIEW) |
| 113 class DidPreviewPageListener : public IPC::Listener { | 116 class DidPreviewPageListener : public IPC::Listener { |
| 114 public: | 117 public: |
| 115 explicit DidPreviewPageListener(base::RunLoop* run_loop) | 118 explicit DidPreviewPageListener(base::RunLoop* run_loop) |
| 116 : run_loop_(run_loop) {} | 119 : run_loop_(run_loop) {} |
| 117 | 120 |
| 118 bool OnMessageReceived(const IPC::Message& message) override { | 121 bool OnMessageReceived(const IPC::Message& message) override { |
| 119 if (message.type() == PrintHostMsg_MetafileReadyForPrinting::ID || | 122 if (message.type() == PrintHostMsg_MetafileReadyForPrinting::ID || |
| 120 message.type() == PrintHostMsg_PrintPreviewFailed::ID || | 123 message.type() == PrintHostMsg_PrintPreviewFailed::ID || |
| 121 message.type() == PrintHostMsg_PrintPreviewCancelled::ID) | 124 message.type() == PrintHostMsg_PrintPreviewCancelled::ID) |
| 122 run_loop_->Quit(); | 125 run_loop_->Quit(); |
| 123 return false; | 126 return false; |
| 124 } | 127 } |
| 125 | 128 |
| 126 private: | 129 private: |
| 127 base::RunLoop* const run_loop_; | 130 base::RunLoop* const run_loop_; |
| 128 DISALLOW_COPY_AND_ASSIGN(DidPreviewPageListener); | 131 DISALLOW_COPY_AND_ASSIGN(DidPreviewPageListener); |
| 129 }; | 132 }; |
| 133 #endif // defined(ENABLE_PRINT_PREVIEW) |
| 130 | 134 |
| 131 } // namespace | 135 } // namespace |
| 132 | 136 |
| 133 class PrintWebViewHelperTestBase : public content::RenderViewTest { | 137 class PrintWebViewHelperTestBase : public content::RenderViewTest { |
| 134 public: | 138 public: |
| 135 PrintWebViewHelperTestBase() : print_render_thread_(NULL) {} | 139 PrintWebViewHelperTestBase() : print_render_thread_(NULL) {} |
| 136 ~PrintWebViewHelperTestBase() override {} | 140 ~PrintWebViewHelperTestBase() override {} |
| 137 | 141 |
| 138 protected: | 142 protected: |
| 139 void SetUp() override { | 143 void SetUp() override { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 render_thread_->sink().GetUniqueMessageMatching( | 177 render_thread_->sink().GetUniqueMessageMatching( |
| 174 PrintHostMsg_DidGetPrintedPagesCount::ID); | 178 PrintHostMsg_DidGetPrintedPagesCount::ID); |
| 175 ASSERT_TRUE(page_cnt_msg); | 179 ASSERT_TRUE(page_cnt_msg); |
| 176 PrintHostMsg_DidGetPrintedPagesCount::Param post_page_count_param; | 180 PrintHostMsg_DidGetPrintedPagesCount::Param post_page_count_param; |
| 177 PrintHostMsg_DidGetPrintedPagesCount::Read(page_cnt_msg, | 181 PrintHostMsg_DidGetPrintedPagesCount::Read(page_cnt_msg, |
| 178 &post_page_count_param); | 182 &post_page_count_param); |
| 179 EXPECT_EQ(count, base::get<1>(post_page_count_param)); | 183 EXPECT_EQ(count, base::get<1>(post_page_count_param)); |
| 180 #endif // defined(OS_CHROMEOS) | 184 #endif // defined(OS_CHROMEOS) |
| 181 } | 185 } |
| 182 | 186 |
| 187 #if defined(ENABLE_PRINT_PREVIEW) |
| 183 // The renderer should be done calculating the number of rendered pages | 188 // The renderer should be done calculating the number of rendered pages |
| 184 // according to the specified settings defined in the mock render thread. | 189 // according to the specified settings defined in the mock render thread. |
| 185 // Verify the page count is correct. | 190 // Verify the page count is correct. |
| 186 void VerifyPreviewPageCount(int count) { | 191 void VerifyPreviewPageCount(int count) { |
| 187 const IPC::Message* page_cnt_msg = | 192 const IPC::Message* page_cnt_msg = |
| 188 render_thread_->sink().GetUniqueMessageMatching( | 193 render_thread_->sink().GetUniqueMessageMatching( |
| 189 PrintHostMsg_DidGetPreviewPageCount::ID); | 194 PrintHostMsg_DidGetPreviewPageCount::ID); |
| 190 ASSERT_TRUE(page_cnt_msg); | 195 ASSERT_TRUE(page_cnt_msg); |
| 191 PrintHostMsg_DidGetPreviewPageCount::Param post_page_count_param; | 196 PrintHostMsg_DidGetPreviewPageCount::Param post_page_count_param; |
| 192 PrintHostMsg_DidGetPreviewPageCount::Read(page_cnt_msg, | 197 PrintHostMsg_DidGetPreviewPageCount::Read(page_cnt_msg, |
| 193 &post_page_count_param); | 198 &post_page_count_param); |
| 194 EXPECT_EQ(count, base::get<0>(post_page_count_param).page_count); | 199 EXPECT_EQ(count, base::get<0>(post_page_count_param).page_count); |
| 195 } | 200 } |
| 201 #endif // defined(ENABLE_PRINT_PREVIEW) |
| 196 | 202 |
| 197 // Verifies whether the pages printed or not. | 203 // Verifies whether the pages printed or not. |
| 198 void VerifyPagesPrinted(bool printed) { | 204 void VerifyPagesPrinted(bool printed) { |
| 199 const IPC::Message* print_msg = | 205 const IPC::Message* print_msg = |
| 200 render_thread_->sink().GetUniqueMessageMatching( | 206 render_thread_->sink().GetUniqueMessageMatching( |
| 201 PrintHostMsg_DidPrintPage::ID); | 207 PrintHostMsg_DidPrintPage::ID); |
| 202 bool did_print_msg = (NULL != print_msg); | 208 bool did_print_msg = (NULL != print_msg); |
| 203 ASSERT_EQ(printed, did_print_msg); | 209 ASSERT_EQ(printed, did_print_msg); |
| 204 if (printed) { | 210 if (printed) { |
| 205 PrintHostMsg_DidPrintPage::Param post_did_print_page_param; | 211 PrintHostMsg_DidPrintPage::Param post_did_print_page_param; |
| 206 PrintHostMsg_DidPrintPage::Read(print_msg, &post_did_print_page_param); | 212 PrintHostMsg_DidPrintPage::Read(print_msg, &post_did_print_page_param); |
| 207 EXPECT_EQ(0, base::get<0>(post_did_print_page_param).page_number); | 213 EXPECT_EQ(0, base::get<0>(post_did_print_page_param).page_number); |
| 208 } | 214 } |
| 209 } | 215 } |
| 210 | 216 |
| 211 #if defined(ENABLE_BASIC_PRINTING) | 217 #if defined(ENABLE_BASIC_PRINTING) |
| 212 void OnPrintPages() { | 218 void OnPrintPages() { |
| 213 PrintWebViewHelper::Get(view_)->OnPrintPages(); | 219 PrintWebViewHelper::Get(view_)->OnPrintPages(); |
| 214 ProcessPendingMessages(); | 220 ProcessPendingMessages(); |
| 215 } | 221 } |
| 216 #endif // ENABLE_BASIC_PRINTING | 222 #endif // defined(ENABLE_BASIC_PRINTING) |
| 217 | 223 |
| 224 #if defined(ENABLE_PRINT_PREVIEW) |
| 218 void VerifyPreviewRequest(bool requested) { | 225 void VerifyPreviewRequest(bool requested) { |
| 219 const IPC::Message* print_msg = | 226 const IPC::Message* print_msg = |
| 220 render_thread_->sink().GetUniqueMessageMatching( | 227 render_thread_->sink().GetUniqueMessageMatching( |
| 221 PrintHostMsg_SetupScriptedPrintPreview::ID); | 228 PrintHostMsg_SetupScriptedPrintPreview::ID); |
| 222 bool did_print_msg = (NULL != print_msg); | 229 bool did_print_msg = (NULL != print_msg); |
| 223 ASSERT_EQ(requested, did_print_msg); | 230 ASSERT_EQ(requested, did_print_msg); |
| 224 } | 231 } |
| 225 | 232 |
| 226 void OnPrintPreview(const base::DictionaryValue& dict) { | 233 void OnPrintPreview(const base::DictionaryValue& dict) { |
| 227 PrintWebViewHelper* print_web_view_helper = PrintWebViewHelper::Get(view_); | 234 PrintWebViewHelper* print_web_view_helper = PrintWebViewHelper::Get(view_); |
| 228 print_web_view_helper->OnInitiatePrintPreview(false); | 235 print_web_view_helper->OnInitiatePrintPreview(false); |
| 229 base::RunLoop run_loop; | 236 base::RunLoop run_loop; |
| 230 DidPreviewPageListener filter(&run_loop); | 237 DidPreviewPageListener filter(&run_loop); |
| 231 render_thread_->sink().AddFilter(&filter); | 238 render_thread_->sink().AddFilter(&filter); |
| 232 print_web_view_helper->OnPrintPreview(dict); | 239 print_web_view_helper->OnPrintPreview(dict); |
| 233 run_loop.Run(); | 240 run_loop.Run(); |
| 234 render_thread_->sink().RemoveFilter(&filter); | 241 render_thread_->sink().RemoveFilter(&filter); |
| 235 } | 242 } |
| 243 #endif // defined(ENABLE_PRINT_PREVIEW) |
| 236 | 244 |
| 245 #if defined(ENABLE_BASIC_PRINTING) |
| 237 void OnPrintForPrintPreview(const base::DictionaryValue& dict) { | 246 void OnPrintForPrintPreview(const base::DictionaryValue& dict) { |
| 238 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(dict); | 247 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(dict); |
| 239 ProcessPendingMessages(); | 248 ProcessPendingMessages(); |
| 240 } | 249 } |
| 250 #endif // defined(ENABLE_BASIC_PRINTING) |
| 241 | 251 |
| 242 // Naked pointer as ownership is with content::RenderViewTest::render_thread_. | 252 // Naked pointer as ownership is with content::RenderViewTest::render_thread_. |
| 243 PrintMockRenderThread* print_render_thread_; | 253 PrintMockRenderThread* print_render_thread_; |
| 244 | 254 |
| 255 private: |
| 245 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperTestBase); | 256 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperTestBase); |
| 246 }; | 257 }; |
| 247 | 258 |
| 248 // RenderViewTest-based tests crash on Android | 259 // RenderViewTest-based tests crash on Android |
| 249 // http://crbug.com/187500 | 260 // http://crbug.com/187500 |
| 250 #if defined(OS_ANDROID) | 261 #if defined(OS_ANDROID) |
| 251 #define MAYBE_PrintWebViewHelperTest DISABLED_PrintWebViewHelperTest | 262 #define MAYBE_PrintWebViewHelperTest DISABLED_PrintWebViewHelperTest |
| 252 #else | 263 #else |
| 253 #define MAYBE_PrintWebViewHelperTest PrintWebViewHelperTest | 264 #define MAYBE_PrintWebViewHelperTest PrintWebViewHelperTest |
| 254 #endif // defined(OS_ANDROID) | 265 #endif // defined(OS_ANDROID) |
| 255 | 266 |
| 256 class MAYBE_PrintWebViewHelperTest : public PrintWebViewHelperTestBase { | 267 class MAYBE_PrintWebViewHelperTest : public PrintWebViewHelperTestBase { |
| 257 public: | 268 public: |
| 258 MAYBE_PrintWebViewHelperTest() {} | 269 MAYBE_PrintWebViewHelperTest() {} |
| 259 ~MAYBE_PrintWebViewHelperTest() override {} | 270 ~MAYBE_PrintWebViewHelperTest() override {} |
| 260 | 271 |
| 261 void SetUp() override { PrintWebViewHelperTestBase::SetUp(); } | 272 void SetUp() override { PrintWebViewHelperTestBase::SetUp(); } |
| 262 | 273 |
| 263 protected: | 274 private: |
| 264 DISALLOW_COPY_AND_ASSIGN(MAYBE_PrintWebViewHelperTest); | 275 DISALLOW_COPY_AND_ASSIGN(MAYBE_PrintWebViewHelperTest); |
| 265 }; | 276 }; |
| 266 | 277 |
| 267 // This tests only for platforms without print preview. | 278 // This tests only for platforms without print preview. |
| 268 #if !defined(ENABLE_PRINT_PREVIEW) | 279 #if !defined(ENABLE_PRINT_PREVIEW) |
| 269 // Tests that the renderer blocks window.print() calls if they occur too | 280 // Tests that the renderer blocks window.print() calls if they occur too |
| 270 // frequently. | 281 // frequently. |
| 271 TEST_F(MAYBE_PrintWebViewHelperTest, BlockScriptInitiatedPrinting) { | 282 TEST_F(MAYBE_PrintWebViewHelperTest, BlockScriptInitiatedPrinting) { |
| 272 // Pretend user will cancel printing. | 283 // Pretend user will cancel printing. |
| 273 print_render_thread_->set_print_dialog_user_response(false); | 284 print_render_thread_->set_print_dialog_user_response(false); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 VerifyPagesPrinted(true); | 340 VerifyPagesPrinted(true); |
| 330 } | 341 } |
| 331 | 342 |
| 332 // Duplicate of OnPrintPagesTest only using javascript to print. | 343 // Duplicate of OnPrintPagesTest only using javascript to print. |
| 333 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithJavascript) { | 344 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithJavascript) { |
| 334 PrintWithJavaScript(); | 345 PrintWithJavaScript(); |
| 335 | 346 |
| 336 VerifyPageCount(1); | 347 VerifyPageCount(1); |
| 337 VerifyPagesPrinted(true); | 348 VerifyPagesPrinted(true); |
| 338 } | 349 } |
| 339 #endif // !ENABLE_PRINT_PREVIEW | 350 #endif // !defined(ENABLE_PRINT_PREVIEW) |
| 340 | 351 |
| 341 #if defined(ENABLE_BASIC_PRINTING) | 352 #if defined(ENABLE_BASIC_PRINTING) |
| 342 // Tests that printing pages work and sending and receiving messages through | 353 // Tests that printing pages work and sending and receiving messages through |
| 343 // that channel all works. | 354 // that channel all works. |
| 344 TEST_F(MAYBE_PrintWebViewHelperTest, OnPrintPages) { | 355 TEST_F(MAYBE_PrintWebViewHelperTest, OnPrintPages) { |
| 345 LoadHTML(kHelloWorldHTML); | 356 LoadHTML(kHelloWorldHTML); |
| 346 OnPrintPages(); | 357 OnPrintPages(); |
| 347 | 358 |
| 348 VerifyPageCount(1); | 359 VerifyPageCount(1); |
| 349 VerifyPagesPrinted(true); | 360 VerifyPagesPrinted(true); |
| 350 } | 361 } |
| 351 #endif // ENABLE_BASIC_PRINTING | 362 #endif // defined(ENABLE_BASIC_PRINTING) |
| 352 | 363 |
| 353 #if defined(OS_MACOSX) && defined(ENABLE_BASIC_PRINTING) | 364 #if defined(OS_MACOSX) && defined(ENABLE_BASIC_PRINTING) |
| 354 // TODO(estade): I don't think this test is worth porting to Linux. We will have | 365 // TODO(estade): I don't think this test is worth porting to Linux. We will have |
| 355 // to rip out and replace most of the IPC code if we ever plan to improve | 366 // to rip out and replace most of the IPC code if we ever plan to improve |
| 356 // printing, and the comment below by sverrir suggests that it doesn't do much | 367 // printing, and the comment below by sverrir suggests that it doesn't do much |
| 357 // for us anyway. | 368 // for us anyway. |
| 358 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithIframe) { | 369 TEST_F(MAYBE_PrintWebViewHelperTest, PrintWithIframe) { |
| 359 // Document that populates an iframe. | 370 // Document that populates an iframe. |
| 360 const char html[] = | 371 const char html[] = |
| 361 "<html><body>Lorem Ipsum:" | 372 "<html><body>Lorem Ipsum:" |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 | 509 |
| 499 // RenderViewTest-based tests crash on Android | 510 // RenderViewTest-based tests crash on Android |
| 500 // http://crbug.com/187500 | 511 // http://crbug.com/187500 |
| 501 #if defined(OS_ANDROID) | 512 #if defined(OS_ANDROID) |
| 502 #define MAYBE_PrintWebViewHelperPreviewTest \ | 513 #define MAYBE_PrintWebViewHelperPreviewTest \ |
| 503 DISABLED_PrintWebViewHelperPreviewTest | 514 DISABLED_PrintWebViewHelperPreviewTest |
| 504 #else | 515 #else |
| 505 #define MAYBE_PrintWebViewHelperPreviewTest PrintWebViewHelperPreviewTest | 516 #define MAYBE_PrintWebViewHelperPreviewTest PrintWebViewHelperPreviewTest |
| 506 #endif // defined(OS_ANDROID) | 517 #endif // defined(OS_ANDROID) |
| 507 | 518 |
| 519 #if defined(ENABLE_PRINT_PREVIEW) |
| 508 class MAYBE_PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { | 520 class MAYBE_PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { |
| 509 public: | 521 public: |
| 510 MAYBE_PrintWebViewHelperPreviewTest() {} | 522 MAYBE_PrintWebViewHelperPreviewTest() {} |
| 511 ~MAYBE_PrintWebViewHelperPreviewTest() override {} | 523 ~MAYBE_PrintWebViewHelperPreviewTest() override {} |
| 512 | 524 |
| 513 protected: | 525 protected: |
| 514 void VerifyPrintPreviewCancelled(bool did_cancel) { | 526 void VerifyPrintPreviewCancelled(bool did_cancel) { |
| 515 bool print_preview_cancelled = | 527 bool print_preview_cancelled = |
| 516 (render_thread_->sink().GetUniqueMessageMatching( | 528 (render_thread_->sink().GetUniqueMessageMatching( |
| 517 PrintHostMsg_PrintPreviewCancelled::ID) != NULL); | 529 PrintHostMsg_PrintPreviewCancelled::ID) != NULL); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 EXPECT_EQ(content_width, base::get<0>(param).content_width); | 605 EXPECT_EQ(content_width, base::get<0>(param).content_width); |
| 594 EXPECT_EQ(content_height, base::get<0>(param).content_height); | 606 EXPECT_EQ(content_height, base::get<0>(param).content_height); |
| 595 EXPECT_EQ(margin_top, base::get<0>(param).margin_top); | 607 EXPECT_EQ(margin_top, base::get<0>(param).margin_top); |
| 596 EXPECT_EQ(margin_right, base::get<0>(param).margin_right); | 608 EXPECT_EQ(margin_right, base::get<0>(param).margin_right); |
| 597 EXPECT_EQ(margin_left, base::get<0>(param).margin_left); | 609 EXPECT_EQ(margin_left, base::get<0>(param).margin_left); |
| 598 EXPECT_EQ(margin_bottom, base::get<0>(param).margin_bottom); | 610 EXPECT_EQ(margin_bottom, base::get<0>(param).margin_bottom); |
| 599 EXPECT_EQ(page_has_print_css, base::get<2>(param)); | 611 EXPECT_EQ(page_has_print_css, base::get<2>(param)); |
| 600 } | 612 } |
| 601 } | 613 } |
| 602 | 614 |
| 615 private: |
| 603 DISALLOW_COPY_AND_ASSIGN(MAYBE_PrintWebViewHelperPreviewTest); | 616 DISALLOW_COPY_AND_ASSIGN(MAYBE_PrintWebViewHelperPreviewTest); |
| 604 }; | 617 }; |
| 605 | 618 |
| 606 #if defined(ENABLE_PRINT_PREVIEW) | |
| 607 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, BlockScriptInitiatedPrinting) { | 619 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, BlockScriptInitiatedPrinting) { |
| 608 LoadHTML(kHelloWorldHTML); | 620 LoadHTML(kHelloWorldHTML); |
| 609 PrintWebViewHelper* print_web_view_helper = PrintWebViewHelper::Get(view_); | 621 PrintWebViewHelper* print_web_view_helper = PrintWebViewHelper::Get(view_); |
| 610 print_web_view_helper->SetScriptedPrintBlocked(true); | 622 print_web_view_helper->SetScriptedPrintBlocked(true); |
| 611 PrintWithJavaScript(); | 623 PrintWithJavaScript(); |
| 612 VerifyPreviewRequest(false); | 624 VerifyPreviewRequest(false); |
| 613 | 625 |
| 614 print_web_view_helper->SetScriptedPrintBlocked(false); | 626 print_web_view_helper->SetScriptedPrintBlocked(false); |
| 615 PrintWithJavaScript(); | 627 PrintWithJavaScript(); |
| 616 VerifyPreviewRequest(true); | 628 VerifyPreviewRequest(true); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 628 mouse_event.button = blink::WebMouseEvent::ButtonLeft; | 640 mouse_event.button = blink::WebMouseEvent::ButtonLeft; |
| 629 mouse_event.x = bounds.CenterPoint().x(); | 641 mouse_event.x = bounds.CenterPoint().x(); |
| 630 mouse_event.y = bounds.CenterPoint().y(); | 642 mouse_event.y = bounds.CenterPoint().y(); |
| 631 mouse_event.clickCount = 1; | 643 mouse_event.clickCount = 1; |
| 632 SendWebMouseEvent(mouse_event); | 644 SendWebMouseEvent(mouse_event); |
| 633 mouse_event.type = blink::WebInputEvent::MouseUp; | 645 mouse_event.type = blink::WebInputEvent::MouseUp; |
| 634 SendWebMouseEvent(mouse_event); | 646 SendWebMouseEvent(mouse_event); |
| 635 | 647 |
| 636 VerifyPreviewRequest(true); | 648 VerifyPreviewRequest(true); |
| 637 } | 649 } |
| 638 #endif // ENABLE_PRINT_PREVIEW | |
| 639 | 650 |
| 640 // Tests that print preview work and sending and receiving messages through | 651 // Tests that print preview work and sending and receiving messages through |
| 641 // that channel all works. | 652 // that channel all works. |
| 642 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreview) { | 653 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintPreview) { |
| 643 LoadHTML(kHelloWorldHTML); | 654 LoadHTML(kHelloWorldHTML); |
| 644 | 655 |
| 645 // Fill in some dummy values. | 656 // Fill in some dummy values. |
| 646 base::DictionaryValue dict; | 657 base::DictionaryValue dict; |
| 647 CreatePrintSettingsDictionary(&dict); | 658 CreatePrintSettingsDictionary(&dict); |
| 648 OnPrintPreview(dict); | 659 OnPrintPreview(dict); |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 925 CreatePrintSettingsDictionary(&dict); | 936 CreatePrintSettingsDictionary(&dict); |
| 926 OnPrintPreview(dict); | 937 OnPrintPreview(dict); |
| 927 | 938 |
| 928 EXPECT_EQ(kCancelPage, print_render_thread_->print_preview_pages_remaining()); | 939 EXPECT_EQ(kCancelPage, print_render_thread_->print_preview_pages_remaining()); |
| 929 VerifyPrintPreviewCancelled(true); | 940 VerifyPrintPreviewCancelled(true); |
| 930 VerifyPrintPreviewFailed(false); | 941 VerifyPrintPreviewFailed(false); |
| 931 VerifyPrintPreviewGenerated(false); | 942 VerifyPrintPreviewGenerated(false); |
| 932 VerifyPagesPrinted(false); | 943 VerifyPagesPrinted(false); |
| 933 } | 944 } |
| 934 | 945 |
| 946 #if defined(ENABLE_BASIC_PRINTING) |
| 935 // Tests that printing from print preview works and sending and receiving | 947 // Tests that printing from print preview works and sending and receiving |
| 936 // messages through that channel all works. | 948 // messages through that channel all works. |
| 937 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintForPrintPreview) { | 949 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintForPrintPreview) { |
| 938 LoadHTML(kPrintPreviewHTML); | 950 LoadHTML(kPrintPreviewHTML); |
| 939 | 951 |
| 940 // Fill in some dummy values. | 952 // Fill in some dummy values. |
| 941 base::DictionaryValue dict; | 953 base::DictionaryValue dict; |
| 942 CreatePrintSettingsDictionary(&dict); | 954 CreatePrintSettingsDictionary(&dict); |
| 943 OnPrintForPrintPreview(dict); | 955 OnPrintForPrintPreview(dict); |
| 944 | 956 |
| 945 VerifyPrintFailed(false); | 957 VerifyPrintFailed(false); |
| 946 VerifyPagesPrinted(true); | 958 VerifyPagesPrinted(true); |
| 947 } | 959 } |
| 948 | 960 |
| 949 // Tests that printing from print preview fails and receiving error messages | 961 // Tests that printing from print preview fails and receiving error messages |
| 950 // through that channel all works. | 962 // through that channel all works. |
| 951 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { | 963 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { |
| 952 LoadHTML(kPrintPreviewHTML); | 964 LoadHTML(kPrintPreviewHTML); |
| 953 | 965 |
| 954 // An empty dictionary should fail. | 966 // An empty dictionary should fail. |
| 955 base::DictionaryValue empty_dict; | 967 base::DictionaryValue empty_dict; |
| 956 OnPrintForPrintPreview(empty_dict); | 968 OnPrintForPrintPreview(empty_dict); |
| 957 | 969 |
| 958 VerifyPagesPrinted(false); | 970 VerifyPagesPrinted(false); |
| 959 } | 971 } |
| 972 #endif // defined(ENABLE_BASIC_PRINTING) |
| 960 | 973 |
| 961 // Tests that when default printer has invalid printer settings, print preview | 974 // Tests that when default printer has invalid printer settings, print preview |
| 962 // receives error message. | 975 // receives error message. |
| 963 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, | 976 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 964 OnPrintPreviewUsingInvalidPrinterSettings) { | 977 OnPrintPreviewUsingInvalidPrinterSettings) { |
| 965 LoadHTML(kPrintPreviewHTML); | 978 LoadHTML(kPrintPreviewHTML); |
| 966 | 979 |
| 967 // Set mock printer to provide invalid settings. | 980 // Set mock printer to provide invalid settings. |
| 968 print_render_thread_->printer()->UseInvalidSettings(); | 981 print_render_thread_->printer()->UseInvalidSettings(); |
| 969 | 982 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1014 OnPrintPreview(dict); | 1027 OnPrintPreview(dict); |
| 1015 | 1028 |
| 1016 VerifyPrintPreviewInvalidPrinterSettings(true); | 1029 VerifyPrintPreviewInvalidPrinterSettings(true); |
| 1017 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); | 1030 EXPECT_EQ(0, print_render_thread_->print_preview_pages_remaining()); |
| 1018 | 1031 |
| 1019 // It should receive the invalid printer settings message only. | 1032 // It should receive the invalid printer settings message only. |
| 1020 VerifyPrintPreviewFailed(false); | 1033 VerifyPrintPreviewFailed(false); |
| 1021 VerifyPrintPreviewGenerated(false); | 1034 VerifyPrintPreviewGenerated(false); |
| 1022 } | 1035 } |
| 1023 | 1036 |
| 1037 #if defined(ENABLE_BASIC_PRINTING) |
| 1024 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, | 1038 TEST_F(MAYBE_PrintWebViewHelperPreviewTest, |
| 1025 OnPrintForPrintPreviewUsingInvalidPrinterSettings) { | 1039 OnPrintForPrintPreviewUsingInvalidPrinterSettings) { |
| 1026 LoadHTML(kPrintPreviewHTML); | 1040 LoadHTML(kPrintPreviewHTML); |
| 1027 | 1041 |
| 1028 // Set mock printer to provide invalid settings. | 1042 // Set mock printer to provide invalid settings. |
| 1029 print_render_thread_->printer()->UseInvalidSettings(); | 1043 print_render_thread_->printer()->UseInvalidSettings(); |
| 1030 | 1044 |
| 1031 // Fill in some dummy values. | 1045 // Fill in some dummy values. |
| 1032 base::DictionaryValue dict; | 1046 base::DictionaryValue dict; |
| 1033 CreatePrintSettingsDictionary(&dict); | 1047 CreatePrintSettingsDictionary(&dict); |
| 1034 OnPrintForPrintPreview(dict); | 1048 OnPrintForPrintPreview(dict); |
| 1035 | 1049 |
| 1036 VerifyPrintFailed(true); | 1050 VerifyPrintFailed(true); |
| 1037 VerifyPagesPrinted(false); | 1051 VerifyPagesPrinted(false); |
| 1038 } | 1052 } |
| 1053 #endif // defined(ENABLE_BASIC_PRINTING) |
| 1054 #endif // defined(ENABLE_PRINT_PREVIEW) |
| 1039 | 1055 |
| 1040 #endif // !defined(OS_CHROMEOS) | 1056 #endif // !defined(OS_CHROMEOS) |
| 1041 | 1057 |
| 1042 } // namespace printing | 1058 } // namespace printing |
| OLD | NEW |