OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/common/chrome_switches.h" | 5 #include "chrome/common/chrome_switches.h" |
6 #include "chrome/common/print_messages.h" | 6 #include "chrome/common/print_messages.h" |
7 #include "chrome/renderer/print_web_view_helper.h" | 7 #include "chrome/renderer/print_web_view_helper.h" |
8 #include "chrome/test/base/render_view_test.h" | 8 #include "chrome/test/base/render_view_test.h" |
9 #include "printing/print_job_constants.h" | 9 #include "printing/print_job_constants.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 EXPECT_NE(0U, preview_param.a.data_size); | 339 EXPECT_NE(0U, preview_param.a.data_size); |
340 } | 340 } |
341 } | 341 } |
342 | 342 |
343 void VerifyPrintFailed(bool did_fail) { | 343 void VerifyPrintFailed(bool did_fail) { |
344 bool print_failed = (render_thread_.sink().GetUniqueMessageMatching( | 344 bool print_failed = (render_thread_.sink().GetUniqueMessageMatching( |
345 PrintHostMsg_PrintingFailed::ID) != NULL); | 345 PrintHostMsg_PrintingFailed::ID) != NULL); |
346 EXPECT_EQ(did_fail, print_failed); | 346 EXPECT_EQ(did_fail, print_failed); |
347 } | 347 } |
348 | 348 |
| 349 void VerifyPrintPreviewInvalidPrinterSettings(bool settings_invalid) { |
| 350 bool print_preview_invalid_printer_settings = |
| 351 (render_thread_.sink().GetUniqueMessageMatching( |
| 352 PrintHostMsg_PrintPreviewInvalidPrinterSettings::ID) != NULL); |
| 353 EXPECT_EQ(settings_invalid, print_preview_invalid_printer_settings); |
| 354 } |
| 355 |
349 // |page_number| is 0-based. | 356 // |page_number| is 0-based. |
350 void VerifyDidPreviewPage(bool generate_draft_pages, int page_number) { | 357 void VerifyDidPreviewPage(bool generate_draft_pages, int page_number) { |
351 bool msg_found = false; | 358 bool msg_found = false; |
352 size_t msg_count = render_thread_.sink().message_count(); | 359 size_t msg_count = render_thread_.sink().message_count(); |
353 for (size_t i = 0; i < msg_count; ++i) { | 360 for (size_t i = 0; i < msg_count; ++i) { |
354 const IPC::Message* msg = render_thread_.sink().GetMessageAt(i); | 361 const IPC::Message* msg = render_thread_.sink().GetMessageAt(i); |
355 if (msg->type() == PrintHostMsg_DidPreviewPage::ID) { | 362 if (msg->type() == PrintHostMsg_DidPreviewPage::ID) { |
356 PrintHostMsg_DidPreviewPage::Param page_param; | 363 PrintHostMsg_DidPreviewPage::Param page_param; |
357 PrintHostMsg_DidPreviewPage::Read(msg, &page_param); | 364 PrintHostMsg_DidPreviewPage::Read(msg, &page_param); |
358 if (page_param.a.page_number == page_number) { | 365 if (page_param.a.page_number == page_number) { |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 TEST_F(PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { | 485 TEST_F(PrintWebViewHelperPreviewTest, OnPrintForPrintPreviewFail) { |
479 LoadHTML(kPrintPreviewHTML); | 486 LoadHTML(kPrintPreviewHTML); |
480 | 487 |
481 // An empty dictionary should fail. | 488 // An empty dictionary should fail. |
482 DictionaryValue empty_dict; | 489 DictionaryValue empty_dict; |
483 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(empty_dict); | 490 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(empty_dict); |
484 | 491 |
485 VerifyPrintFailed(true); | 492 VerifyPrintFailed(true); |
486 VerifyPagesPrinted(false); | 493 VerifyPagesPrinted(false); |
487 } | 494 } |
| 495 |
| 496 // Tests that when default printer has invalid printer settings, print preview |
| 497 // receives error message. |
| 498 TEST_F(PrintWebViewHelperPreviewTest, |
| 499 OnPrintPreviewUsingInvalidPrinterSettings) { |
| 500 LoadHTML(kPrintPreviewHTML); |
| 501 |
| 502 PrintWebViewHelper::Get(view_)->OnInitiatePrintPreview(); |
| 503 |
| 504 // Set mock printer to provide invalid settings. |
| 505 render_thread_.printer()->UseInvalidSettings(); |
| 506 |
| 507 // Fill in some dummy values. |
| 508 DictionaryValue dict; |
| 509 CreatePrintSettingsDictionary(&dict); |
| 510 PrintWebViewHelper::Get(view_)->OnPrintPreview(dict); |
| 511 |
| 512 // We should have received invalid printer settings from |printer_|. |
| 513 VerifyPrintPreviewInvalidPrinterSettings(true); |
| 514 EXPECT_EQ(0, render_thread_.print_preview_pages_remaining()); |
| 515 |
| 516 // It should receive the invalid printer settings message only. |
| 517 VerifyPrintPreviewFailed(false); |
| 518 VerifyPrintPreviewGenerated(false); |
| 519 } |
| 520 |
| 521 TEST_F(PrintWebViewHelperPreviewTest, |
| 522 OnPrintForPrintPreviewUsingInvalidPrinterSettings) { |
| 523 LoadHTML(kPrintPreviewHTML); |
| 524 |
| 525 // Set mock printer to provide invalid settings. |
| 526 render_thread_.printer()->UseInvalidSettings(); |
| 527 |
| 528 // Fill in some dummy values. |
| 529 DictionaryValue dict; |
| 530 CreatePrintSettingsDictionary(&dict); |
| 531 PrintWebViewHelper::Get(view_)->OnPrintForPrintPreview(dict); |
| 532 |
| 533 VerifyPagesPrinted(false); |
| 534 } |
| 535 |
488 #endif // !defined(OS_CHROMEOS) | 536 #endif // !defined(OS_CHROMEOS) |
OLD | NEW |