OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 /** | 5 /** |
6 * @fileoverview Tests for chrome://bluetooth-internals | 6 * @fileoverview Tests for chrome://bluetooth-internals |
7 */ | 7 */ |
8 | 8 |
9 /** @const {string} Path to source root. */ | 9 /** @const {string} Path to source root. */ |
10 var ROOT_PATH = '../../../../'; | 10 var ROOT_PATH = '../../../../'; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 */ | 211 */ |
212 fakeDeviceInfo3: function() { | 212 fakeDeviceInfo3: function() { |
213 return { | 213 return { |
214 address: "CC:CC:84:96:92:84", | 214 address: "CC:CC:84:96:92:84", |
215 name: "CCC", | 215 name: "CCC", |
216 name_for_display: "CCC", | 216 name_for_display: "CCC", |
217 }; | 217 }; |
218 }, | 218 }, |
219 }; | 219 }; |
220 | 220 |
221 // Fails on Win/Mac. https://crbug.com/676227 | 221 TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { |
222 GEN('#if defined(OS_MACOSX) || defined(OS_WIN)'); | |
223 GEN('#define MAYBE_Startup_BluetoothInternals \\'); | |
224 GEN(' DISABLED_Startup_BluetoothInternals'); | |
225 GEN('#else'); | |
226 GEN('#define MAYBE_Startup_BluetoothInternals Startup_BluetoothInternals'); | |
227 GEN('#endif'); | |
228 | |
229 TEST_F('BluetoothInternalsTest', | |
230 'MAYBE_Startup_BluetoothInternals', function() { | |
231 var adapterFactory = null; | 222 var adapterFactory = null; |
232 var deviceTable = null; | 223 var deviceTable = null; |
233 var sidebarNode = null; | 224 var sidebarNode = null; |
234 | 225 |
235 var fakeDeviceInfo1 = this.fakeDeviceInfo1; | 226 var fakeDeviceInfo1 = this.fakeDeviceInfo1; |
236 var fakeDeviceInfo2 = this.fakeDeviceInfo2; | 227 var fakeDeviceInfo2 = this.fakeDeviceInfo2; |
237 var fakeDeviceInfo3 = this.fakeDeviceInfo3; | 228 var fakeDeviceInfo3 = this.fakeDeviceInfo3; |
238 | 229 |
239 // Before tests are run, make sure setup completes. | 230 // Before tests are run, make sure setup completes. |
240 var setupPromise = this.setupResolver.promise.then(function() { | 231 var setupPromise = this.setupResolver.promise.then(function() { |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 }); | 454 }); |
464 | 455 |
465 test('Sidebar_CloseTwice', function() { | 456 test('Sidebar_CloseTwice', function() { |
466 // Multiple calls to close shouldn't change the state. | 457 // Multiple calls to close shouldn't change the state. |
467 sidebarObj.close(); | 458 sidebarObj.close(); |
468 sidebarObj.close(); | 459 sidebarObj.close(); |
469 expectFalse(sidebarNode.classList.contains('open')); | 460 expectFalse(sidebarNode.classList.contains('open')); |
470 }); | 461 }); |
471 | 462 |
472 /* Snackbar Tests */ | 463 /* Snackbar Tests */ |
473 function finishSnackbarTest(done) { | 464 |
474 // Let event queue finish. | 465 /** |
475 setTimeout(function() { | 466 * Checks snackbar showing status and returns a Promise that resolves when |
476 expectEquals(0, $('snackbar-container').children.length); | 467 * |pendingSnackbar| is shown. If the snackbar is already showing, the |
477 expectFalse(!!snackbar.Snackbar.current_); | 468 * Promise resolves immediately. |
478 done(); | 469 * @param {!snackbar.Snackbar} pendingSnackbar |
479 }, 10); | 470 * @return {!Promise} |
| 471 */ |
| 472 function whenSnackbarShows(pendingSnackbar) { |
| 473 return new Promise(function(resolve) { |
| 474 if (pendingSnackbar.classList.contains('open')) |
| 475 resolve(); |
| 476 else |
| 477 pendingSnackbar.addEventListener('showed', resolve); |
| 478 }); |
| 479 } |
| 480 |
| 481 /** |
| 482 * Performs final checks for snackbar tests. |
| 483 * @return {!Promise} Promise is fulfilled when the checks finish. |
| 484 */ |
| 485 function finishSnackbarTest() { |
| 486 return new Promise(function(resolve) { |
| 487 // Let event queue finish. |
| 488 setTimeout(function() { |
| 489 expectEquals(0, $('snackbar-container').children.length); |
| 490 expectFalse(!!snackbar.Snackbar.current_); |
| 491 resolve(); |
| 492 }, 50); |
| 493 }); |
480 } | 494 } |
481 | 495 |
482 test('Snackbar_ShowTimeout', function(done) { | 496 test('Snackbar_ShowTimeout', function(done) { |
483 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 497 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
484 assertEquals(1, $('snackbar-container').children.length); | 498 assertEquals(1, $('snackbar-container').children.length); |
485 | 499 |
486 snackbar1.addEventListener('dismissed', function() { | 500 snackbar1.addEventListener('dismissed', function() { |
487 finishSnackbarTest(done); | 501 finishSnackbarTest().then(done); |
488 }); | 502 }); |
489 }); | 503 }); |
490 | 504 |
491 test('Snackbar_ShowDismiss', function(done) { | 505 test('Snackbar_ShowDismiss', function() { |
492 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 506 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
493 assertEquals(1, $('snackbar-container').children.length); | 507 assertEquals(1, $('snackbar-container').children.length); |
494 snackbar1.addEventListener('dismissed', function() { | |
495 finishSnackbarTest(done); | |
496 }); | |
497 | 508 |
498 snackbar.Snackbar.dismiss(); | 509 return whenSnackbarShows(snackbar1).then(function() { |
| 510 return snackbar.Snackbar.dismiss(); |
| 511 }).then(finishSnackbarTest); |
499 }); | 512 }); |
500 | 513 |
501 test('Snackbar_QueueThreeDismiss', function(done) { | 514 test('Snackbar_QueueThreeDismiss', function() { |
502 var expectedCalls = 3; | 515 var expectedCalls = 3; |
503 var actualCalls = 0; | 516 var actualCalls = 0; |
504 | 517 |
505 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 518 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
506 var snackbar2 = snackbar.Snackbar.show('Message 2'); | 519 var snackbar2 = snackbar.Snackbar.show('Message 2'); |
507 var snackbar3 = snackbar.Snackbar.show('Message 3'); | 520 var snackbar3 = snackbar.Snackbar.show('Message 3'); |
508 | 521 |
509 assertEquals(1, $('snackbar-container').children.length); | 522 assertEquals(1, $('snackbar-container').children.length); |
510 expectEquals(2, snackbar.Snackbar.queue_.length); | 523 expectEquals(2, snackbar.Snackbar.queue_.length); |
511 | 524 |
512 function next() { | 525 function next() { |
513 actualCalls++; | 526 actualCalls++; |
514 snackbar.Snackbar.dismiss(); | 527 return snackbar.Snackbar.dismiss(); |
515 } | 528 } |
516 | 529 |
517 snackbar1.addEventListener('dismissed', next); | 530 whenSnackbarShows(snackbar1).then(next); |
518 snackbar2.addEventListener('dismissed', next); | 531 whenSnackbarShows(snackbar2).then(next); |
519 snackbar3.addEventListener('dismissed', function() { | 532 return whenSnackbarShows(snackbar3).then(next).then(function() { |
520 next(); | |
521 expectEquals(expectedCalls, actualCalls); | 533 expectEquals(expectedCalls, actualCalls); |
522 finishSnackbarTest(done); | 534 }).then(finishSnackbarTest); |
523 }); | |
524 | |
525 snackbar.Snackbar.dismiss(); | |
526 }); | 535 }); |
527 | 536 |
528 test('Snackbar_QueueThreeDismissAll', function(done) { | 537 test('Snackbar_QueueThreeDismissAll', function() { |
529 var expectedCalls = 1; | 538 var expectedCalls = 1; |
530 var actualCalls = 0; | 539 var actualCalls = 0; |
531 | 540 |
532 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 541 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
533 var snackbar2 = snackbar.Snackbar.show('Message 2'); | 542 var snackbar2 = snackbar.Snackbar.show('Message 2'); |
534 var snackbar3 = snackbar.Snackbar.show('Message 3'); | 543 var snackbar3 = snackbar.Snackbar.show('Message 3'); |
535 | 544 |
536 assertEquals(1, $('snackbar-container').children.length); | 545 assertEquals(1, $('snackbar-container').children.length); |
537 expectEquals(2, snackbar.Snackbar.queue_.length); | 546 expectEquals(2, snackbar.Snackbar.queue_.length); |
538 | 547 |
539 function next() { | 548 function next() { |
540 assertTrue(false); | 549 assertTrue(false); |
541 } | 550 } |
542 | 551 |
543 snackbar1.addEventListener('dismissed', function() { | 552 whenSnackbarShows(snackbar2).then(next); |
| 553 snackbar2.addEventListener('dismissed', next); |
| 554 whenSnackbarShows(snackbar3).then(next); |
| 555 snackbar3.addEventListener('dismissed', next); |
| 556 |
| 557 whenSnackbarShows(snackbar1).then(function() { |
| 558 return snackbar.Snackbar.dismiss(true); |
| 559 }).then(function() { |
544 expectEquals(0, snackbar.Snackbar.queue_.length); | 560 expectEquals(0, snackbar.Snackbar.queue_.length); |
545 expectFalse(!!snackbar.Snackbar.current_); | 561 expectFalse(!!snackbar.Snackbar.current_); |
546 snackbar.Snackbar.dismiss(); | 562 }).then(finishSnackbarTest); |
547 | |
548 finishSnackbarTest(done); | |
549 }); | |
550 snackbar2.addEventListener('dismissed', next); | |
551 snackbar3.addEventListener('dismissed', next); | |
552 | |
553 snackbar.Snackbar.dismiss(true); | |
554 }); | 563 }); |
555 }); | 564 }); |
556 | 565 |
557 | 566 |
558 // Run all registered tests. | 567 // Run all registered tests. |
559 mocha.run(); | 568 mocha.run(); |
560 }); | 569 }); |
OLD | NEW |