| Index: chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
|
| diff --git a/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc b/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
|
| index 785b2a63524f60aa708a10d1658cb52c24f3506a..b87fa842e3159f68e2b6bafe8655fc49677b32c5 100644
|
| --- a/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
|
| +++ b/chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc
|
| @@ -115,9 +115,6 @@ const char kPrintTicketWithDuplex[] =
|
| " }"
|
| "}";
|
|
|
| -// Suffix appended to document data by fake PWGRasterConverter.
|
| -const char kPWGConversionSuffix[] = "_converted";
|
| -
|
| const char kContentTypePDF[] = "application/pdf";
|
| const char kContentTypePWG[] = "image/pwg-raster";
|
|
|
| @@ -193,14 +190,18 @@ scoped_ptr<base::DictionaryValue> GetJSONAsDictionaryValue(
|
| return scoped_ptr<base::DictionaryValue>(dictionary->DeepCopy());
|
| }
|
|
|
| +std::string RefCountedMemoryToString(
|
| + const scoped_refptr<base::RefCountedMemory>& memory) {
|
| + return std::string(memory->front_as<char>(), memory->size());
|
| +}
|
| +
|
| // Fake PWGRasterconverter used in the tests.
|
| class FakePWGRasterConverter : public PWGRasterConverter {
|
| public:
|
| FakePWGRasterConverter() : fail_conversion_(false), initialized_(false) {}
|
| ~FakePWGRasterConverter() override = default;
|
|
|
| - // PWGRasterConverter implementation.
|
| - // It writes |data| to a temp file, appending it |kPWGConversionSuffix|.
|
| + // PWGRasterConverter implementation. It writes |data| to a temp file.
|
| // Also, remembers conversion and bitmap settings passed into the method.
|
| void Start(base::RefCountedMemory* data,
|
| const printing::PdfRenderSettings& conversion_settings,
|
| @@ -219,10 +220,9 @@ class FakePWGRasterConverter : public PWGRasterConverter {
|
|
|
| initialized_ = true;
|
|
|
| + path_ = temp_dir_.path().AppendASCII("output.pwg");
|
| std::string data_str(data->front_as<char>(), data->size());
|
| - data_str.append(kPWGConversionSuffix);
|
| - base::FilePath target_path = temp_dir_.path().AppendASCII("output.pwg");
|
| - int written = WriteFile(target_path, data_str.c_str(), data_str.size());
|
| + int written = WriteFile(path_, data_str.c_str(), data_str.size());
|
| if (written != static_cast<int>(data_str.size())) {
|
| ADD_FAILURE() << "Failed to write pwg raster file.";
|
| callback.Run(false, base::FilePath());
|
| @@ -232,12 +232,13 @@ class FakePWGRasterConverter : public PWGRasterConverter {
|
| conversion_settings_ = conversion_settings;
|
| bitmap_settings_ = bitmap_settings;
|
|
|
| - callback.Run(true, target_path);
|
| + callback.Run(true, path_);
|
| }
|
|
|
| // Makes |Start| method always return an error.
|
| void FailConversion() { fail_conversion_ = true; }
|
|
|
| + const base::FilePath& path() { return path_; }
|
| const printing::PdfRenderSettings& conversion_settings() const {
|
| return conversion_settings_;
|
| }
|
| @@ -249,6 +250,7 @@ class FakePWGRasterConverter : public PWGRasterConverter {
|
| private:
|
| base::ScopedTempDir temp_dir_;
|
|
|
| + base::FilePath path_;
|
| printing::PdfRenderSettings conversion_settings_;
|
| printing::PwgRasterSettings bitmap_settings_;
|
| bool fail_conversion_;
|
| @@ -257,18 +259,10 @@ class FakePWGRasterConverter : public PWGRasterConverter {
|
| DISALLOW_COPY_AND_ASSIGN(FakePWGRasterConverter);
|
| };
|
|
|
| -// Copy of data contained in print job passed to |DispatchPrintRequested|.
|
| -struct PrintJobParams {
|
| - std::string printer_id;
|
| - std::string ticket;
|
| - std::string content_type;
|
| - std::string document;
|
| -};
|
| -
|
| // Information about received print requests.
|
| struct PrintRequestInfo {
|
| PrinterProviderAPI::PrintCallback callback;
|
| - PrintJobParams params;
|
| + PrinterProviderPrintJob job;
|
| };
|
|
|
| // Fake PrinterProviderAPI used in tests.
|
| @@ -295,12 +289,7 @@ class FakePrinterProviderAPI : public PrinterProviderAPI {
|
| const PrinterProviderAPI::PrintCallback& callback) override {
|
| PrintRequestInfo request_info;
|
| request_info.callback = callback;
|
| -
|
| - request_info.params.printer_id = job.printer_id;
|
| - request_info.params.ticket = job.ticket_json;
|
| - request_info.params.content_type = job.content_type;
|
| - request_info.params.document = std::string(
|
| - job.document_bytes->front_as<char>(), job.document_bytes->size());
|
| + request_info.job = job;
|
|
|
| pending_print_requests_.push_back(request_info);
|
| }
|
| @@ -309,6 +298,13 @@ class FakePrinterProviderAPI : public PrinterProviderAPI {
|
| return pending_printers_callbacks_.size();
|
| }
|
|
|
| + const PrinterProviderPrintJob* GetPrintJob(
|
| + const extensions::Extension* extension,
|
| + int request_id) const override {
|
| + ADD_FAILURE() << "Not reached";
|
| + return nullptr;
|
| + }
|
| +
|
| void TriggerNextGetPrintersCallback(const base::ListValue& printers,
|
| bool done) {
|
| ASSERT_GT(pending_get_printers_count(), 0u);
|
| @@ -329,11 +325,11 @@ class FakePrinterProviderAPI : public PrinterProviderAPI {
|
|
|
| size_t pending_print_count() const { return pending_print_requests_.size(); }
|
|
|
| - const PrintJobParams* GetNextPendingPrintJob() const {
|
| + const PrinterProviderPrintJob* GetNextPendingPrintJob() const {
|
| EXPECT_GT(pending_print_count(), 0u);
|
| if (pending_print_count() == 0)
|
| return NULL;
|
| - return &pending_print_requests_[0].params;
|
| + return &pending_print_requests_[0].job;
|
| }
|
|
|
| void TriggerNextPrintCallback(const std::string& result) {
|
| @@ -527,13 +523,16 @@ TEST_F(ExtensionPrinterHandlerTest, Print_Pdf) {
|
| ASSERT_TRUE(fake_api);
|
| ASSERT_EQ(1u, fake_api->pending_print_count());
|
|
|
| - const PrintJobParams* print_job = fake_api->GetNextPendingPrintJob();
|
| + const PrinterProviderPrintJob* print_job = fake_api->GetNextPendingPrintJob();
|
| ASSERT_TRUE(print_job);
|
|
|
| EXPECT_EQ(kPrinterId, print_job->printer_id);
|
| - EXPECT_EQ(kEmptyPrintTicket, print_job->ticket);
|
| + EXPECT_EQ(kEmptyPrintTicket, print_job->ticket_json);
|
| EXPECT_EQ(kContentTypePDF, print_job->content_type);
|
| - EXPECT_EQ(print_data->data(), print_job->document);
|
| + EXPECT_TRUE(print_job->document_path.empty());
|
| + ASSERT_TRUE(print_job->document_bytes);
|
| + EXPECT_EQ(print_data->data(),
|
| + RefCountedMemoryToString(print_job->document_bytes));
|
|
|
| fake_api->TriggerNextPrintCallback(kPrintRequestSuccess);
|
|
|
| @@ -588,13 +587,16 @@ TEST_F(ExtensionPrinterHandlerTest, Print_All) {
|
| ASSERT_TRUE(fake_api);
|
| ASSERT_EQ(1u, fake_api->pending_print_count());
|
|
|
| - const PrintJobParams* print_job = fake_api->GetNextPendingPrintJob();
|
| + const PrinterProviderPrintJob* print_job = fake_api->GetNextPendingPrintJob();
|
| ASSERT_TRUE(print_job);
|
|
|
| EXPECT_EQ(kPrinterId, print_job->printer_id);
|
| - EXPECT_EQ(kEmptyPrintTicket, print_job->ticket);
|
| + EXPECT_EQ(kEmptyPrintTicket, print_job->ticket_json);
|
| EXPECT_EQ(kContentTypePDF, print_job->content_type);
|
| - EXPECT_EQ(print_data->data(), print_job->document);
|
| + EXPECT_TRUE(print_job->document_path.empty());
|
| + ASSERT_TRUE(print_job->document_bytes);
|
| + EXPECT_EQ(print_data->data(),
|
| + RefCountedMemoryToString(print_job->document_bytes));
|
|
|
| fake_api->TriggerNextPrintCallback(kPrintRequestSuccess);
|
|
|
| @@ -636,13 +638,17 @@ TEST_F(ExtensionPrinterHandlerTest, Print_Pwg) {
|
| EXPECT_EQ("0,0 208x416", // vertically_oriented_size * dpi / points_per_inch
|
| pwg_raster_converter_->conversion_settings().area().ToString());
|
|
|
| - const PrintJobParams* print_job = fake_api->GetNextPendingPrintJob();
|
| + const PrinterProviderPrintJob* print_job = fake_api->GetNextPendingPrintJob();
|
| ASSERT_TRUE(print_job);
|
|
|
| EXPECT_EQ(kPrinterId, print_job->printer_id);
|
| - EXPECT_EQ(kEmptyPrintTicket, print_job->ticket);
|
| + EXPECT_EQ(kEmptyPrintTicket, print_job->ticket_json);
|
| EXPECT_EQ(kContentTypePWG, print_job->content_type);
|
| - EXPECT_EQ(print_data->data() + kPWGConversionSuffix, print_job->document);
|
| + EXPECT_FALSE(print_job->document_bytes);
|
| + EXPECT_FALSE(print_job->document_path.empty());
|
| + EXPECT_EQ(pwg_raster_converter_->path(), print_job->document_path);
|
| + EXPECT_EQ(static_cast<int64_t>(print_data->size()),
|
| + print_job->file_info.size);
|
|
|
| fake_api->TriggerNextPrintCallback(kPrintRequestSuccess);
|
|
|
| @@ -684,13 +690,17 @@ TEST_F(ExtensionPrinterHandlerTest, Print_Pwg_NonDefaultSettings) {
|
| EXPECT_EQ("0,0 138x277", // vertically_oriented_size * dpi / points_per_inch
|
| pwg_raster_converter_->conversion_settings().area().ToString());
|
|
|
| - const PrintJobParams* print_job = fake_api->GetNextPendingPrintJob();
|
| + const PrinterProviderPrintJob* print_job = fake_api->GetNextPendingPrintJob();
|
| ASSERT_TRUE(print_job);
|
|
|
| EXPECT_EQ(kPrinterId, print_job->printer_id);
|
| - EXPECT_EQ(kPrintTicketWithDuplex, print_job->ticket);
|
| + EXPECT_EQ(kPrintTicketWithDuplex, print_job->ticket_json);
|
| EXPECT_EQ(kContentTypePWG, print_job->content_type);
|
| - EXPECT_EQ(print_data->data() + kPWGConversionSuffix, print_job->document);
|
| + EXPECT_FALSE(print_job->document_bytes);
|
| + EXPECT_FALSE(print_job->document_path.empty());
|
| + EXPECT_EQ(pwg_raster_converter_->path(), print_job->document_path);
|
| + EXPECT_EQ(static_cast<int64_t>(print_data->size()),
|
| + print_job->file_info.size);
|
|
|
| fake_api->TriggerNextPrintCallback(kPrintRequestSuccess);
|
|
|
|
|