Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: chrome/renderer/print_web_view_helper_browsertest.cc

Issue 7740005: Print preview not showing if default print is invalid. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Merge with latest trunk (again) Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698