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

Side by Side Diff: extensions/browser/api/printer_provider/printer_provider_apitest.cc

Issue 900503002: List printers managed by extensions in print preview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 10 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 "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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698