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/run_loop.h" | 7 #include "base/run_loop.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "extensions/browser/api/printer_provider/printer_provider_api.h" | 9 #include "extensions/browser/api/printer_provider/printer_provider_api.h" |
10 #include "extensions/common/extension.h" | 10 #include "extensions/common/extension.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 void StartGetPrintersRequest( | 65 void StartGetPrintersRequest( |
66 const PrinterProviderAPI::GetPrintersCallback& callback) { | 66 const PrinterProviderAPI::GetPrintersCallback& callback) { |
67 PrinterProviderAPI::GetFactoryInstance() | 67 PrinterProviderAPI::GetFactoryInstance() |
68 ->Get(browser_context()) | 68 ->Get(browser_context()) |
69 ->DispatchGetPrintersRequested(callback); | 69 ->DispatchGetPrintersRequested(callback); |
70 } | 70 } |
71 | 71 |
72 void StartPrintRequest(const std::string& extension_id, | 72 void StartPrintRequest(const std::string& extension_id, |
73 const PrinterProviderAPI::PrintCallback& callback) { | 73 const PrinterProviderAPI::PrintCallback& callback) { |
74 PrinterProviderAPI::PrintJob job; | 74 PrinterProviderAPI::PrintJob job; |
75 job.printer_id = "printer_id"; | 75 job.printer_id = extension_id + ":printer_id"; |
76 job.ticket_json = "{}"; | 76 job.ticket_json = "{}"; |
77 job.content_type = "content_type"; | 77 job.content_type = "content_type"; |
78 job.document_bytes = "bytes"; | 78 job.document_bytes = "bytes"; |
79 | 79 |
80 PrinterProviderAPI::GetFactoryInstance() | 80 PrinterProviderAPI::GetFactoryInstance() |
81 ->Get(browser_context()) | 81 ->Get(browser_context()) |
82 ->DispatchPrintRequested(extension_id, job, callback); | 82 ->DispatchPrintRequested(job, callback); |
83 } | 83 } |
84 | 84 |
85 void StartCapabilityRequest( | 85 void StartCapabilityRequest( |
86 const std::string& extension_id, | 86 const std::string& extension_id, |
87 const PrinterProviderAPI::GetCapabilityCallback& callback) { | 87 const PrinterProviderAPI::GetCapabilityCallback& callback) { |
88 PrinterProviderAPI::GetFactoryInstance() | 88 PrinterProviderAPI::GetFactoryInstance() |
89 ->Get(browser_context()) | 89 ->Get(browser_context()) |
90 ->DispatchGetCapabilityRequested(extension_id, "printer_id", callback); | 90 ->DispatchGetCapabilityRequested(extension_id + ":printer_id", |
| 91 callback); |
91 } | 92 } |
92 | 93 |
93 // Loads chrome.printerProvider test app and initializes is for test | 94 // Loads chrome.printerProvider test app and initializes is for test |
94 // |test_param|. | 95 // |test_param|. |
95 // When the app's background page is loaded, the app will send 'loaded' | 96 // When the app's background page is loaded, the app will send 'loaded' |
96 // message. As a response to the message it will expect string message | 97 // message. As a response to the message it will expect string message |
97 // specifying the test that should be run. When the app initializes its state | 98 // specifying the test that should be run. When the app initializes its state |
98 // (e.g. registers listener for a chrome.printerProvider event) it will send | 99 // (e.g. registers listener for a chrome.printerProvider event) it will send |
99 // message 'ready', at which point the test may be started. | 100 // message 'ready', at which point the test may be started. |
100 // If the app is successfully initialized, |*extension_id_out| will be set to | 101 // If the app is successfully initialized, |*extension_id_out| will be set to |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 &printers, run_loop.QuitClosure())); | 260 &printers, run_loop.QuitClosure())); |
260 | 261 |
261 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 262 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
262 | 263 |
263 run_loop.Run(); | 264 run_loop.Run(); |
264 | 265 |
265 std::vector<std::string> expected_printers; | 266 std::vector<std::string> expected_printers; |
266 expected_printers.push_back(base::StringPrintf( | 267 expected_printers.push_back(base::StringPrintf( |
267 "{" | 268 "{" |
268 "\"description\":\"Test printer\"," | 269 "\"description\":\"Test printer\"," |
269 "\"extensionId\":\"%s\"," | 270 "\"extensionId\":\"%1$s\"," |
270 "\"id\":\"printer1\"," | 271 "\"id\":\"%1$s:printer1\"," |
271 "\"name\":\"Printer 1\"" | 272 "\"name\":\"Printer 1\"" |
272 "}", | 273 "}", |
273 extension_id.c_str())); | 274 extension_id.c_str())); |
274 expected_printers.push_back(base::StringPrintf( | 275 expected_printers.push_back(base::StringPrintf( |
275 "{" | 276 "{" |
276 "\"extensionId\":\"%s\"," | 277 "\"extensionId\":\"%1$s\"," |
277 "\"id\":\"printerNoDesc\"," | 278 "\"id\":\"%1$s:printerNoDesc\"," |
278 "\"name\":\"Printer 2\"" | 279 "\"name\":\"Printer 2\"" |
279 "}", | 280 "}", |
280 extension_id.c_str())); | 281 extension_id.c_str())); |
281 | 282 |
282 ValidatePrinterListValue(printers, expected_printers); | 283 ValidatePrinterListValue(printers, expected_printers); |
283 } | 284 } |
284 | 285 |
285 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, GetPrintersAsyncSuccess) { | 286 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, GetPrintersAsyncSuccess) { |
286 extensions::ResultCatcher catcher; | 287 extensions::ResultCatcher catcher; |
287 | 288 |
288 std::string extension_id; | 289 std::string extension_id; |
289 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", | 290 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", |
290 "ASYNC_RESPONSE", &extension_id); | 291 "ASYNC_RESPONSE", &extension_id); |
291 ASSERT_FALSE(extension_id.empty()); | 292 ASSERT_FALSE(extension_id.empty()); |
292 | 293 |
293 base::RunLoop run_loop; | 294 base::RunLoop run_loop; |
294 base::ListValue printers; | 295 base::ListValue printers; |
295 | 296 |
296 StartGetPrintersRequest(base::Bind(&AppendPrintersAndRunCallbackIfDone, | 297 StartGetPrintersRequest(base::Bind(&AppendPrintersAndRunCallbackIfDone, |
297 &printers, run_loop.QuitClosure())); | 298 &printers, run_loop.QuitClosure())); |
298 | 299 |
299 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 300 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
300 | 301 |
301 run_loop.Run(); | 302 run_loop.Run(); |
302 | 303 |
303 std::vector<std::string> expected_printers; | 304 std::vector<std::string> expected_printers; |
304 expected_printers.push_back(base::StringPrintf( | 305 expected_printers.push_back(base::StringPrintf( |
305 "{" | 306 "{" |
306 "\"description\":\"Test printer\"," | 307 "\"description\":\"Test printer\"," |
307 "\"extensionId\":\"%s\"," | 308 "\"extensionId\":\"%1$s\"," |
308 "\"id\":\"printer1\"," | 309 "\"id\":\"%1$s:printer1\"," |
309 "\"name\":\"Printer 1\"" | 310 "\"name\":\"Printer 1\"" |
310 "}", | 311 "}", |
311 extension_id.c_str())); | 312 extension_id.c_str())); |
312 | 313 |
313 ValidatePrinterListValue(printers, expected_printers); | 314 ValidatePrinterListValue(printers, expected_printers); |
314 } | 315 } |
315 | 316 |
316 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, GetPrintersTwoExtensions) { | 317 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, GetPrintersTwoExtensions) { |
317 extensions::ResultCatcher catcher; | 318 extensions::ResultCatcher catcher; |
318 | 319 |
(...skipping 16 matching lines...) Expand all Loading... |
335 | 336 |
336 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 337 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
337 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 338 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
338 | 339 |
339 run_loop.Run(); | 340 run_loop.Run(); |
340 | 341 |
341 std::vector<std::string> expected_printers; | 342 std::vector<std::string> expected_printers; |
342 expected_printers.push_back(base::StringPrintf( | 343 expected_printers.push_back(base::StringPrintf( |
343 "{" | 344 "{" |
344 "\"description\":\"Test printer\"," | 345 "\"description\":\"Test printer\"," |
345 "\"extensionId\":\"%s\"," | 346 "\"extensionId\":\"%1$s\"," |
346 "\"id\":\"printer1\"," | 347 "\"id\":\"%1$s:printer1\"," |
347 "\"name\":\"Printer 1\"" | 348 "\"name\":\"Printer 1\"" |
348 "}", | 349 "}", |
349 extension_id_1.c_str())); | 350 extension_id_1.c_str())); |
350 expected_printers.push_back(base::StringPrintf( | 351 expected_printers.push_back(base::StringPrintf( |
351 "{" | 352 "{" |
352 "\"extensionId\":\"%s\"," | 353 "\"extensionId\":\"%1$s\"," |
353 "\"id\":\"printerNoDesc\"," | 354 "\"id\":\"%1$s:printerNoDesc\"," |
354 "\"name\":\"Printer 2\"" | 355 "\"name\":\"Printer 2\"" |
355 "}", | 356 "}", |
356 extension_id_1.c_str())); | 357 extension_id_1.c_str())); |
357 expected_printers.push_back(base::StringPrintf( | 358 expected_printers.push_back(base::StringPrintf( |
358 "{" | 359 "{" |
359 "\"description\":\"Test printer\"," | 360 "\"description\":\"Test printer\"," |
360 "\"extensionId\":\"%s\"," | 361 "\"extensionId\":\"%1$s\"," |
361 "\"id\":\"printer1\"," | 362 "\"id\":\"%1$s:printer1\"," |
362 "\"name\":\"Printer 1\"" | 363 "\"name\":\"Printer 1\"" |
363 "}", | 364 "}", |
364 extension_id_2.c_str())); | 365 extension_id_2.c_str())); |
365 expected_printers.push_back(base::StringPrintf( | 366 expected_printers.push_back(base::StringPrintf( |
366 "{" | 367 "{" |
367 "\"extensionId\":\"%s\"," | 368 "\"extensionId\":\"%1$s\"," |
368 "\"id\":\"printerNoDesc\"," | 369 "\"id\":\"%1$s:printerNoDesc\"," |
369 "\"name\":\"Printer 2\"" | 370 "\"name\":\"Printer 2\"" |
370 "}", | 371 "}", |
371 extension_id_2.c_str())); | 372 extension_id_2.c_str())); |
372 | 373 |
373 ValidatePrinterListValue(printers, expected_printers); | 374 ValidatePrinterListValue(printers, expected_printers); |
374 } | 375 } |
375 | 376 |
376 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, | 377 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, |
377 GetPrintersTwoExtensionsOneFails) { | 378 GetPrintersTwoExtensionsOneFails) { |
378 extensions::ResultCatcher catcher; | 379 extensions::ResultCatcher catcher; |
(...skipping 17 matching lines...) Expand all Loading... |
396 | 397 |
397 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 398 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
398 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 399 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
399 | 400 |
400 run_loop.Run(); | 401 run_loop.Run(); |
401 | 402 |
402 std::vector<std::string> expected_printers; | 403 std::vector<std::string> expected_printers; |
403 expected_printers.push_back(base::StringPrintf( | 404 expected_printers.push_back(base::StringPrintf( |
404 "{" | 405 "{" |
405 "\"description\":\"Test printer\"," | 406 "\"description\":\"Test printer\"," |
406 "\"extensionId\":\"%s\"," | 407 "\"extensionId\":\"%1$s\"," |
407 "\"id\":\"printer1\"," | 408 "\"id\":\"%1$s:printer1\"," |
408 "\"name\":\"Printer 1\"" | 409 "\"name\":\"Printer 1\"" |
409 "}", | 410 "}", |
410 extension_id_2.c_str())); | 411 extension_id_2.c_str())); |
411 expected_printers.push_back(base::StringPrintf( | 412 expected_printers.push_back(base::StringPrintf( |
412 "{" | 413 "{" |
413 "\"extensionId\":\"%s\"," | 414 "\"extensionId\":\"%1$s\"," |
414 "\"id\":\"printerNoDesc\"," | 415 "\"id\":\"%1$s:printerNoDesc\"," |
415 "\"name\":\"Printer 2\"" | 416 "\"name\":\"Printer 2\"" |
416 "}", | 417 "}", |
417 extension_id_2.c_str())); | 418 extension_id_2.c_str())); |
418 | 419 |
419 ValidatePrinterListValue(printers, expected_printers); | 420 ValidatePrinterListValue(printers, expected_printers); |
420 } | 421 } |
421 | 422 |
422 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, | 423 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, |
423 GetPrintersTwoExtensionsOneWithNoListener) { | 424 GetPrintersTwoExtensionsOneWithNoListener) { |
424 extensions::ResultCatcher catcher; | 425 extensions::ResultCatcher catcher; |
(...skipping 17 matching lines...) Expand all Loading... |
442 | 443 |
443 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 444 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
444 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 445 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
445 | 446 |
446 run_loop.Run(); | 447 run_loop.Run(); |
447 | 448 |
448 std::vector<std::string> expected_printers; | 449 std::vector<std::string> expected_printers; |
449 expected_printers.push_back(base::StringPrintf( | 450 expected_printers.push_back(base::StringPrintf( |
450 "{" | 451 "{" |
451 "\"description\":\"Test printer\"," | 452 "\"description\":\"Test printer\"," |
452 "\"extensionId\":\"%s\"," | 453 "\"extensionId\":\"%1$s\"," |
453 "\"id\":\"printer1\"," | 454 "\"id\":\"%1$s:printer1\"," |
454 "\"name\":\"Printer 1\"" | 455 "\"name\":\"Printer 1\"" |
455 "}", | 456 "}", |
456 extension_id_2.c_str())); | 457 extension_id_2.c_str())); |
457 expected_printers.push_back(base::StringPrintf( | 458 expected_printers.push_back(base::StringPrintf( |
458 "{" | 459 "{" |
459 "\"extensionId\":\"%s\"," | 460 "\"extensionId\":\"%1$s\"," |
460 "\"id\":\"printerNoDesc\"," | 461 "\"id\":\"%1$s:printerNoDesc\"," |
461 "\"name\":\"Printer 2\"" | 462 "\"name\":\"Printer 2\"" |
462 "}", | 463 "}", |
463 extension_id_2.c_str())); | 464 extension_id_2.c_str())); |
464 | 465 |
465 ValidatePrinterListValue(printers, expected_printers); | 466 ValidatePrinterListValue(printers, expected_printers); |
466 } | 467 } |
467 | 468 |
468 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, GetPrintersNoListener) { | 469 IN_PROC_BROWSER_TEST_F(PrinterProviderApiTest, GetPrintersNoListener) { |
469 extensions::ResultCatcher catcher; | 470 extensions::ResultCatcher catcher; |
470 | 471 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 &printers, run_loop.QuitClosure())); | 545 &printers, run_loop.QuitClosure())); |
545 | 546 |
546 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 547 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
547 | 548 |
548 run_loop.Run(); | 549 run_loop.Run(); |
549 | 550 |
550 EXPECT_TRUE(printers.empty()); | 551 EXPECT_TRUE(printers.empty()); |
551 } | 552 } |
552 | 553 |
553 } // namespace | 554 } // namespace |
OLD | NEW |