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

Side by Side Diff: chrome/browser/ui/webui/print_preview/extension_printer_handler_unittest.cc

Issue 1865213004: Convert //chrome/browser/ui from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/browser/ui/webui/print_preview/extension_printer_handler.h"
6
5 #include <stddef.h> 7 #include <stddef.h>
6 #include <stdint.h> 8 #include <stdint.h>
7 9
10 #include <memory>
8 #include <queue> 11 #include <queue>
9 #include <string> 12 #include <string>
10 13
11 #include "base/bind.h" 14 #include "base/bind.h"
12 #include "base/files/file_util.h" 15 #include "base/files/file_util.h"
13 #include "base/files/scoped_temp_dir.h" 16 #include "base/files/scoped_temp_dir.h"
14 #include "base/json/json_string_value_serializer.h" 17 #include "base/json/json_string_value_serializer.h"
15 #include "base/macros.h" 18 #include "base/macros.h"
16 #include "base/memory/scoped_ptr.h" 19 #include "base/memory/ptr_util.h"
17 #include "base/run_loop.h" 20 #include "base/run_loop.h"
18 #include "base/strings/string16.h" 21 #include "base/strings/string16.h"
19 #include "base/strings/stringprintf.h" 22 #include "base/strings/stringprintf.h"
20 #include "base/strings/utf_string_conversions.h" 23 #include "base/strings/utf_string_conversions.h"
21 #include "base/test/values_test_util.h" 24 #include "base/test/values_test_util.h"
22 #include "base/values.h" 25 #include "base/values.h"
23 #include "chrome/browser/extensions/test_extension_environment.h" 26 #include "chrome/browser/extensions/test_extension_environment.h"
24 #include "chrome/browser/printing/pwg_raster_converter.h" 27 #include "chrome/browser/printing/pwg_raster_converter.h"
25 #include "chrome/browser/ui/webui/print_preview/extension_printer_handler.h"
26 #include "chrome/test/base/testing_profile.h" 28 #include "chrome/test/base/testing_profile.h"
27 #include "components/version_info/version_info.h" 29 #include "components/version_info/version_info.h"
28 #include "device/core/device_client.h" 30 #include "device/core/device_client.h"
29 #include "device/usb/mock_usb_device.h" 31 #include "device/usb/mock_usb_device.h"
30 #include "device/usb/mock_usb_service.h" 32 #include "device/usb/mock_usb_service.h"
31 #include "extensions/browser/api/device_permissions_manager.h" 33 #include "extensions/browser/api/device_permissions_manager.h"
32 #include "extensions/browser/api/printer_provider/printer_provider_api.h" 34 #include "extensions/browser/api/printer_provider/printer_provider_api.h"
33 #include "extensions/browser/api/printer_provider/printer_provider_api_factory.h " 35 #include "extensions/browser/api/printer_provider/printer_provider_api_factory.h "
34 #include "extensions/browser/api/printer_provider/printer_provider_print_job.h" 36 #include "extensions/browser/api/printer_provider/printer_provider_print_job.h"
35 #include "extensions/common/extension.h" 37 #include "extensions/common/extension.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 183
182 const char kContentTypePDF[] = "application/pdf"; 184 const char kContentTypePDF[] = "application/pdf";
183 const char kContentTypePWG[] = "image/pwg-raster"; 185 const char kContentTypePWG[] = "image/pwg-raster";
184 186
185 // Print request status considered to be successful by fake PrinterProviderAPI. 187 // Print request status considered to be successful by fake PrinterProviderAPI.
186 const char kPrintRequestSuccess[] = "OK"; 188 const char kPrintRequestSuccess[] = "OK";
187 189
188 // Used as a callback to StartGetPrinters in tests. 190 // Used as a callback to StartGetPrinters in tests.
189 // Increases |*call_count| and records values returned by StartGetPrinters. 191 // Increases |*call_count| and records values returned by StartGetPrinters.
190 void RecordPrinterList(size_t* call_count, 192 void RecordPrinterList(size_t* call_count,
191 scoped_ptr<base::ListValue>* printers_out, 193 std::unique_ptr<base::ListValue>* printers_out,
192 bool* is_done_out, 194 bool* is_done_out,
193 const base::ListValue& printers, 195 const base::ListValue& printers,
194 bool is_done) { 196 bool is_done) {
195 ++(*call_count); 197 ++(*call_count);
196 printers_out->reset(printers.DeepCopy()); 198 printers_out->reset(printers.DeepCopy());
197 *is_done_out = is_done; 199 *is_done_out = is_done;
198 } 200 }
199 201
200 // Used as a callback to StartGetCapability in tests. 202 // Used as a callback to StartGetCapability in tests.
201 // Increases |*call_count| and records values returned by StartGetCapability. 203 // Increases |*call_count| and records values returned by StartGetCapability.
202 void RecordCapability(size_t* call_count, 204 void RecordCapability(size_t* call_count,
203 std::string* destination_id_out, 205 std::string* destination_id_out,
204 scoped_ptr<base::DictionaryValue>* capability_out, 206 std::unique_ptr<base::DictionaryValue>* capability_out,
205 const std::string& destination_id, 207 const std::string& destination_id,
206 const base::DictionaryValue& capability) { 208 const base::DictionaryValue& capability) {
207 ++(*call_count); 209 ++(*call_count);
208 *destination_id_out = destination_id; 210 *destination_id_out = destination_id;
209 capability_out->reset(capability.DeepCopy()); 211 capability_out->reset(capability.DeepCopy());
210 } 212 }
211 213
212 // Used as a callback to StartPrint in tests. 214 // Used as a callback to StartPrint in tests.
213 // Increases |*call_count| and records values returned by StartPrint. 215 // Increases |*call_count| and records values returned by StartPrint.
214 void RecordPrintResult(size_t* call_count, 216 void RecordPrintResult(size_t* call_count,
215 bool* success_out, 217 bool* success_out,
216 std::string* status_out, 218 std::string* status_out,
217 bool success, 219 bool success,
218 const std::string& status) { 220 const std::string& status) {
219 ++(*call_count); 221 ++(*call_count);
220 *success_out = success; 222 *success_out = success;
221 *status_out = status; 223 *status_out = status;
222 } 224 }
223 225
224 // Used as a callback to StartGrantPrinterAccess in tests. 226 // Used as a callback to StartGrantPrinterAccess in tests.
225 // Increases |*call_count| and records the value returned. 227 // Increases |*call_count| and records the value returned.
226 void RecordPrinterInfo(size_t* call_count, 228 void RecordPrinterInfo(size_t* call_count,
227 scoped_ptr<base::DictionaryValue>* printer_info_out, 229 std::unique_ptr<base::DictionaryValue>* printer_info_out,
228 const base::DictionaryValue& printer_info) { 230 const base::DictionaryValue& printer_info) {
229 ++(*call_count); 231 ++(*call_count);
230 printer_info_out->reset(printer_info.DeepCopy()); 232 printer_info_out->reset(printer_info.DeepCopy());
231 } 233 }
232 234
233 // Converts JSON string to base::ListValue object. 235 // Converts JSON string to base::ListValue object.
234 // On failure, returns NULL and fills |*error| string. 236 // On failure, returns NULL and fills |*error| string.
235 scoped_ptr<base::ListValue> GetJSONAsListValue(const std::string& json, 237 std::unique_ptr<base::ListValue> GetJSONAsListValue(const std::string& json,
236 std::string* error) { 238 std::string* error) {
237 scoped_ptr<base::Value> deserialized( 239 std::unique_ptr<base::Value> deserialized(
238 JSONStringValueDeserializer(json).Deserialize(NULL, error)); 240 JSONStringValueDeserializer(json).Deserialize(NULL, error));
239 if (!deserialized) 241 if (!deserialized)
240 return scoped_ptr<base::ListValue>(); 242 return std::unique_ptr<base::ListValue>();
241 base::ListValue* list = nullptr; 243 base::ListValue* list = nullptr;
242 if (!deserialized->GetAsList(&list)) { 244 if (!deserialized->GetAsList(&list)) {
243 *error = "Value is not a list."; 245 *error = "Value is not a list.";
244 return scoped_ptr<base::ListValue>(); 246 return std::unique_ptr<base::ListValue>();
245 } 247 }
246 return scoped_ptr<base::ListValue>(list->DeepCopy()); 248 return std::unique_ptr<base::ListValue>(list->DeepCopy());
247 } 249 }
248 250
249 // Converts JSON string to base::DictionaryValue object. 251 // Converts JSON string to base::DictionaryValue object.
250 // On failure, returns NULL and fills |*error| string. 252 // On failure, returns NULL and fills |*error| string.
251 scoped_ptr<base::DictionaryValue> GetJSONAsDictionaryValue( 253 std::unique_ptr<base::DictionaryValue> GetJSONAsDictionaryValue(
252 const std::string& json, 254 const std::string& json,
253 std::string* error) { 255 std::string* error) {
254 scoped_ptr<base::Value> deserialized( 256 std::unique_ptr<base::Value> deserialized(
255 JSONStringValueDeserializer(json).Deserialize(NULL, error)); 257 JSONStringValueDeserializer(json).Deserialize(NULL, error));
256 if (!deserialized) 258 if (!deserialized)
257 return scoped_ptr<base::DictionaryValue>(); 259 return std::unique_ptr<base::DictionaryValue>();
258 base::DictionaryValue* dictionary; 260 base::DictionaryValue* dictionary;
259 if (!deserialized->GetAsDictionary(&dictionary)) { 261 if (!deserialized->GetAsDictionary(&dictionary)) {
260 *error = "Value is not a dictionary."; 262 *error = "Value is not a dictionary.";
261 return scoped_ptr<base::DictionaryValue>(); 263 return std::unique_ptr<base::DictionaryValue>();
262 } 264 }
263 return scoped_ptr<base::DictionaryValue>(dictionary->DeepCopy()); 265 return std::unique_ptr<base::DictionaryValue>(dictionary->DeepCopy());
264 } 266 }
265 267
266 std::string RefCountedMemoryToString( 268 std::string RefCountedMemoryToString(
267 const scoped_refptr<base::RefCountedMemory>& memory) { 269 const scoped_refptr<base::RefCountedMemory>& memory) {
268 return std::string(memory->front_as<char>(), memory->size()); 270 return std::string(memory->front_as<char>(), memory->size());
269 } 271 }
270 272
271 // Fake PWGRasterConverter used in the tests. 273 // Fake PWGRasterConverter used in the tests.
272 class FakePWGRasterConverter : public PWGRasterConverter { 274 class FakePWGRasterConverter : public PWGRasterConverter {
273 public: 275 public:
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 pending_printers_callbacks_; 439 pending_printers_callbacks_;
438 std::queue<PrinterProviderAPI::GetCapabilityCallback> 440 std::queue<PrinterProviderAPI::GetCapabilityCallback>
439 pending_capability_callbacks_; 441 pending_capability_callbacks_;
440 std::queue<PrintRequestInfo> pending_print_requests_; 442 std::queue<PrintRequestInfo> pending_print_requests_;
441 std::queue<PrinterProviderAPI::GetPrinterInfoCallback> 443 std::queue<PrinterProviderAPI::GetPrinterInfoCallback>
442 pending_usb_info_callbacks_; 444 pending_usb_info_callbacks_;
443 445
444 DISALLOW_COPY_AND_ASSIGN(FakePrinterProviderAPI); 446 DISALLOW_COPY_AND_ASSIGN(FakePrinterProviderAPI);
445 }; 447 };
446 448
447 scoped_ptr<KeyedService> BuildTestingPrinterProviderAPI( 449 std::unique_ptr<KeyedService> BuildTestingPrinterProviderAPI(
448 content::BrowserContext* context) { 450 content::BrowserContext* context) {
449 return make_scoped_ptr(new FakePrinterProviderAPI()); 451 return base::WrapUnique(new FakePrinterProviderAPI());
450 } 452 }
451 453
452 class FakeDeviceClient : public device::DeviceClient { 454 class FakeDeviceClient : public device::DeviceClient {
453 public: 455 public:
454 FakeDeviceClient() {} 456 FakeDeviceClient() {}
455 457
456 // device::DeviceClient implementation: 458 // device::DeviceClient implementation:
457 device::UsbService* GetUsbService() override { 459 device::UsbService* GetUsbService() override {
458 DCHECK(usb_service_); 460 DCHECK(usb_service_);
459 return usb_service_; 461 return usb_service_;
(...skipping 13 matching lines...) Expand all
473 ~ExtensionPrinterHandlerTest() override = default; 475 ~ExtensionPrinterHandlerTest() override = default;
474 476
475 void SetUp() override { 477 void SetUp() override {
476 extensions::PrinterProviderAPIFactory::GetInstance()->SetTestingFactory( 478 extensions::PrinterProviderAPIFactory::GetInstance()->SetTestingFactory(
477 env_.profile(), &BuildTestingPrinterProviderAPI); 479 env_.profile(), &BuildTestingPrinterProviderAPI);
478 extension_printer_handler_.reset(new ExtensionPrinterHandler( 480 extension_printer_handler_.reset(new ExtensionPrinterHandler(
479 env_.profile(), base::MessageLoop::current()->task_runner())); 481 env_.profile(), base::MessageLoop::current()->task_runner()));
480 482
481 pwg_raster_converter_ = new FakePWGRasterConverter(); 483 pwg_raster_converter_ = new FakePWGRasterConverter();
482 extension_printer_handler_->SetPWGRasterConverterForTesting( 484 extension_printer_handler_->SetPWGRasterConverterForTesting(
483 scoped_ptr<PWGRasterConverter>(pwg_raster_converter_)); 485 std::unique_ptr<PWGRasterConverter>(pwg_raster_converter_));
484 device_client_.set_usb_service(&usb_service_); 486 device_client_.set_usb_service(&usb_service_);
485 } 487 }
486 488
487 protected: 489 protected:
488 FakePrinterProviderAPI* GetPrinterProviderAPI() { 490 FakePrinterProviderAPI* GetPrinterProviderAPI() {
489 return static_cast<FakePrinterProviderAPI*>( 491 return static_cast<FakePrinterProviderAPI*>(
490 extensions::PrinterProviderAPIFactory::GetInstance() 492 extensions::PrinterProviderAPIFactory::GetInstance()
491 ->GetForBrowserContext(env_.profile())); 493 ->GetForBrowserContext(env_.profile()));
492 } 494 }
493 495
494 MockUsbService usb_service_; 496 MockUsbService usb_service_;
495 TestExtensionEnvironment env_; 497 TestExtensionEnvironment env_;
496 scoped_ptr<ExtensionPrinterHandler> extension_printer_handler_; 498 std::unique_ptr<ExtensionPrinterHandler> extension_printer_handler_;
497 499
498 FakePWGRasterConverter* pwg_raster_converter_; 500 FakePWGRasterConverter* pwg_raster_converter_;
499 501
500 private: 502 private:
501 FakeDeviceClient device_client_; 503 FakeDeviceClient device_client_;
502 504
503 DISALLOW_COPY_AND_ASSIGN(ExtensionPrinterHandlerTest); 505 DISALLOW_COPY_AND_ASSIGN(ExtensionPrinterHandlerTest);
504 }; 506 };
505 507
506 TEST_F(ExtensionPrinterHandlerTest, GetPrinters) { 508 TEST_F(ExtensionPrinterHandlerTest, GetPrinters) {
507 size_t call_count = 0; 509 size_t call_count = 0;
508 scoped_ptr<base::ListValue> printers; 510 std::unique_ptr<base::ListValue> printers;
509 bool is_done = false; 511 bool is_done = false;
510 512
511 extension_printer_handler_->StartGetPrinters( 513 extension_printer_handler_->StartGetPrinters(
512 base::Bind(&RecordPrinterList, &call_count, &printers, &is_done)); 514 base::Bind(&RecordPrinterList, &call_count, &printers, &is_done));
513 515
514 EXPECT_FALSE(printers.get()); 516 EXPECT_FALSE(printers.get());
515 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 517 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
516 ASSERT_TRUE(fake_api); 518 ASSERT_TRUE(fake_api);
517 ASSERT_EQ(1u, fake_api->pending_get_printers_count()); 519 ASSERT_EQ(1u, fake_api->pending_get_printers_count());
518 520
519 std::string error; 521 std::string error;
520 scoped_ptr<base::ListValue> original_printers( 522 std::unique_ptr<base::ListValue> original_printers(
521 GetJSONAsListValue(kPrinterDescriptionList, &error)); 523 GetJSONAsListValue(kPrinterDescriptionList, &error));
522 ASSERT_TRUE(original_printers) << "Failed to deserialize printers: " << error; 524 ASSERT_TRUE(original_printers) << "Failed to deserialize printers: " << error;
523 525
524 fake_api->TriggerNextGetPrintersCallback(*original_printers, true); 526 fake_api->TriggerNextGetPrintersCallback(*original_printers, true);
525 527
526 EXPECT_EQ(1u, call_count); 528 EXPECT_EQ(1u, call_count);
527 EXPECT_TRUE(is_done); 529 EXPECT_TRUE(is_done);
528 ASSERT_TRUE(printers.get()); 530 ASSERT_TRUE(printers.get());
529 EXPECT_TRUE(printers->Equals(original_printers.get())) 531 EXPECT_TRUE(printers->Equals(original_printers.get()))
530 << *printers << ", expected: " << *original_printers; 532 << *printers << ", expected: " << *original_printers;
531 } 533 }
532 534
533 TEST_F(ExtensionPrinterHandlerTest, GetPrinters_Reset) { 535 TEST_F(ExtensionPrinterHandlerTest, GetPrinters_Reset) {
534 size_t call_count = 0; 536 size_t call_count = 0;
535 scoped_ptr<base::ListValue> printers; 537 std::unique_ptr<base::ListValue> printers;
536 bool is_done = false; 538 bool is_done = false;
537 539
538 extension_printer_handler_->StartGetPrinters( 540 extension_printer_handler_->StartGetPrinters(
539 base::Bind(&RecordPrinterList, &call_count, &printers, &is_done)); 541 base::Bind(&RecordPrinterList, &call_count, &printers, &is_done));
540 542
541 EXPECT_FALSE(printers.get()); 543 EXPECT_FALSE(printers.get());
542 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 544 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
543 ASSERT_TRUE(fake_api); 545 ASSERT_TRUE(fake_api);
544 ASSERT_EQ(1u, fake_api->pending_get_printers_count()); 546 ASSERT_EQ(1u, fake_api->pending_get_printers_count());
545 547
546 extension_printer_handler_->Reset(); 548 extension_printer_handler_->Reset();
547 549
548 std::string error; 550 std::string error;
549 scoped_ptr<base::ListValue> original_printers( 551 std::unique_ptr<base::ListValue> original_printers(
550 GetJSONAsListValue(kPrinterDescriptionList, &error)); 552 GetJSONAsListValue(kPrinterDescriptionList, &error));
551 ASSERT_TRUE(original_printers) << "Error deserializing printers: " << error; 553 ASSERT_TRUE(original_printers) << "Error deserializing printers: " << error;
552 554
553 fake_api->TriggerNextGetPrintersCallback(*original_printers, true); 555 fake_api->TriggerNextGetPrintersCallback(*original_printers, true);
554 556
555 EXPECT_EQ(0u, call_count); 557 EXPECT_EQ(0u, call_count);
556 } 558 }
557 559
558 TEST_F(ExtensionPrinterHandlerTest, GetUsbPrinters) { 560 TEST_F(ExtensionPrinterHandlerTest, GetUsbPrinters) {
559 scoped_refptr<MockUsbDevice> device0 = 561 scoped_refptr<MockUsbDevice> device0 =
560 new MockUsbDevice(0, 0, "Google", "USB Printer", ""); 562 new MockUsbDevice(0, 0, "Google", "USB Printer", "");
561 usb_service_.AddDevice(device0); 563 usb_service_.AddDevice(device0);
562 scoped_refptr<MockUsbDevice> device1 = 564 scoped_refptr<MockUsbDevice> device1 =
563 new MockUsbDevice(0, 1, "Google", "USB Printer", ""); 565 new MockUsbDevice(0, 1, "Google", "USB Printer", "");
564 usb_service_.AddDevice(device1); 566 usb_service_.AddDevice(device1);
565 567
566 const Extension* extension_1 = env_.MakeExtension( 568 const Extension* extension_1 = env_.MakeExtension(
567 *base::test::ParseJson(kExtension1), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); 569 *base::test::ParseJson(kExtension1), "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
568 const Extension* extension_2 = env_.MakeExtension( 570 const Extension* extension_2 = env_.MakeExtension(
569 *base::test::ParseJson(kExtension2), "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); 571 *base::test::ParseJson(kExtension2), "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
570 572
571 extensions::DevicePermissionsManager* permissions_manager = 573 extensions::DevicePermissionsManager* permissions_manager =
572 extensions::DevicePermissionsManager::Get(env_.profile()); 574 extensions::DevicePermissionsManager::Get(env_.profile());
573 permissions_manager->AllowUsbDevice(extension_2->id(), device0); 575 permissions_manager->AllowUsbDevice(extension_2->id(), device0);
574 576
575 size_t call_count = 0; 577 size_t call_count = 0;
576 scoped_ptr<base::ListValue> printers; 578 std::unique_ptr<base::ListValue> printers;
577 bool is_done = false; 579 bool is_done = false;
578 extension_printer_handler_->StartGetPrinters( 580 extension_printer_handler_->StartGetPrinters(
579 base::Bind(&RecordPrinterList, &call_count, &printers, &is_done)); 581 base::Bind(&RecordPrinterList, &call_count, &printers, &is_done));
580 582
581 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 583 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
582 ASSERT_TRUE(fake_api); 584 ASSERT_TRUE(fake_api);
583 ASSERT_EQ(1u, fake_api->pending_get_printers_count()); 585 ASSERT_EQ(1u, fake_api->pending_get_printers_count());
584 586
585 EXPECT_EQ(1u, call_count); 587 EXPECT_EQ(1u, call_count);
586 EXPECT_FALSE(is_done); 588 EXPECT_FALSE(is_done);
587 EXPECT_TRUE(printers.get()); 589 EXPECT_TRUE(printers.get());
588 EXPECT_EQ(2u, printers->GetSize()); 590 EXPECT_EQ(2u, printers->GetSize());
589 scoped_ptr<base::DictionaryValue> extension_1_entry( 591 std::unique_ptr<base::DictionaryValue> extension_1_entry(
590 DictionaryBuilder() 592 DictionaryBuilder()
591 .Set("id", base::StringPrintf("provisional-usb:%s:%s", 593 .Set("id", base::StringPrintf("provisional-usb:%s:%s",
592 extension_1->id().c_str(), 594 extension_1->id().c_str(),
593 device0->guid().c_str())) 595 device0->guid().c_str()))
594 .Set("name", "USB Printer") 596 .Set("name", "USB Printer")
595 .Set("extensionName", "Provider 1") 597 .Set("extensionName", "Provider 1")
596 .Set("extensionId", extension_1->id()) 598 .Set("extensionId", extension_1->id())
597 .Set("provisional", true) 599 .Set("provisional", true)
598 .Build()); 600 .Build());
599 scoped_ptr<base::DictionaryValue> extension_2_entry( 601 std::unique_ptr<base::DictionaryValue> extension_2_entry(
600 DictionaryBuilder() 602 DictionaryBuilder()
601 .Set("id", base::StringPrintf("provisional-usb:%s:%s", 603 .Set("id", base::StringPrintf("provisional-usb:%s:%s",
602 extension_2->id().c_str(), 604 extension_2->id().c_str(),
603 device1->guid().c_str())) 605 device1->guid().c_str()))
604 .Set("name", "USB Printer") 606 .Set("name", "USB Printer")
605 .Set("extensionName", "Provider 2") 607 .Set("extensionName", "Provider 2")
606 .Set("extensionId", extension_2->id()) 608 .Set("extensionId", extension_2->id())
607 .Set("provisional", true) 609 .Set("provisional", true)
608 .Build()); 610 .Build());
609 EXPECT_TRUE(printers->Find(*extension_1_entry) != printers->end()); 611 EXPECT_TRUE(printers->Find(*extension_1_entry) != printers->end());
610 EXPECT_TRUE(printers->Find(*extension_2_entry) != printers->end()); 612 EXPECT_TRUE(printers->Find(*extension_2_entry) != printers->end());
611 613
612 fake_api->TriggerNextGetPrintersCallback(base::ListValue(), true); 614 fake_api->TriggerNextGetPrintersCallback(base::ListValue(), true);
613 615
614 EXPECT_EQ(2u, call_count); 616 EXPECT_EQ(2u, call_count);
615 EXPECT_TRUE(is_done); 617 EXPECT_TRUE(is_done);
616 EXPECT_TRUE(printers.get()); 618 EXPECT_TRUE(printers.get());
617 EXPECT_EQ(0u, printers->GetSize()); // RecordPrinterList resets |printers|. 619 EXPECT_EQ(0u, printers->GetSize()); // RecordPrinterList resets |printers|.
618 } 620 }
619 621
620 TEST_F(ExtensionPrinterHandlerTest, GetCapability) { 622 TEST_F(ExtensionPrinterHandlerTest, GetCapability) {
621 size_t call_count = 0; 623 size_t call_count = 0;
622 std::string destination_id; 624 std::string destination_id;
623 scoped_ptr<base::DictionaryValue> capability; 625 std::unique_ptr<base::DictionaryValue> capability;
624 626
625 extension_printer_handler_->StartGetCapability( 627 extension_printer_handler_->StartGetCapability(
626 kPrinterId, 628 kPrinterId,
627 base::Bind(&RecordCapability, &call_count, &destination_id, &capability)); 629 base::Bind(&RecordCapability, &call_count, &destination_id, &capability));
628 630
629 EXPECT_EQ(0u, call_count); 631 EXPECT_EQ(0u, call_count);
630 632
631 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 633 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
632 ASSERT_TRUE(fake_api); 634 ASSERT_TRUE(fake_api);
633 ASSERT_EQ(1u, fake_api->pending_get_capability_count()); 635 ASSERT_EQ(1u, fake_api->pending_get_capability_count());
634 636
635 std::string error; 637 std::string error;
636 scoped_ptr<base::DictionaryValue> original_capability( 638 std::unique_ptr<base::DictionaryValue> original_capability(
637 GetJSONAsDictionaryValue(kPWGRasterOnlyPrinterSimpleDescription, &error)); 639 GetJSONAsDictionaryValue(kPWGRasterOnlyPrinterSimpleDescription, &error));
638 ASSERT_TRUE(original_capability) 640 ASSERT_TRUE(original_capability)
639 << "Error deserializing capability: " << error; 641 << "Error deserializing capability: " << error;
640 642
641 fake_api->TriggerNextGetCapabilityCallback(*original_capability); 643 fake_api->TriggerNextGetCapabilityCallback(*original_capability);
642 644
643 EXPECT_EQ(1u, call_count); 645 EXPECT_EQ(1u, call_count);
644 EXPECT_EQ(kPrinterId, destination_id); 646 EXPECT_EQ(kPrinterId, destination_id);
645 ASSERT_TRUE(capability.get()); 647 ASSERT_TRUE(capability.get());
646 EXPECT_TRUE(capability->Equals(original_capability.get())) 648 EXPECT_TRUE(capability->Equals(original_capability.get()))
647 << *capability << ", expected: " << *original_capability; 649 << *capability << ", expected: " << *original_capability;
648 } 650 }
649 651
650 TEST_F(ExtensionPrinterHandlerTest, GetCapability_Reset) { 652 TEST_F(ExtensionPrinterHandlerTest, GetCapability_Reset) {
651 size_t call_count = 0; 653 size_t call_count = 0;
652 std::string destination_id; 654 std::string destination_id;
653 scoped_ptr<base::DictionaryValue> capability; 655 std::unique_ptr<base::DictionaryValue> capability;
654 656
655 extension_printer_handler_->StartGetCapability( 657 extension_printer_handler_->StartGetCapability(
656 kPrinterId, 658 kPrinterId,
657 base::Bind(&RecordCapability, &call_count, &destination_id, &capability)); 659 base::Bind(&RecordCapability, &call_count, &destination_id, &capability));
658 660
659 EXPECT_EQ(0u, call_count); 661 EXPECT_EQ(0u, call_count);
660 662
661 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 663 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
662 ASSERT_TRUE(fake_api); 664 ASSERT_TRUE(fake_api);
663 ASSERT_EQ(1u, fake_api->pending_get_capability_count()); 665 ASSERT_EQ(1u, fake_api->pending_get_capability_count());
664 666
665 extension_printer_handler_->Reset(); 667 extension_printer_handler_->Reset();
666 668
667 std::string error; 669 std::string error;
668 scoped_ptr<base::DictionaryValue> original_capability( 670 std::unique_ptr<base::DictionaryValue> original_capability(
669 GetJSONAsDictionaryValue(kPWGRasterOnlyPrinterSimpleDescription, &error)); 671 GetJSONAsDictionaryValue(kPWGRasterOnlyPrinterSimpleDescription, &error));
670 ASSERT_TRUE(original_capability) 672 ASSERT_TRUE(original_capability)
671 << "Error deserializing capability: " << error; 673 << "Error deserializing capability: " << error;
672 674
673 fake_api->TriggerNextGetCapabilityCallback(*original_capability); 675 fake_api->TriggerNextGetCapabilityCallback(*original_capability);
674 676
675 EXPECT_EQ(0u, call_count); 677 EXPECT_EQ(0u, call_count);
676 } 678 }
677 679
678 TEST_F(ExtensionPrinterHandlerTest, Print_Pdf) { 680 TEST_F(ExtensionPrinterHandlerTest, Print_Pdf) {
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
962 EXPECT_FALSE(success); 964 EXPECT_FALSE(success);
963 EXPECT_EQ("INVALID_DATA", status); 965 EXPECT_EQ("INVALID_DATA", status);
964 } 966 }
965 967
966 TEST_F(ExtensionPrinterHandlerTest, GrantUsbPrinterAccess) { 968 TEST_F(ExtensionPrinterHandlerTest, GrantUsbPrinterAccess) {
967 scoped_refptr<MockUsbDevice> device = 969 scoped_refptr<MockUsbDevice> device =
968 new MockUsbDevice(0, 0, "Google", "USB Printer", ""); 970 new MockUsbDevice(0, 0, "Google", "USB Printer", "");
969 usb_service_.AddDevice(device); 971 usb_service_.AddDevice(device);
970 972
971 size_t call_count = 0; 973 size_t call_count = 0;
972 scoped_ptr<base::DictionaryValue> printer_info; 974 std::unique_ptr<base::DictionaryValue> printer_info;
973 975
974 std::string printer_id = base::StringPrintf( 976 std::string printer_id = base::StringPrintf(
975 "provisional-usb:fake extension id:%s", device->guid().c_str()); 977 "provisional-usb:fake extension id:%s", device->guid().c_str());
976 extension_printer_handler_->StartGrantPrinterAccess( 978 extension_printer_handler_->StartGrantPrinterAccess(
977 printer_id, base::Bind(&RecordPrinterInfo, &call_count, &printer_info)); 979 printer_id, base::Bind(&RecordPrinterInfo, &call_count, &printer_info));
978 980
979 EXPECT_FALSE(printer_info.get()); 981 EXPECT_FALSE(printer_info.get());
980 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 982 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
981 ASSERT_TRUE(fake_api); 983 ASSERT_TRUE(fake_api);
982 ASSERT_EQ(1u, fake_api->pending_usb_info_count()); 984 ASSERT_EQ(1u, fake_api->pending_usb_info_count());
983 985
984 scoped_ptr<base::DictionaryValue> original_printer_info( 986 std::unique_ptr<base::DictionaryValue> original_printer_info(
985 DictionaryBuilder() 987 DictionaryBuilder()
986 .Set("id", "printer1") 988 .Set("id", "printer1")
987 .Set("name", "Printer 1") 989 .Set("name", "Printer 1")
988 .Build()); 990 .Build());
989 991
990 fake_api->TriggerNextUsbPrinterInfoCallback(*original_printer_info); 992 fake_api->TriggerNextUsbPrinterInfoCallback(*original_printer_info);
991 993
992 EXPECT_EQ(1u, call_count); 994 EXPECT_EQ(1u, call_count);
993 ASSERT_TRUE(printer_info.get()); 995 ASSERT_TRUE(printer_info.get());
994 EXPECT_TRUE(printer_info->Equals(original_printer_info.get())) 996 EXPECT_TRUE(printer_info->Equals(original_printer_info.get()))
995 << *printer_info << ", expected: " << *original_printer_info; 997 << *printer_info << ", expected: " << *original_printer_info;
996 } 998 }
997 999
998 TEST_F(ExtensionPrinterHandlerTest, GrantUsbPrinterAccess_Reset) { 1000 TEST_F(ExtensionPrinterHandlerTest, GrantUsbPrinterAccess_Reset) {
999 scoped_refptr<MockUsbDevice> device = 1001 scoped_refptr<MockUsbDevice> device =
1000 new MockUsbDevice(0, 0, "Google", "USB Printer", ""); 1002 new MockUsbDevice(0, 0, "Google", "USB Printer", "");
1001 usb_service_.AddDevice(device); 1003 usb_service_.AddDevice(device);
1002 1004
1003 size_t call_count = 0; 1005 size_t call_count = 0;
1004 scoped_ptr<base::DictionaryValue> printer_info; 1006 std::unique_ptr<base::DictionaryValue> printer_info;
1005 1007
1006 extension_printer_handler_->StartGrantPrinterAccess( 1008 extension_printer_handler_->StartGrantPrinterAccess(
1007 base::StringPrintf("provisional-usb:fake extension id:%s", 1009 base::StringPrintf("provisional-usb:fake extension id:%s",
1008 device->guid().c_str()), 1010 device->guid().c_str()),
1009 base::Bind(&RecordPrinterInfo, &call_count, &printer_info)); 1011 base::Bind(&RecordPrinterInfo, &call_count, &printer_info));
1010 1012
1011 EXPECT_FALSE(printer_info.get()); 1013 EXPECT_FALSE(printer_info.get());
1012 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI(); 1014 FakePrinterProviderAPI* fake_api = GetPrinterProviderAPI();
1013 ASSERT_TRUE(fake_api); 1015 ASSERT_TRUE(fake_api);
1014 ASSERT_EQ(1u, fake_api->pending_usb_info_count()); 1016 ASSERT_EQ(1u, fake_api->pending_usb_info_count());
1015 1017
1016 extension_printer_handler_->Reset(); 1018 extension_printer_handler_->Reset();
1017 1019
1018 scoped_ptr<base::DictionaryValue> original_printer_info( 1020 std::unique_ptr<base::DictionaryValue> original_printer_info(
1019 DictionaryBuilder() 1021 DictionaryBuilder()
1020 .Set("id", "printer1") 1022 .Set("id", "printer1")
1021 .Set("name", "Printer 1") 1023 .Set("name", "Printer 1")
1022 .Build()); 1024 .Build());
1023 1025
1024 fake_api->TriggerNextUsbPrinterInfoCallback(*original_printer_info); 1026 fake_api->TriggerNextUsbPrinterInfoCallback(*original_printer_info);
1025 1027
1026 EXPECT_EQ(0u, call_count); 1028 EXPECT_EQ(0u, call_count);
1027 EXPECT_FALSE(printer_info.get()); 1029 EXPECT_FALSE(printer_info.get());
1028 } 1030 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698