Chromium Code Reviews| 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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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\":\"%s\"," |
| 270 "\"id\":\"printer1\"," | 271 "\"id\":\"%s:printer1\"," |
|
Aleksey Shlyapnikov
2015/02/04 18:50:27
I think %1$s refers to the first parameter, so you
tbarzic
2015/02/04 19:27:41
Done.
Nico
2015/02/06 00:46:22
(fyi: https://codereview.chromium.org/902643002/ u
| |
| 271 "\"name\":\"Printer 1\"" | 272 "\"name\":\"Printer 1\"" |
| 272 "}", | 273 "}", |
| 273 extension_id.c_str())); | 274 extension_id.c_str(), 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\":\"%s\"," |
| 277 "\"id\":\"printerNoDesc\"," | 278 "\"id\":\"%s:printerNoDesc\"," |
| 278 "\"name\":\"Printer 2\"" | 279 "\"name\":\"Printer 2\"" |
| 279 "}", | 280 "}", |
| 280 extension_id.c_str())); | 281 extension_id.c_str(), 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\":\"%s\"," |
| 308 "\"id\":\"printer1\"," | 309 "\"id\":\"%s:printer1\"," |
| 309 "\"name\":\"Printer 1\"" | 310 "\"name\":\"Printer 1\"" |
| 310 "}", | 311 "}", |
| 311 extension_id.c_str())); | 312 extension_id.c_str(), 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 |
| 319 std::string extension_id_1; | 320 std::string extension_id_1; |
| 320 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", | 321 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", |
| 321 "OK", &extension_id_1); | 322 "OK", &extension_id_1); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 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\":\"%s\"," |
| 346 "\"id\":\"printer1\"," | 347 "\"id\":\"%s:printer1\"," |
| 347 "\"name\":\"Printer 1\"" | 348 "\"name\":\"Printer 1\"" |
| 348 "}", | 349 "}", |
| 349 extension_id_1.c_str())); | 350 extension_id_1.c_str(), 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\":\"%s\"," |
| 353 "\"id\":\"printerNoDesc\"," | 354 "\"id\":\"%s:printerNoDesc\"," |
| 354 "\"name\":\"Printer 2\"" | 355 "\"name\":\"Printer 2\"" |
| 355 "}", | 356 "}", |
| 356 extension_id_1.c_str())); | 357 extension_id_1.c_str(), 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\":\"%s\"," |
| 361 "\"id\":\"printer1\"," | 362 "\"id\":\"%s:printer1\"," |
| 362 "\"name\":\"Printer 1\"" | 363 "\"name\":\"Printer 1\"" |
| 363 "}", | 364 "}", |
| 364 extension_id_2.c_str())); | 365 extension_id_2.c_str(), 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\":\"%s\"," |
| 368 "\"id\":\"printerNoDesc\"," | 369 "\"id\":\"%s:printerNoDesc\"," |
| 369 "\"name\":\"Printer 2\"" | 370 "\"name\":\"Printer 2\"" |
| 370 "}", | 371 "}", |
| 371 extension_id_2.c_str())); | 372 extension_id_2.c_str(), 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; |
| 379 | 380 |
| 380 std::string extension_id_1; | 381 std::string extension_id_1; |
| 381 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", | 382 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 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\":\"%s\"," |
| 407 "\"id\":\"printer1\"," | 408 "\"id\":\"%s:printer1\"," |
| 408 "\"name\":\"Printer 1\"" | 409 "\"name\":\"Printer 1\"" |
| 409 "}", | 410 "}", |
| 410 extension_id_2.c_str())); | 411 extension_id_2.c_str(), 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\":\"%s\"," |
| 414 "\"id\":\"printerNoDesc\"," | 415 "\"id\":\"%s:printerNoDesc\"," |
| 415 "\"name\":\"Printer 2\"" | 416 "\"name\":\"Printer 2\"" |
| 416 "}", | 417 "}", |
| 417 extension_id_2.c_str())); | 418 extension_id_2.c_str(), 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; |
| 425 | 426 |
| 426 std::string extension_id_1; | 427 std::string extension_id_1; |
| 427 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", | 428 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 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\":\"%s\"," |
| 453 "\"id\":\"printer1\"," | 454 "\"id\":\"%s:printer1\"," |
| 454 "\"name\":\"Printer 1\"" | 455 "\"name\":\"Printer 1\"" |
| 455 "}", | 456 "}", |
| 456 extension_id_2.c_str())); | 457 extension_id_2.c_str(), 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\":\"%s\"," |
| 460 "\"id\":\"printerNoDesc\"," | 461 "\"id\":\"%s:printerNoDesc\"," |
| 461 "\"name\":\"Printer 2\"" | 462 "\"name\":\"Printer 2\"" |
| 462 "}", | 463 "}", |
| 463 extension_id_2.c_str())); | 464 extension_id_2.c_str(), 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 |
| 471 std::string extension_id; | 472 std::string extension_id; |
| 472 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", | 473 InitializePrinterProviderTestApp("api_test/printer_provider/request_printers", |
| 473 "NO_LISTENER", &extension_id); | 474 "NO_LISTENER", &extension_id); |
| (...skipping 70 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 |