| 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 "chrome/common/chrome_switches.h" | 7 #include "chrome/common/chrome_switches.h" |
| 8 #include "chrome/common/print_messages.h" | 8 #include "chrome/common/print_messages.h" |
| 9 #include "chrome/renderer/printing/mock_printer.h" | 9 #include "chrome/renderer/printing/mock_printer.h" |
| 10 #include "chrome/renderer/printing/print_web_view_helper.h" | 10 #include "chrome/renderer/printing/print_web_view_helper.h" |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 } | 235 } |
| 236 | 236 |
| 237 // Duplicate of OnPrintPagesTest only using javascript to print. | 237 // Duplicate of OnPrintPagesTest only using javascript to print. |
| 238 TEST_F(PrintWebViewHelperTest, PrintWithJavascript) { | 238 TEST_F(PrintWebViewHelperTest, PrintWithJavascript) { |
| 239 PrintWithJavaScript(); | 239 PrintWithJavaScript(); |
| 240 | 240 |
| 241 VerifyPageCount(1); | 241 VerifyPageCount(1); |
| 242 VerifyPagesPrinted(true); | 242 VerifyPagesPrinted(true); |
| 243 } | 243 } |
| 244 | 244 |
| 245 // Tests that the renderer blocks window.print() calls if they occur too | |
| 246 // frequently. | |
| 247 TEST_F(PrintWebViewHelperTest, BlockScriptInitiatedPrinting) { | |
| 248 // Pretend user will cancel printing. | |
| 249 chrome_render_thread_->set_print_dialog_user_response(false); | |
| 250 // Try to print with window.print() a few times. | |
| 251 PrintWithJavaScript(); | |
| 252 PrintWithJavaScript(); | |
| 253 PrintWithJavaScript(); | |
| 254 VerifyPagesPrinted(false); | |
| 255 | |
| 256 // Pretend user will print. (but printing is blocked.) | |
| 257 chrome_render_thread_->set_print_dialog_user_response(true); | |
| 258 PrintWithJavaScript(); | |
| 259 VerifyPagesPrinted(false); | |
| 260 | |
| 261 // Unblock script initiated printing and verify printing works. | |
| 262 PrintWebViewHelper::Get(view_)->ResetScriptedPrintCount(); | |
| 263 chrome_render_thread_->printer()->ResetPrinter(); | |
| 264 PrintWithJavaScript(); | |
| 265 VerifyPageCount(1); | |
| 266 VerifyPagesPrinted(true); | |
| 267 } | |
| 268 | |
| 269 // Tests that the renderer always allows window.print() calls if they are user | 245 // Tests that the renderer always allows window.print() calls if they are user |
| 270 // initiated. | 246 // initiated. |
| 271 TEST_F(PrintWebViewHelperTest, AllowUserOriginatedPrinting) { | 247 TEST_F(PrintWebViewHelperTest, AllowUserOriginatedPrinting) { |
| 272 // Pretend user will cancel printing. | 248 // Pretend user will cancel printing. |
| 273 chrome_render_thread_->set_print_dialog_user_response(false); | 249 chrome_render_thread_->set_print_dialog_user_response(false); |
| 274 // Try to print with window.print() a few times. | 250 // Try to print with window.print() a few times. |
| 275 PrintWithJavaScript(); | 251 PrintWithJavaScript(); |
| 276 PrintWithJavaScript(); | 252 PrintWithJavaScript(); |
| 277 PrintWithJavaScript(); | 253 PrintWithJavaScript(); |
| 278 VerifyPagesPrinted(false); | 254 VerifyPagesPrinted(false); |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 #endif | 436 #endif |
| 461 | 437 |
| 462 // These print preview tests do not work on Chrome OS yet. | 438 // These print preview tests do not work on Chrome OS yet. |
| 463 #if !defined(OS_CHROMEOS) | 439 #if !defined(OS_CHROMEOS) |
| 464 class PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { | 440 class PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { |
| 465 public: | 441 public: |
| 466 PrintWebViewHelperPreviewTest() {} | 442 PrintWebViewHelperPreviewTest() {} |
| 467 virtual ~PrintWebViewHelperPreviewTest() {} | 443 virtual ~PrintWebViewHelperPreviewTest() {} |
| 468 | 444 |
| 469 virtual void SetUp() OVERRIDE { | 445 virtual void SetUp() OVERRIDE { |
| 470 // Append the print preview switch before creating the PrintWebViewHelper. | |
| 471 CommandLine::ForCurrentProcess()->AppendSwitch( | |
| 472 switches::kRendererPrintPreview); | |
| 473 | |
| 474 ChromeRenderViewTest::SetUp(); | 446 ChromeRenderViewTest::SetUp(); |
| 475 } | 447 } |
| 476 | 448 |
| 477 protected: | 449 protected: |
| 478 void VerifyPrintPreviewCancelled(bool did_cancel) { | 450 void VerifyPrintPreviewCancelled(bool did_cancel) { |
| 479 bool print_preview_cancelled = | 451 bool print_preview_cancelled = |
| 480 (render_thread_->sink().GetUniqueMessageMatching( | 452 (render_thread_->sink().GetUniqueMessageMatching( |
| 481 PrintHostMsg_PrintPreviewCancelled::ID) != NULL); | 453 PrintHostMsg_PrintPreviewCancelled::ID) != NULL); |
| 482 EXPECT_EQ(did_cancel, print_preview_cancelled); | 454 EXPECT_EQ(did_cancel, print_preview_cancelled); |
| 483 } | 455 } |
| (...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 962 VerifyPagesPrinted(false); | 934 VerifyPagesPrinted(false); |
| 963 } | 935 } |
| 964 | 936 |
| 965 #endif // !defined(OS_CHROMEOS) | 937 #endif // !defined(OS_CHROMEOS) |
| 966 | 938 |
| 967 class PrintWebViewHelperKioskTest : public PrintWebViewHelperTestBase { | 939 class PrintWebViewHelperKioskTest : public PrintWebViewHelperTestBase { |
| 968 public: | 940 public: |
| 969 PrintWebViewHelperKioskTest() {} | 941 PrintWebViewHelperKioskTest() {} |
| 970 virtual ~PrintWebViewHelperKioskTest() {} | 942 virtual ~PrintWebViewHelperKioskTest() {} |
| 971 | 943 |
| 972 virtual void SetUp() OVERRIDE { | |
| 973 // Append the throttling disable switch before creating the | |
| 974 // PrintWebViewHelper. | |
| 975 CommandLine::ForCurrentProcess()->AppendSwitch( | |
| 976 switches::kDisableScriptedPrintThrottling); | |
| 977 | |
| 978 ChromeRenderViewTest::SetUp(); | |
| 979 } | |
| 980 | |
| 981 protected: | 944 protected: |
| 982 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperKioskTest); | 945 DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperKioskTest); |
| 983 }; | 946 }; |
| 984 | 947 |
| 985 // Tests that the switch overrides the throttling that blocks window.print() | 948 // Tests that the switch overrides the throttling that blocks window.print() |
| 986 // calls if they occur too frequently. Compare with | 949 // calls if they occur too frequently. Compare with |
| 987 // PrintWebViewHelperTest.BlockScriptInitiatedPrinting above. | 950 // PrintWebViewHelperTest.BlockScriptInitiatedPrinting above. |
| 988 TEST_F(PrintWebViewHelperKioskTest, DontBlockScriptInitiatedPrinting) { | 951 TEST_F(PrintWebViewHelperKioskTest, DontBlockScriptInitiatedPrinting) { |
| 989 // Pretend user will cancel printing. | 952 // Pretend user will cancel printing. |
| 990 chrome_render_thread_->set_print_dialog_user_response(false); | 953 chrome_render_thread_->set_print_dialog_user_response(false); |
| 991 // Try to print with window.print() a few times. | 954 // Try to print with window.print() a few times. |
| 992 PrintWithJavaScript(); | 955 PrintWithJavaScript(); |
| 993 chrome_render_thread_->printer()->ResetPrinter(); | 956 chrome_render_thread_->printer()->ResetPrinter(); |
| 994 PrintWithJavaScript(); | 957 PrintWithJavaScript(); |
| 995 chrome_render_thread_->printer()->ResetPrinter(); | 958 chrome_render_thread_->printer()->ResetPrinter(); |
| 996 PrintWithJavaScript(); | 959 PrintWithJavaScript(); |
| 997 chrome_render_thread_->printer()->ResetPrinter(); | 960 chrome_render_thread_->printer()->ResetPrinter(); |
| 998 VerifyPagesPrinted(false); | 961 VerifyPagesPrinted(false); |
| 999 | 962 |
| 1000 // Pretend user will print, should not be throttled. | 963 // Pretend user will print, should not be throttled. |
| 1001 chrome_render_thread_->set_print_dialog_user_response(true); | 964 chrome_render_thread_->set_print_dialog_user_response(true); |
| 1002 PrintWithJavaScript(); | 965 PrintWithJavaScript(); |
| 1003 VerifyPagesPrinted(true); | 966 VerifyPagesPrinted(true); |
| 1004 } | 967 } |
| 1005 | 968 |
| 1006 } // namespace printing | 969 } // namespace printing |
| OLD | NEW |