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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
218 */ | 218 */ |
219 fakeDeviceInfo3: function() { | 219 fakeDeviceInfo3: function() { |
220 return { | 220 return { |
221 address: "CC:CC:84:96:92:84", | 221 address: "CC:CC:84:96:92:84", |
222 name: "CCC", | 222 name: "CCC", |
223 name_for_display: "CCC", | 223 name_for_display: "CCC", |
224 }; | 224 }; |
225 }, | 225 }, |
226 }; | 226 }; |
227 | 227 |
228 // Fails on Win/Mac. https://crbug.com/676227 | 228 TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { |
229 GEN('#if defined(OS_MACOSX) || defined(OS_WIN)'); | |
230 GEN('#define MAYBE_Startup_BluetoothInternals \\'); | |
231 GEN(' DISABLED_Startup_BluetoothInternals'); | |
232 GEN('#else'); | |
233 GEN('#define MAYBE_Startup_BluetoothInternals Startup_BluetoothInternals'); | |
234 GEN('#endif'); | |
235 | |
236 TEST_F('BluetoothInternalsTest', | |
237 'MAYBE_Startup_BluetoothInternals', function() { | |
238 var adapterFactory = null; | 229 var adapterFactory = null; |
239 var deviceTable = null; | 230 var deviceTable = null; |
240 var sidebarNode = null; | 231 var sidebarNode = null; |
241 | 232 |
242 var fakeDeviceInfo1 = this.fakeDeviceInfo1; | 233 var fakeDeviceInfo1 = this.fakeDeviceInfo1; |
243 var fakeDeviceInfo2 = this.fakeDeviceInfo2; | 234 var fakeDeviceInfo2 = this.fakeDeviceInfo2; |
244 var fakeDeviceInfo3 = this.fakeDeviceInfo3; | 235 var fakeDeviceInfo3 = this.fakeDeviceInfo3; |
245 | 236 |
246 // Before tests are run, make sure setup completes. | 237 // Before tests are run, make sure setup completes. |
247 var setupPromise = this.setupResolver.promise.then(function() { | 238 var setupPromise = this.setupResolver.promise.then(function() { |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
470 }); | 461 }); |
471 | 462 |
472 test('Sidebar_CloseTwice', function() { | 463 test('Sidebar_CloseTwice', function() { |
473 // Multiple calls to close shouldn't change the state. | 464 // Multiple calls to close shouldn't change the state. |
474 sidebarObj.close(); | 465 sidebarObj.close(); |
475 sidebarObj.close(); | 466 sidebarObj.close(); |
476 expectFalse(sidebarNode.classList.contains('open')); | 467 expectFalse(sidebarNode.classList.contains('open')); |
477 }); | 468 }); |
478 | 469 |
479 /* Snackbar Tests */ | 470 /* Snackbar Tests */ |
480 function finishSnackbarTest(done) { | 471 |
481 // Let event queue finish. | 472 /** |
482 setTimeout(function() { | 473 * Checks snackbar showing status and returns a Promise that resolves when |
483 expectEquals(0, $('snackbar-container').children.length); | 474 * |pendingSnackbar| is shown. If the snackbar is already showing, the |
484 expectFalse(!!snackbar.Snackbar.current_); | 475 * Promise resolves immediately. |
485 done(); | 476 * @param {!snackbar.Snackbar} pendingSnackbar |
486 }, 10); | 477 * @return {!Promise} |
478 */ | |
479 function whenSnackbarShows(pendingSnackbar) { | |
480 return new Promise(function(resolve) { | |
481 if (pendingSnackbar.classList.contains('open')) { | |
482 resolve(); | |
483 } else { | |
484 pendingSnackbar.addEventListener('showed', function() { resolve(); }); | |
485 } | |
Dan Beam
2017/01/04 01:48:33
no curlies
mbrunson
2017/01/04 03:46:19
Done.
| |
486 }); | |
487 } | |
488 | |
489 /** | |
490 * Performs final checks for snackbar tests. | |
491 * @return {!Promise} Promise is fulfilled when the checks finish. | |
492 */ | |
493 function finishSnackbarTest() { | |
494 return new Promise(function(resolve) { | |
495 // Let event queue finish. | |
496 setTimeout(function() { | |
497 expectEquals(0, $('snackbar-container').children.length); | |
498 expectFalse(!!snackbar.Snackbar.current_); | |
499 resolve(); | |
500 }, 50); | |
501 }); | |
487 } | 502 } |
488 | 503 |
489 test('Snackbar_ShowTimeout', function(done) { | 504 test('Snackbar_ShowTimeout', function(done) { |
490 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 505 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
491 assertEquals(1, $('snackbar-container').children.length); | 506 assertEquals(1, $('snackbar-container').children.length); |
492 | 507 |
493 snackbar1.addEventListener('dismissed', function() { | 508 snackbar1.addEventListener('dismissed', function() { |
494 finishSnackbarTest(done); | 509 finishSnackbarTest().then(done); |
495 }); | 510 }); |
496 }); | 511 }); |
497 | 512 |
498 test('Snackbar_ShowDismiss', function(done) { | 513 test('Snackbar_ShowDismiss', function(done) { |
499 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 514 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
500 assertEquals(1, $('snackbar-container').children.length); | 515 assertEquals(1, $('snackbar-container').children.length); |
501 snackbar1.addEventListener('dismissed', function() { | |
502 finishSnackbarTest(done); | |
503 }); | |
504 | 516 |
505 snackbar.Snackbar.dismiss(); | 517 function finish() { |
518 snackbar.Snackbar.dismiss().then(finishSnackbarTest).then(done); | |
519 } | |
520 | |
521 whenSnackbarShows(snackbar1).then(finish); | |
Dan Beam
2017/01/04 01:48:33
if you drop the |done| argument and just return a
mbrunson
2017/01/04 03:46:19
Done.
| |
506 }); | 522 }); |
507 | 523 |
508 test('Snackbar_QueueThreeDismiss', function(done) { | 524 test('Snackbar_QueueThreeDismiss', function(done) { |
509 var expectedCalls = 3; | 525 var expectedCalls = 3; |
510 var actualCalls = 0; | 526 var actualCalls = 0; |
511 | 527 |
512 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 528 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
513 var snackbar2 = snackbar.Snackbar.show('Message 2'); | 529 var snackbar2 = snackbar.Snackbar.show('Message 2'); |
514 var snackbar3 = snackbar.Snackbar.show('Message 3'); | 530 var snackbar3 = snackbar.Snackbar.show('Message 3'); |
515 | 531 |
516 assertEquals(1, $('snackbar-container').children.length); | 532 assertEquals(1, $('snackbar-container').children.length); |
517 expectEquals(2, snackbar.Snackbar.queue_.length); | 533 expectEquals(2, snackbar.Snackbar.queue_.length); |
518 | 534 |
519 function next() { | 535 function next() { |
520 actualCalls++; | 536 actualCalls++; |
521 snackbar.Snackbar.dismiss(); | 537 return snackbar.Snackbar.dismiss(); |
522 } | 538 } |
523 | 539 |
524 snackbar1.addEventListener('dismissed', next); | 540 function finish() { |
525 snackbar2.addEventListener('dismissed', next); | 541 next().then(function() { |
526 snackbar3.addEventListener('dismissed', function() { | 542 expectEquals(expectedCalls, actualCalls); |
527 next(); | 543 }).then(finishSnackbarTest).then(done); |
528 expectEquals(expectedCalls, actualCalls); | 544 } |
529 finishSnackbarTest(done); | |
530 }); | |
531 | 545 |
532 snackbar.Snackbar.dismiss(); | 546 whenSnackbarShows(snackbar1).then(next); |
547 whenSnackbarShows(snackbar2).then(next); | |
548 whenSnackbarShows(snackbar3).then(finish); | |
533 }); | 549 }); |
534 | 550 |
535 test('Snackbar_QueueThreeDismissAll', function(done) { | 551 test('Snackbar_QueueThreeDismissAll', function(done) { |
536 var expectedCalls = 1; | 552 var expectedCalls = 1; |
537 var actualCalls = 0; | 553 var actualCalls = 0; |
538 | 554 |
539 var snackbar1 = snackbar.Snackbar.show('Message 1'); | 555 var snackbar1 = snackbar.Snackbar.show('Message 1'); |
540 var snackbar2 = snackbar.Snackbar.show('Message 2'); | 556 var snackbar2 = snackbar.Snackbar.show('Message 2'); |
541 var snackbar3 = snackbar.Snackbar.show('Message 3'); | 557 var snackbar3 = snackbar.Snackbar.show('Message 3'); |
542 | 558 |
543 assertEquals(1, $('snackbar-container').children.length); | 559 assertEquals(1, $('snackbar-container').children.length); |
544 expectEquals(2, snackbar.Snackbar.queue_.length); | 560 expectEquals(2, snackbar.Snackbar.queue_.length); |
545 | 561 |
546 function next() { | 562 function next() { |
547 assertTrue(false); | 563 assertTrue(false); |
548 } | 564 } |
549 | 565 |
550 snackbar1.addEventListener('dismissed', function() { | 566 whenSnackbarShows(snackbar2).then(next); |
567 snackbar2.addEventListener('dismissed', next); | |
568 whenSnackbarShows(snackbar3).then(next); | |
569 snackbar3.addEventListener('dismissed', next); | |
570 | |
571 whenSnackbarShows(snackbar1).then(function() { | |
572 return snackbar.Snackbar.dismiss(true); | |
573 }).then(function() { | |
551 expectEquals(0, snackbar.Snackbar.queue_.length); | 574 expectEquals(0, snackbar.Snackbar.queue_.length); |
552 expectFalse(!!snackbar.Snackbar.current_); | 575 expectFalse(!!snackbar.Snackbar.current_); |
553 snackbar.Snackbar.dismiss(); | 576 }).then(finishSnackbarTest).then(done); |
554 | |
555 finishSnackbarTest(done); | |
556 }); | |
557 snackbar2.addEventListener('dismissed', next); | |
558 snackbar3.addEventListener('dismissed', next); | |
559 | |
560 snackbar.Snackbar.dismiss(true); | |
561 }); | 577 }); |
562 }); | 578 }); |
563 | 579 |
564 | 580 |
565 // Run all registered tests. | 581 // Run all registered tests. |
566 mocha.run(); | 582 mocha.run(); |
567 }); | 583 }); |
OLD | NEW |