Index: chrome/renderer/mock_printer.cc |
diff --git a/chrome/renderer/mock_printer.cc b/chrome/renderer/mock_printer.cc |
deleted file mode 100644 |
index 5e43ab014b5570f7c210d8f77228e4873409be05..0000000000000000000000000000000000000000 |
--- a/chrome/renderer/mock_printer.cc |
+++ /dev/null |
@@ -1,314 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/renderer/mock_printer.h" |
- |
-#include "base/basictypes.h" |
-#include "base/file_util.h" |
-#include "base/memory/shared_memory.h" |
-#include "base/strings/string16.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "chrome/common/print_messages.h" |
-#include "ipc/ipc_message_utils.h" |
-#include "printing/metafile_impl.h" |
-#include "printing/units.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-#if defined(OS_MACOSX) |
-#include "printing/pdf_metafile_cg_mac.h" |
-#endif |
- |
-namespace { |
- |
-void UpdateMargins(int margins_type, int dpi, PrintMsg_Print_Params* params) { |
- if (margins_type == printing::NO_MARGINS) { |
- params->content_size.SetSize(static_cast<int>((8.5 * dpi)), |
- static_cast<int>((11.0 * dpi))); |
- params->margin_left = 0; |
- params->margin_top = 0; |
- } else if (margins_type == printing::PRINTABLE_AREA_MARGINS) { |
- params->content_size.SetSize(static_cast<int>((8.0 * dpi)), |
- static_cast<int>((10.5 * dpi))); |
- params->margin_left = static_cast<int>(0.25 * dpi); |
- params->margin_top = static_cast<int>(0.25 * dpi); |
- } else if (margins_type == printing::CUSTOM_MARGINS) { |
- params->content_size.SetSize(static_cast<int>((7.9 * dpi)), |
- static_cast<int>((10.4 * dpi))); |
- params->margin_left = static_cast<int>(0.30 * dpi); |
- params->margin_top = static_cast<int>(0.30 * dpi); |
- } |
-} |
- |
-} // namespace |
- |
-MockPrinterPage::MockPrinterPage(const void* source_data, |
- uint32 source_size, |
- const printing::Image& image) |
- : source_size_(source_size), |
- image_(image) { |
- // Create copies of the source data |
- source_data_.reset(new uint8[source_size]); |
- if (source_data_.get()) |
- memcpy(source_data_.get(), source_data, source_size); |
-} |
- |
-MockPrinterPage::~MockPrinterPage() {} |
- |
-MockPrinter::MockPrinter() |
- : dpi_(printing::kPointsPerInch), |
- max_shrink_(2.0), |
- min_shrink_(1.25), |
- desired_dpi_(printing::kPointsPerInch), |
- selection_only_(false), |
- should_print_backgrounds_(false), |
- document_cookie_(-1), |
- current_document_cookie_(0), |
- printer_status_(PRINTER_READY), |
- number_pages_(0), |
- page_number_(0), |
- is_first_request_(true), |
- print_to_pdf_(false), |
- preview_request_id_(0), |
- print_scaling_option_(blink::WebPrintScalingOptionSourceSize), |
- display_header_footer_(false), |
- title_(base::ASCIIToUTF16("title")), |
- url_(base::ASCIIToUTF16("url")), |
- use_invalid_settings_(false) { |
- page_size_.SetSize(static_cast<int>(8.5 * dpi_), |
- static_cast<int>(11.0 * dpi_)); |
- content_size_.SetSize(static_cast<int>((7.5 * dpi_)), |
- static_cast<int>((10.0 * dpi_))); |
- margin_left_ = margin_top_ = static_cast<int>(0.5 * dpi_); |
- printable_area_.SetRect(static_cast<int>(0.25 * dpi_), |
- static_cast<int>(0.25 *dpi_), |
- static_cast<int>(8 * dpi_), |
- static_cast<int>(10.5 * dpi_)); |
-} |
- |
-MockPrinter::~MockPrinter() { |
-} |
- |
-void MockPrinter::ResetPrinter() { |
- printer_status_ = PRINTER_READY; |
- document_cookie_ = -1; |
-} |
- |
-void MockPrinter::GetDefaultPrintSettings(PrintMsg_Print_Params* params) { |
- // Verify this printer is not processing a job. |
- // Sorry, this mock printer is very fragile. |
- EXPECT_EQ(-1, document_cookie_); |
- |
- // Assign a unit document cookie and set the print settings. |
- document_cookie_ = CreateDocumentCookie(); |
- params->Reset(); |
- SetPrintParams(params); |
-} |
- |
-void MockPrinter::SetDefaultPrintSettings(const PrintMsg_Print_Params& params) { |
- dpi_ = params.dpi; |
- max_shrink_ = params.max_shrink; |
- min_shrink_ = params.min_shrink; |
- desired_dpi_ = params.desired_dpi; |
- selection_only_ = params.selection_only; |
- should_print_backgrounds_ = params.should_print_backgrounds; |
- page_size_ = params.page_size; |
- content_size_ = params.content_size; |
- printable_area_ = params.printable_area; |
- margin_left_ = params.margin_left; |
- margin_top_ = params.margin_top; |
- display_header_footer_ = params.display_header_footer; |
- title_ = params.title; |
- url_ = params.url; |
-} |
- |
-void MockPrinter::UseInvalidSettings() { |
- use_invalid_settings_ = true; |
- PrintMsg_Print_Params empty_param; |
- SetDefaultPrintSettings(empty_param); |
-} |
- |
-void MockPrinter::UseInvalidPageSize() { |
- page_size_.SetSize(0, 0); |
-} |
- |
-void MockPrinter::UseInvalidContentSize() { |
- content_size_.SetSize(0, 0); |
-} |
- |
-void MockPrinter::ScriptedPrint(int cookie, |
- int expected_pages_count, |
- bool has_selection, |
- PrintMsg_PrintPages_Params* settings) { |
- // Verify the input parameters. |
- EXPECT_EQ(document_cookie_, cookie); |
- |
- settings->Reset(); |
- |
- settings->params.dpi = dpi_; |
- settings->params.max_shrink = max_shrink_; |
- settings->params.min_shrink = min_shrink_; |
- settings->params.desired_dpi = desired_dpi_; |
- settings->params.selection_only = selection_only_; |
- settings->params.should_print_backgrounds = should_print_backgrounds_; |
- settings->params.document_cookie = document_cookie_; |
- settings->params.page_size = page_size_; |
- settings->params.content_size = content_size_; |
- settings->params.printable_area = printable_area_; |
- settings->params.is_first_request = is_first_request_; |
- settings->params.print_scaling_option = print_scaling_option_; |
- settings->params.print_to_pdf = print_to_pdf_; |
- settings->params.preview_request_id = preview_request_id_; |
- settings->params.display_header_footer = display_header_footer_; |
- settings->params.title = title_; |
- settings->params.url = url_; |
- printer_status_ = PRINTER_PRINTING; |
-} |
- |
-void MockPrinter::UpdateSettings(int cookie, |
- PrintMsg_PrintPages_Params* params, |
- const std::vector<int>& pages, |
- int margins_type) { |
- if (document_cookie_ == -1) { |
- document_cookie_ = CreateDocumentCookie(); |
- } |
- params->Reset(); |
- params->pages = pages; |
- SetPrintParams(&(params->params)); |
- UpdateMargins(margins_type, dpi_, &(params->params)); |
- printer_status_ = PRINTER_PRINTING; |
-} |
- |
-void MockPrinter::SetPrintedPagesCount(int cookie, int number_pages) { |
- // Verify the input parameter and update the printer status so that the |
- // RenderViewTest class can verify the this function finishes without errors. |
- EXPECT_EQ(document_cookie_, cookie); |
- EXPECT_EQ(PRINTER_PRINTING, printer_status_); |
- EXPECT_EQ(0, number_pages_); |
- EXPECT_EQ(0, page_number_); |
- |
- // Initialize the job status. |
- number_pages_ = number_pages; |
- page_number_ = 0; |
- pages_.clear(); |
-} |
- |
-void MockPrinter::PrintPage(const PrintHostMsg_DidPrintPage_Params& params) { |
- // Verify the input parameter and update the printer status so that the |
- // RenderViewTest class can verify the this function finishes without errors. |
- EXPECT_EQ(PRINTER_PRINTING, printer_status_); |
- EXPECT_EQ(document_cookie_, params.document_cookie); |
- EXPECT_EQ(page_number_, params.page_number); |
- EXPECT_LE(params.page_number, number_pages_); |
- |
-#if defined(OS_WIN) || defined(OS_MACOSX) |
- // Load the data sent from a RenderView object and create a PageData object. |
- // We duplicate the given file handle when creating a base::SharedMemory |
- // instance so that its destructor closes the copy. |
- EXPECT_GT(params.data_size, 0U); |
-#if defined(OS_WIN) |
- base::SharedMemory metafile_data(params.metafile_data_handle, true, |
- GetCurrentProcess()); |
-#elif defined(OS_MACOSX) |
- base::SharedMemory metafile_data(params.metafile_data_handle, true); |
-#endif |
- metafile_data.Map(params.data_size); |
-#if defined(OS_MACOSX) |
- printing::PdfMetafileCg metafile; |
-#else |
- printing::NativeMetafile metafile; |
-#endif |
- metafile.InitFromData(metafile_data.memory(), params.data_size); |
- printing::Image image(metafile); |
- MockPrinterPage* page_data = new MockPrinterPage(metafile_data.memory(), |
- params.data_size, |
- image); |
- scoped_refptr<MockPrinterPage> page(page_data); |
- pages_.push_back(page); |
-#endif |
- |
- // We finish printing a printing job. |
- // Reset the job status and the printer status. |
- ++page_number_; |
- if (number_pages_ == page_number_) |
- ResetPrinter(); |
-} |
- |
-int MockPrinter::GetPrintedPages() const { |
- if (printer_status_ != PRINTER_READY) |
- return -1; |
- return page_number_; |
-} |
- |
-const MockPrinterPage* MockPrinter::GetPrintedPage(unsigned int pageno) const { |
- if (pages_.size() > pageno) |
- return pages_[pageno].get(); |
- else |
- return NULL; |
-} |
- |
-int MockPrinter::GetWidth(unsigned int page) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return -1; |
- return pages_[page]->width(); |
-} |
- |
-int MockPrinter::GetHeight(unsigned int page) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return -1; |
- return pages_[page]->height(); |
-} |
- |
-bool MockPrinter::GetBitmapChecksum( |
- unsigned int page, std::string* checksum) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return false; |
- *checksum = pages_[page]->image().checksum(); |
- return true; |
-} |
- |
-bool MockPrinter::SaveSource( |
- unsigned int page, const base::FilePath& filepath) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return false; |
- const uint8* source_data = pages_[page]->source_data(); |
- uint32 source_size = pages_[page]->source_size(); |
- base::WriteFile(filepath, reinterpret_cast<const char*>(source_data), |
- source_size); |
- return true; |
-} |
- |
-bool MockPrinter::SaveBitmap( |
- unsigned int page, const base::FilePath& filepath) const { |
- if (printer_status_ != PRINTER_READY || page >= pages_.size()) |
- return false; |
- |
- pages_[page]->image().SaveToPng(filepath); |
- return true; |
-} |
- |
-int MockPrinter::CreateDocumentCookie() { |
- return use_invalid_settings_ ? 0 : ++current_document_cookie_; |
-} |
- |
-void MockPrinter::SetPrintParams(PrintMsg_Print_Params* params) { |
- params->dpi = dpi_; |
- params->max_shrink = max_shrink_; |
- params->min_shrink = min_shrink_; |
- params->desired_dpi = desired_dpi_; |
- params->selection_only = selection_only_; |
- params->should_print_backgrounds = should_print_backgrounds_; |
- params->document_cookie = document_cookie_; |
- params->page_size = page_size_; |
- params->content_size = content_size_; |
- params->printable_area = printable_area_; |
- params->margin_left = margin_left_; |
- params->margin_top = margin_top_; |
- params->is_first_request = is_first_request_; |
- params->print_scaling_option = print_scaling_option_; |
- params->print_to_pdf = print_to_pdf_; |
- params->preview_request_id = preview_request_id_; |
- params->display_header_footer = display_header_footer_; |
- params->title = title_; |
- params->url = url_; |
-} |