| 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 |