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

Side by Side Diff: chrome/browser/chromeos/printer_detector/printer_detector_unittest.cc

Issue 1739183003: Make extensions::DictionaryBuilder and extensions::ListValue unmovable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chromeos/printer_detector/printer_detector.h" 5 #include "chrome/browser/chromeos/printer_detector/printer_detector.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 uint16_t product_id, 122 uint16_t product_id,
123 uint8_t interface_class) { 123 uint8_t interface_class) {
124 device::UsbConfigDescriptor config(1, false, false, 0); 124 device::UsbConfigDescriptor config(1, false, false, 0);
125 config.interfaces.emplace_back(1, 0, interface_class, 0, 0); 125 config.interfaces.emplace_back(1, 0, interface_class, 0, 0);
126 usb_service_.AddDevice( 126 usb_service_.AddDevice(
127 new device::MockUsbDevice(vendor_id, product_id, config)); 127 new device::MockUsbDevice(vendor_id, product_id, config));
128 } 128 }
129 129
130 // Creates a test extension with the provided permissions. 130 // Creates a test extension with the provided permissions.
131 scoped_refptr<extensions::Extension> CreateTestExtension( 131 scoped_refptr<extensions::Extension> CreateTestExtension(
132 ListBuilder permissions_builder, 132 scoped_ptr<base::ListValue> permissions_builder,
133 DictionaryBuilder usb_printers_builder) { 133 scoped_ptr<base::DictionaryValue> usb_printers_builder) {
134 return extensions::ExtensionBuilder() 134 return extensions::ExtensionBuilder()
135 .SetID("fake_extension_id") 135 .SetID("fake_extension_id")
136 .SetManifest(std::move( 136 .SetManifest(
137 DictionaryBuilder() 137 DictionaryBuilder()
138 .Set("name", "Printer provider extension") 138 .Set("name", "Printer provider extension")
139 .Set("manifest_version", 2) 139 .Set("manifest_version", 2)
140 .Set("version", "1.0") 140 .Set("version", "1.0")
141 // Needed to enable usb API. 141 // Needed to enable usb API.
142 .Set("app", std::move(DictionaryBuilder().Set( 142 .Set("app",
143 "background", 143 DictionaryBuilder()
144 std::move(DictionaryBuilder().Set( 144 .Set("background",
145 "scripts", std::move(ListBuilder().Append( 145 DictionaryBuilder()
146 "bg.js"))))))) 146 .Set("scripts",
147 ListBuilder().Append("bg.js").Build())
148 .Build())
149 .Build())
147 .Set("permissions", std::move(permissions_builder)) 150 .Set("permissions", std::move(permissions_builder))
148 .Set("usb_printers", std::move(usb_printers_builder)))) 151 .Set("usb_printers", std::move(usb_printers_builder))
152 .Build())
149 .Build(); 153 .Build();
150 } 154 }
151 155
152 content::TestBrowserThreadBundle thread_bundle_; 156 content::TestBrowserThreadBundle thread_bundle_;
153 StubNotificationUIManager notification_ui_manager_; 157 StubNotificationUIManager notification_ui_manager_;
154 user_manager::FakeUserManager* user_manager_; 158 user_manager::FakeUserManager* user_manager_;
155 chromeos::ScopedUserManagerEnabler user_manager_enabler_; 159 chromeos::ScopedUserManagerEnabler user_manager_enabler_;
156 device::MockUsbService usb_service_; 160 device::MockUsbService usb_service_;
157 scoped_ptr<TestingProfile> profile_; 161 scoped_ptr<TestingProfile> profile_;
158 FakeDeviceClient device_client_; 162 FakeDeviceClient device_client_;
159 163
160 DISALLOW_COPY_AND_ASSIGN(PrinterDetectorAppSearchEnabledTest); 164 DISALLOW_COPY_AND_ASSIGN(PrinterDetectorAppSearchEnabledTest);
161 }; 165 };
162 166
163 TEST_F(PrinterDetectorAppSearchEnabledTest, ShowFindAppNotification) { 167 TEST_F(PrinterDetectorAppSearchEnabledTest, ShowFindAppNotification) {
164 InvokeUsbAdded(123, 456, kPrinterInterfaceClass); 168 InvokeUsbAdded(123, 456, kPrinterInterfaceClass);
165 169
166 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 170 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
167 const Notification& notification = 171 const Notification& notification =
168 notification_ui_manager_.GetNotificationAt(0); 172 notification_ui_manager_.GetNotificationAt(0);
169 EXPECT_EQ("123:456", notification.tag()); 173 EXPECT_EQ("123:456", notification.tag());
170 EXPECT_EQ( 174 EXPECT_EQ(
171 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "456"), 175 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "456"),
172 notification.delegate_id()); 176 notification.delegate_id());
173 } 177 }
174 178
175 TEST_F(PrinterDetectorAppSearchEnabledTest, ShowAppFoundNotification) { 179 TEST_F(PrinterDetectorAppSearchEnabledTest, ShowAppFoundNotification) {
176 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 180 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
177 std::move(ListBuilder() 181 ListBuilder()
178 .Append("usb") 182 .Append("usb")
179 .Append("printerProvider") 183 .Append("printerProvider")
180 .Append(std::move(DictionaryBuilder().Set( 184 .Append(DictionaryBuilder()
181 "usbDevices", std::move(ListBuilder().Append(std::move( 185 .Set("usbDevices", ListBuilder()
182 DictionaryBuilder() 186 .Append(DictionaryBuilder()
183 .Set("vendorId", 123) 187 .Set("vendorId", 123)
184 .Set("productId", 456)))))))), 188 .Set("productId", 456)
185 std::move(DictionaryBuilder().Set("filters", ListBuilder()))); 189 .Build())
190 .Build())
191 .Build())
192 .Build(),
193 DictionaryBuilder().Set("filters", ListBuilder().Build()).Build());
186 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 194 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
187 ->AddEnabled(extension)); 195 ->AddEnabled(extension));
188 196
189 InvokeUsbAdded(123, 456, kPrinterInterfaceClass); 197 InvokeUsbAdded(123, 456, kPrinterInterfaceClass);
190 198
191 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 199 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
192 const Notification& notification = 200 const Notification& notification =
193 notification_ui_manager_.GetNotificationAt(0); 201 notification_ui_manager_.GetNotificationAt(0);
194 EXPECT_EQ("123:456", notification.tag()); 202 EXPECT_EQ("123:456", notification.tag());
195 EXPECT_EQ( 203 EXPECT_EQ(
196 base::StringPrintf(kPrinterAppExistsDelegateIDTemplate, "123", "456"), 204 base::StringPrintf(kPrinterAppExistsDelegateIDTemplate, "123", "456"),
197 notification.delegate_id()); 205 notification.delegate_id());
198 } 206 }
199 207
200 TEST_F(PrinterDetectorAppSearchEnabledTest, 208 TEST_F(PrinterDetectorAppSearchEnabledTest,
201 UsbHandlerExists_NotPrinterProvider) { 209 UsbHandlerExists_NotPrinterProvider) {
202 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 210 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
203 std::move( 211 ListBuilder()
204 ListBuilder().Append("usb").Append(std::move(DictionaryBuilder().Set( 212 .Append("usb")
205 "usbDevices", std::move(ListBuilder().Append( 213 .Append(DictionaryBuilder()
206 std::move(DictionaryBuilder() 214 .Set("usbDevices", ListBuilder()
207 .Set("vendorId", 123) 215 .Append(DictionaryBuilder()
208 .Set("productId", 756)))))))), 216 .Set("vendorId", 123)
209 std::move(DictionaryBuilder().Set("filters", ListBuilder()))); 217 .Set("productId", 756)
218 .Build())
219 .Build())
220 .Build())
221 .Build(),
222 DictionaryBuilder().Set("filters", ListBuilder().Build()).Build());
210 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 223 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
211 ->AddEnabled(extension)); 224 ->AddEnabled(extension));
212 225
213 InvokeUsbAdded(123, 756, kPrinterInterfaceClass); 226 InvokeUsbAdded(123, 756, kPrinterInterfaceClass);
214 227
215 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 228 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
216 const Notification& notification = 229 const Notification& notification =
217 notification_ui_manager_.GetNotificationAt(0); 230 notification_ui_manager_.GetNotificationAt(0);
218 EXPECT_EQ("123:756", notification.tag()); 231 EXPECT_EQ("123:756", notification.tag());
219 EXPECT_EQ( 232 EXPECT_EQ(
220 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "756"), 233 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "756"),
221 notification.delegate_id()); 234 notification.delegate_id());
222 } 235 }
223 236
224 TEST_F(PrinterDetectorAppSearchEnabledTest, 237 TEST_F(PrinterDetectorAppSearchEnabledTest,
225 PrinterProvider_DifferentUsbProductId) { 238 PrinterProvider_DifferentUsbProductId) {
226 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 239 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
227 std::move(ListBuilder() 240 ListBuilder()
228 .Append("usb") 241 .Append("usb")
229 .Append("printerProvider") 242 .Append("printerProvider")
230 .Append(std::move(DictionaryBuilder().Set( 243 .Append(DictionaryBuilder()
231 "usbDevices", std::move(ListBuilder().Append(std::move( 244 .Set("usbDevices", ListBuilder()
232 DictionaryBuilder() 245 .Append(DictionaryBuilder()
233 .Set("vendorId", 123) 246 .Set("vendorId", 123)
234 .Set("productId", 001)))))))), 247 .Set("productId", 001)
235 std::move(DictionaryBuilder().Set("filters", ListBuilder()))); 248 .Build())
249 .Build())
250 .Build())
251 .Build(),
252 DictionaryBuilder().Set("filters", ListBuilder().Build()).Build());
236 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 253 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
237 ->AddEnabled(extension)); 254 ->AddEnabled(extension));
238 255
239 InvokeUsbAdded(123, 456, kPrinterInterfaceClass); 256 InvokeUsbAdded(123, 456, kPrinterInterfaceClass);
240 257
241 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 258 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
242 const Notification& notification = 259 const Notification& notification =
243 notification_ui_manager_.GetNotificationAt(0); 260 notification_ui_manager_.GetNotificationAt(0);
244 EXPECT_EQ("123:456", notification.tag()); 261 EXPECT_EQ("123:456", notification.tag());
245 EXPECT_EQ( 262 EXPECT_EQ(
246 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "456"), 263 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "456"),
247 notification.delegate_id()); 264 notification.delegate_id());
248 } 265 }
249 266
250 TEST_F(PrinterDetectorAppSearchEnabledTest, 267 TEST_F(PrinterDetectorAppSearchEnabledTest,
251 PrinterProvider_UsbPrinters_NotFound) { 268 PrinterProvider_UsbPrinters_NotFound) {
252 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 269 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
253 std::move(ListBuilder().Append("usb").Append("printerProvider")), 270 ListBuilder().Append("usb").Append("printerProvider").Build(),
254 std::move(DictionaryBuilder().Set( 271 DictionaryBuilder()
255 "filters", std::move(ListBuilder().Append( 272 .Set("filters", ListBuilder()
256 std::move(DictionaryBuilder() 273 .Append(DictionaryBuilder()
257 .Set("vendorId", 123) 274 .Set("vendorId", 123)
258 .Set("productId", 001))))))); 275 .Set("productId", 001)
276 .Build())
277 .Build())
278 .Build());
259 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 279 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
260 ->AddEnabled(extension)); 280 ->AddEnabled(extension));
261 281
262 InvokeUsbAdded(123, 456, kPrinterInterfaceClass); 282 InvokeUsbAdded(123, 456, kPrinterInterfaceClass);
263 283
264 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 284 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
265 const Notification& notification = 285 const Notification& notification =
266 notification_ui_manager_.GetNotificationAt(0); 286 notification_ui_manager_.GetNotificationAt(0);
267 EXPECT_EQ("123:456", notification.tag()); 287 EXPECT_EQ("123:456", notification.tag());
268 EXPECT_EQ( 288 EXPECT_EQ(
269 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "456"), 289 base::StringPrintf(kPrinterAppNotFoundDelegateIDTemplate, "123", "456"),
270 notification.delegate_id()); 290 notification.delegate_id());
271 } 291 }
272 292
273 TEST_F(PrinterDetectorAppSearchEnabledTest, 293 TEST_F(PrinterDetectorAppSearchEnabledTest,
274 PrinterProvider_UsbPrinters_WithProductId) { 294 PrinterProvider_UsbPrinters_WithProductId) {
275 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 295 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
276 std::move(ListBuilder().Append("usb").Append("printerProvider")), 296 ListBuilder().Append("usb").Append("printerProvider").Build(),
277 std::move(DictionaryBuilder().Set( 297 DictionaryBuilder()
278 "filters", std::move(ListBuilder().Append( 298 .Set("filters", ListBuilder()
279 std::move(DictionaryBuilder() 299 .Append(DictionaryBuilder()
280 .Set("vendorId", 123) 300 .Set("vendorId", 123)
281 .Set("productId", 456))))))); 301 .Set("productId", 456)
302 .Build())
303 .Build())
304 .Build());
282 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 305 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
283 ->AddEnabled(extension)); 306 ->AddEnabled(extension));
284 307
285 InvokeUsbAdded(123, 456, kPrinterInterfaceClass); 308 InvokeUsbAdded(123, 456, kPrinterInterfaceClass);
286 309
287 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 310 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
288 const Notification& notification = 311 const Notification& notification =
289 notification_ui_manager_.GetNotificationAt(0); 312 notification_ui_manager_.GetNotificationAt(0);
290 EXPECT_EQ("123:456", notification.tag()); 313 EXPECT_EQ("123:456", notification.tag());
291 EXPECT_EQ( 314 EXPECT_EQ(
292 base::StringPrintf(kPrinterAppExistsDelegateIDTemplate, "123", "456"), 315 base::StringPrintf(kPrinterAppExistsDelegateIDTemplate, "123", "456"),
293 notification.delegate_id()); 316 notification.delegate_id());
294 } 317 }
295 318
296 TEST_F(PrinterDetectorAppSearchEnabledTest, 319 TEST_F(PrinterDetectorAppSearchEnabledTest,
297 PrinterProvider_UsbPrinters_WithInterfaceClass) { 320 PrinterProvider_UsbPrinters_WithInterfaceClass) {
298 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 321 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
299 std::move(ListBuilder().Append("usb").Append("printerProvider")), 322 ListBuilder().Append("usb").Append("printerProvider").Build(),
300 std::move(DictionaryBuilder().Set( 323 DictionaryBuilder()
301 "filters", 324 .Set("filters",
302 std::move(ListBuilder().Append(std::move( 325 ListBuilder()
303 DictionaryBuilder() 326 .Append(DictionaryBuilder()
304 .Set("vendorId", 123) 327 .Set("vendorId", 123)
305 .Set("interfaceClass", kPrinterInterfaceClass))))))); 328 .Set("interfaceClass", kPrinterInterfaceClass)
329 .Build())
330 .Build())
331 .Build());
306 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 332 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
307 ->AddEnabled(extension)); 333 ->AddEnabled(extension));
308 334
309 InvokeUsbAdded(123, 456, kPrinterInterfaceClass); 335 InvokeUsbAdded(123, 456, kPrinterInterfaceClass);
310 336
311 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount()); 337 ASSERT_EQ(1u, notification_ui_manager_.GetNotificationCount());
312 const Notification& notification = 338 const Notification& notification =
313 notification_ui_manager_.GetNotificationAt(0); 339 notification_ui_manager_.GetNotificationAt(0);
314 EXPECT_EQ("123:456", notification.tag()); 340 EXPECT_EQ("123:456", notification.tag());
315 EXPECT_EQ( 341 EXPECT_EQ(
316 base::StringPrintf(kPrinterAppExistsDelegateIDTemplate, "123", "456"), 342 base::StringPrintf(kPrinterAppExistsDelegateIDTemplate, "123", "456"),
317 notification.delegate_id()); 343 notification.delegate_id());
318 } 344 }
319 345
320 TEST_F(PrinterDetectorAppSearchEnabledTest, IgnoreNonPrinters) { 346 TEST_F(PrinterDetectorAppSearchEnabledTest, IgnoreNonPrinters) {
321 scoped_refptr<extensions::Extension> extension = CreateTestExtension( 347 scoped_refptr<extensions::Extension> extension = CreateTestExtension(
322 std::move(ListBuilder().Append("usb").Append("printerProvider")), 348 ListBuilder().Append("usb").Append("printerProvider").Build(),
323 std::move(DictionaryBuilder().Set( 349 DictionaryBuilder()
324 "filters", 350 .Set("filters",
325 std::move(ListBuilder().Append(std::move( 351 ListBuilder()
326 DictionaryBuilder() 352 .Append(DictionaryBuilder()
327 .Set("vendorId", 123) 353 .Set("vendorId", 123)
328 .Set("interfaceClass", kPrinterInterfaceClass))))))); 354 .Set("interfaceClass", kPrinterInterfaceClass)
355 .Build())
356 .Build())
357 .Build());
329 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get()) 358 ASSERT_TRUE(extensions::ExtensionRegistry::Get(profile_.get())
330 ->AddEnabled(extension)); 359 ->AddEnabled(extension));
331 360
332 InvokeUsbAdded(123, 456, 1); 361 InvokeUsbAdded(123, 456, 1);
333 362
334 ASSERT_EQ(0u, notification_ui_manager_.GetNotificationCount()); 363 ASSERT_EQ(0u, notification_ui_manager_.GetNotificationCount());
335 } 364 }
336 365
337 } // namespace chromeos 366 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698