| Index: chrome/renderer/print_web_view_helper_browsertest.cc
|
| ===================================================================
|
| --- chrome/renderer/print_web_view_helper_browsertest.cc (revision 98330)
|
| +++ chrome/renderer/print_web_view_helper_browsertest.cc (working copy)
|
| @@ -29,6 +29,10 @@
|
| const char kPrintWithJSHTML[] =
|
| "<body>Hello<script>window.print()</script>World</body>";
|
|
|
| +// A longer web page.
|
| +const char kLongPageHTML[] =
|
| + "<body><img src=\"\" width=10 height=10000 /></body>";
|
| +
|
| // A web page to simulate the print preview page.
|
| const char kPrintPreviewHTML[] =
|
| "<body><p id=\"pdf-viewer\">Hello World!</p></body>";
|
| @@ -41,6 +45,7 @@
|
| dict->SetInteger(printing::kSettingDuplexMode, printing::SIMPLEX);
|
| dict->SetInteger(printing::kSettingCopies, 1);
|
| dict->SetString(printing::kSettingDeviceName, "dummy");
|
| + dict->SetString(printing::kPreviewUIAddr, "0xb33fbeef");
|
| dict->SetInteger(printing::kPreviewRequestID, 12345);
|
| dict->SetBoolean(printing::kIsFirstRequest, true);
|
| }
|
| @@ -304,6 +309,13 @@
|
| }
|
|
|
| protected:
|
| + void VerifyPrintPreviewCancelled(bool did_cancel) {
|
| + bool print_preview_cancelled =
|
| + (render_thread_.sink().GetUniqueMessageMatching(
|
| + PrintHostMsg_PrintPreviewCancelled::ID) != NULL);
|
| + EXPECT_EQ(did_cancel, print_preview_cancelled);
|
| + }
|
| +
|
| void VerifyPrintPreviewFailed(bool did_fail) {
|
| bool print_preview_failed = (render_thread_.sink().GetUniqueMessageMatching(
|
| PrintHostMsg_PrintPreviewFailed::ID) != NULL);
|
| @@ -345,14 +357,8 @@
|
| CreatePrintSettingsDictionary(&dict);
|
| PrintWebViewHelper::Get(view_)->OnPrintPreview(dict);
|
|
|
| - // Need to finish simulating print preview.
|
| - // Generate the page and finalize it.
|
| - PrintWebViewHelper::Get(view_)->OnContinuePreview(
|
| - printing::INVALID_PAGE_INDEX);
|
| - PrintWebViewHelper::Get(view_)->OnContinuePreview(
|
| - printing::INVALID_PAGE_INDEX);
|
| -
|
| EXPECT_EQ(0, render_thread_.print_preview_pages_remaining());
|
| + VerifyPrintPreviewCancelled(false);
|
| VerifyPrintPreviewFailed(false);
|
| VerifyPrintPreviewGenerated(true);
|
| VerifyPagesPrinted(false);
|
| @@ -369,11 +375,31 @@
|
| PrintWebViewHelper::Get(view_)->OnPrintPreview(empty_dict);
|
|
|
| EXPECT_EQ(0, render_thread_.print_preview_pages_remaining());
|
| + VerifyPrintPreviewCancelled(false);
|
| VerifyPrintPreviewFailed(true);
|
| VerifyPrintPreviewGenerated(false);
|
| VerifyPagesPrinted(false);
|
| }
|
|
|
| +// Tests that cancelling print preview works.
|
| +TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewCancel) {
|
| + LoadHTML(kLongPageHTML);
|
| +
|
| + const int kCancelPage = 3;
|
| + render_thread_.set_print_preview_cancel_page_number(kCancelPage);
|
| + PrintWebViewHelper::Get(view_)->OnInitiatePrintPreview();
|
| + // Fill in some dummy values.
|
| + DictionaryValue dict;
|
| + CreatePrintSettingsDictionary(&dict);
|
| + PrintWebViewHelper::Get(view_)->OnPrintPreview(dict);
|
| +
|
| + EXPECT_EQ(kCancelPage, render_thread_.print_preview_pages_remaining());
|
| + VerifyPrintPreviewCancelled(true);
|
| + VerifyPrintPreviewFailed(false);
|
| + VerifyPrintPreviewGenerated(false);
|
| + VerifyPagesPrinted(false);
|
| +}
|
| +
|
| // Tests that printing from print preview works and sending and receiving
|
| // messages through that channel all works.
|
| TEST_F(PrintWebViewHelperPreviewTest, OnPrintForPrintPreview) {
|
|
|