OLD | NEW |
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 "base/bind.h" | 5 #include "base/bind.h" |
6 #include "base/json/json_string_value_serializer.h" | 6 #include "base/json/json_string_value_serializer.h" |
7 #include "base/memory/ref_counted_memory.h" | 7 #include "base/memory/ref_counted_memory.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "extensions/browser/api/printer_provider/printer_provider_api.h" | 10 #include "extensions/browser/api/printer_provider/printer_provider_api.h" |
| 11 #include "extensions/browser/api/printer_provider/printer_provider_api_factory.h
" |
| 12 #include "extensions/browser/api/printer_provider/printer_provider_print_job.h" |
11 #include "extensions/browser/extension_registry.h" | 13 #include "extensions/browser/extension_registry.h" |
12 #include "extensions/common/extension.h" | 14 #include "extensions/common/extension.h" |
13 #include "extensions/shell/test/shell_apitest.h" | 15 #include "extensions/shell/test/shell_apitest.h" |
14 #include "extensions/test/extension_test_message_listener.h" | 16 #include "extensions/test/extension_test_message_listener.h" |
15 #include "extensions/test/result_catcher.h" | 17 #include "extensions/test/result_catcher.h" |
16 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
17 | 19 |
18 namespace { | 20 namespace { |
19 | 21 |
20 using extensions::PrinterProviderAPI; | 22 using extensions::PrinterProviderAPI; |
| 23 using extensions::PrinterProviderAPIFactory; |
21 | 24 |
22 // Callback for PrinterProviderAPI::DispatchGetPrintersRequested calls. | 25 // Callback for PrinterProviderAPI::DispatchGetPrintersRequested calls. |
23 // It appends items in |printers| to |*printers_out|. If |done| is set, it runs | 26 // It appends items in |printers| to |*printers_out|. If |done| is set, it runs |
24 // |callback|. | 27 // |callback|. |
25 void AppendPrintersAndRunCallbackIfDone(base::ListValue* printers_out, | 28 void AppendPrintersAndRunCallbackIfDone(base::ListValue* printers_out, |
26 const base::Closure& callback, | 29 const base::Closure& callback, |
27 const base::ListValue& printers, | 30 const base::ListValue& printers, |
28 bool done) { | 31 bool done) { |
29 for (size_t i = 0; i < printers.GetSize(); ++i) { | 32 for (size_t i = 0; i < printers.GetSize(); ++i) { |
30 const base::DictionaryValue* printer = NULL; | 33 const base::DictionaryValue* printer = NULL; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 } | 65 } |
63 | 66 |
64 // Tests for chrome.printerProvider API. | 67 // Tests for chrome.printerProvider API. |
65 class PrinterProviderApiTest : public extensions::ShellApiTest { | 68 class PrinterProviderApiTest : public extensions::ShellApiTest { |
66 public: | 69 public: |
67 PrinterProviderApiTest() {} | 70 PrinterProviderApiTest() {} |
68 ~PrinterProviderApiTest() override {} | 71 ~PrinterProviderApiTest() override {} |
69 | 72 |
70 void StartGetPrintersRequest( | 73 void StartGetPrintersRequest( |
71 const PrinterProviderAPI::GetPrintersCallback& callback) { | 74 const PrinterProviderAPI::GetPrintersCallback& callback) { |
72 PrinterProviderAPI::GetFactoryInstance() | 75 PrinterProviderAPIFactory::GetInstance() |
73 ->Get(browser_context()) | 76 ->GetForBrowserContext(browser_context()) |
74 ->DispatchGetPrintersRequested(callback); | 77 ->DispatchGetPrintersRequested(callback); |
75 } | 78 } |
76 | 79 |
77 void StartPrintRequest(const std::string& extension_id, | 80 void StartPrintRequest(const std::string& extension_id, |
78 const PrinterProviderAPI::PrintCallback& callback) { | 81 const PrinterProviderAPI::PrintCallback& callback) { |
79 PrinterProviderAPI::PrintJob job; | 82 extensions::PrinterProviderPrintJob job; |
80 job.printer_id = extension_id + ":printer_id"; | 83 job.printer_id = extension_id + ":printer_id"; |
81 job.ticket_json = "{}"; | 84 job.ticket_json = "{}"; |
82 job.content_type = "content_type"; | 85 job.content_type = "content_type"; |
83 const unsigned char kDocumentBytes[] = {'b', 'y', 't', 'e', 's', 0}; | 86 const unsigned char kDocumentBytes[] = {'b', 'y', 't', 'e', 's', 0}; |
84 job.document_bytes = | 87 job.document_bytes = |
85 new base::RefCountedBytes(kDocumentBytes, arraysize(kDocumentBytes)); | 88 new base::RefCountedBytes(kDocumentBytes, arraysize(kDocumentBytes)); |
86 | 89 |
87 PrinterProviderAPI::GetFactoryInstance() | 90 PrinterProviderAPIFactory::GetInstance() |
88 ->Get(browser_context()) | 91 ->GetForBrowserContext(browser_context()) |
89 ->DispatchPrintRequested(job, callback); | 92 ->DispatchPrintRequested(job, callback); |
90 } | 93 } |
91 | 94 |
92 void StartCapabilityRequest( | 95 void StartCapabilityRequest( |
93 const std::string& extension_id, | 96 const std::string& extension_id, |
94 const PrinterProviderAPI::GetCapabilityCallback& callback) { | 97 const PrinterProviderAPI::GetCapabilityCallback& callback) { |
95 PrinterProviderAPI::GetFactoryInstance() | 98 PrinterProviderAPIFactory::GetInstance() |
96 ->Get(browser_context()) | 99 ->GetForBrowserContext(browser_context()) |
97 ->DispatchGetCapabilityRequested(extension_id + ":printer_id", | 100 ->DispatchGetCapabilityRequested(extension_id + ":printer_id", |
98 callback); | 101 callback); |
99 } | 102 } |
100 | 103 |
101 // Loads chrome.printerProvider test app and initializes is for test | 104 // Loads chrome.printerProvider test app and initializes is for test |
102 // |test_param|. | 105 // |test_param|. |
103 // When the app's background page is loaded, the app will send 'loaded' | 106 // When the app's background page is loaded, the app will send 'loaded' |
104 // message. As a response to the message it will expect string message | 107 // message. As a response to the message it will expect string message |
105 // specifying the test that should be run. When the app initializes its state | 108 // specifying the test that should be run. When the app initializes its state |
106 // (e.g. registers listener for a chrome.printerProvider event) it will send | 109 // (e.g. registers listener for a chrome.printerProvider event) it will send |
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 &printers, run_loop.QuitClosure())); | 648 &printers, run_loop.QuitClosure())); |
646 | 649 |
647 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 650 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
648 | 651 |
649 run_loop.Run(); | 652 run_loop.Run(); |
650 | 653 |
651 EXPECT_TRUE(printers.empty()); | 654 EXPECT_TRUE(printers.empty()); |
652 } | 655 } |
653 | 656 |
654 } // namespace | 657 } // namespace |
OLD | NEW |