Index: chrome/renderer/print_web_view_helper_browsertest.cc |
diff --git a/chrome/renderer/print_web_view_helper_browsertest.cc b/chrome/renderer/print_web_view_helper_browsertest.cc |
index 372123ffd5b36f4bea12fc29b914adca634db8a4..1a07f32062780e9f476c4ea17cde11653ca9f7a9 100644 |
--- a/chrome/renderer/print_web_view_helper_browsertest.cc |
+++ b/chrome/renderer/print_web_view_helper_browsertest.cc |
@@ -345,6 +345,13 @@ class PrintWebViewHelperPreviewTest : public PrintWebViewHelperTestBase { |
EXPECT_EQ(did_fail, print_failed); |
} |
+ void VerifyPrintPreviewInvalidPrinterSettings(bool settings_invalid) { |
+ bool print_preview_invalid_printer_settings = |
+ (render_thread_.sink().GetUniqueMessageMatching( |
+ PrintHostMsg_PrintPreviewInvalidPrinterSettings::ID) != NULL); |
+ EXPECT_EQ(settings_invalid, print_preview_invalid_printer_settings); |
+ } |
+ |
DISALLOW_COPY_AND_ASSIGN(PrintWebViewHelperPreviewTest); |
}; |
@@ -428,4 +435,34 @@ TEST_F(PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { |
VerifyPrintFailed(true); |
VerifyPagesPrinted(false); |
} |
+ |
+// Tests that printing from invalid printer settings fails and receiving error |
+// messages through that channel all works. |
+TEST_F(PrintWebViewHelperPreviewTest, OnPrintPreviewInvalidSettingsFail) { |
kmadhusu
2011/08/26 18:50:40
You also need a separate test to verify "OnPrintFo
arthurhsu
2011/08/29 22:53:16
Done.
|
+ LoadHTML(kPrintPreviewHTML); |
+ |
+ PrintWebViewHelper::Get(view_)->OnInitiatePrintPreview(); |
+ |
+ // Set mock printer to provide invalid settings. |
kmadhusu
2011/08/26 18:50:40
The purpose of orig_params and wrong_params is not
arthurhsu
2011/08/29 22:53:16
Done.
|
+ PrintMsg_Print_Params orig_params, wrong_params; |
+ |
+ render_thread_.printer()->GetDefaultPrintSettings(&orig_params); |
+ render_thread_.printer()->SetBadSettings(true); |
+ render_thread_.printer()->SetDefaultPrintSettings(wrong_params); |
+ render_thread_.printer()->ResetPrinter(); |
+ |
+ // Fill in some dummy values. |
+ DictionaryValue dict; |
+ CreatePrintSettingsDictionary(&dict); |
+ PrintWebViewHelper::Get(view_)->OnPrintPreview(dict); |
+ |
+ VerifyPrintPreviewInvalidPrinterSettings(true); |
+ VerifyPrintFailed(false); |
kmadhusu
2011/08/26 18:50:40
We are verifying that the print preview failed.
arthurhsu
2011/08/29 22:53:16
Done.
|
+ VerifyPagesPrinted(false); |
+ |
+ render_thread_.printer()->SetBadSettings(false); |
+ render_thread_.printer()->SetDefaultPrintSettings(orig_params); |
+ render_thread_.printer()->ResetPrinter(); |
+} |
+ |
#endif // !defined(OS_CHROMEOS) |