Chromium Code Reviews| Index: chrome/test/data/webui/bluetooth_internals_browsertest.js |
| diff --git a/chrome/test/data/webui/bluetooth_internals_browsertest.js b/chrome/test/data/webui/bluetooth_internals_browsertest.js |
| index 0e948f14dd66a28fee8d861e4a45d53d7a6cb7c3..50a5b10ef7f6a466bf79f70bf740d9d11098a1c1 100644 |
| --- a/chrome/test/data/webui/bluetooth_internals_browsertest.js |
| +++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js |
| @@ -225,16 +225,7 @@ BluetoothInternalsTest.prototype = { |
| }, |
| }; |
| -// Fails on Win/Mac. https://crbug.com/676227 |
| -GEN('#if defined(OS_MACOSX) || defined(OS_WIN)'); |
| -GEN('#define MAYBE_Startup_BluetoothInternals \\'); |
| -GEN(' DISABLED_Startup_BluetoothInternals'); |
| -GEN('#else'); |
| -GEN('#define MAYBE_Startup_BluetoothInternals Startup_BluetoothInternals'); |
| -GEN('#endif'); |
| - |
| -TEST_F('BluetoothInternalsTest', |
| - 'MAYBE_Startup_BluetoothInternals', function() { |
| +TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() { |
| var adapterFactory = null; |
| var deviceTable = null; |
| var sidebarNode = null; |
| @@ -477,13 +468,37 @@ TEST_F('BluetoothInternalsTest', |
| }); |
| /* Snackbar Tests */ |
| - function finishSnackbarTest(done) { |
| - // Let event queue finish. |
| - setTimeout(function() { |
| - expectEquals(0, $('snackbar-container').children.length); |
| - expectFalse(!!snackbar.Snackbar.current_); |
| - done(); |
| - }, 10); |
| + |
| + /** |
| + * Checks snackbar showing status and returns a Promise that resolves when |
| + * |pendingSnackbar| is shown. If the snackbar is already showing, the |
| + * Promise resolves immediately. |
| + * @param {!snackbar.Snackbar} pendingSnackbar |
| + * @return {!Promise} |
| + */ |
| + function whenSnackbarShows(pendingSnackbar) { |
| + return new Promise(function(resolve) { |
| + if (pendingSnackbar.classList.contains('open')) { |
| + resolve(); |
| + } else { |
| + pendingSnackbar.addEventListener('showed', function() { resolve(); }); |
| + } |
|
Dan Beam
2017/01/04 01:48:33
no curlies
mbrunson
2017/01/04 03:46:19
Done.
|
| + }); |
| + } |
| + |
| + /** |
| + * Performs final checks for snackbar tests. |
| + * @return {!Promise} Promise is fulfilled when the checks finish. |
| + */ |
| + function finishSnackbarTest() { |
| + return new Promise(function(resolve) { |
| + // Let event queue finish. |
| + setTimeout(function() { |
| + expectEquals(0, $('snackbar-container').children.length); |
| + expectFalse(!!snackbar.Snackbar.current_); |
| + resolve(); |
| + }, 50); |
| + }); |
| } |
| test('Snackbar_ShowTimeout', function(done) { |
| @@ -491,18 +506,19 @@ TEST_F('BluetoothInternalsTest', |
| assertEquals(1, $('snackbar-container').children.length); |
| snackbar1.addEventListener('dismissed', function() { |
| - finishSnackbarTest(done); |
| + finishSnackbarTest().then(done); |
| }); |
| }); |
| test('Snackbar_ShowDismiss', function(done) { |
| var snackbar1 = snackbar.Snackbar.show('Message 1'); |
| assertEquals(1, $('snackbar-container').children.length); |
| - snackbar1.addEventListener('dismissed', function() { |
| - finishSnackbarTest(done); |
| - }); |
| - snackbar.Snackbar.dismiss(); |
| + function finish() { |
| + snackbar.Snackbar.dismiss().then(finishSnackbarTest).then(done); |
| + } |
| + |
| + 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.
|
| }); |
| test('Snackbar_QueueThreeDismiss', function(done) { |
| @@ -518,18 +534,18 @@ TEST_F('BluetoothInternalsTest', |
| function next() { |
| actualCalls++; |
| - snackbar.Snackbar.dismiss(); |
| + return snackbar.Snackbar.dismiss(); |
| } |
| - snackbar1.addEventListener('dismissed', next); |
| - snackbar2.addEventListener('dismissed', next); |
| - snackbar3.addEventListener('dismissed', function() { |
| - next(); |
| - expectEquals(expectedCalls, actualCalls); |
| - finishSnackbarTest(done); |
| - }); |
| + function finish() { |
| + next().then(function() { |
| + expectEquals(expectedCalls, actualCalls); |
| + }).then(finishSnackbarTest).then(done); |
| + } |
| - snackbar.Snackbar.dismiss(); |
| + whenSnackbarShows(snackbar1).then(next); |
| + whenSnackbarShows(snackbar2).then(next); |
| + whenSnackbarShows(snackbar3).then(finish); |
| }); |
| test('Snackbar_QueueThreeDismissAll', function(done) { |
| @@ -547,17 +563,17 @@ TEST_F('BluetoothInternalsTest', |
| assertTrue(false); |
| } |
| - snackbar1.addEventListener('dismissed', function() { |
| - expectEquals(0, snackbar.Snackbar.queue_.length); |
| - expectFalse(!!snackbar.Snackbar.current_); |
| - snackbar.Snackbar.dismiss(); |
| - |
| - finishSnackbarTest(done); |
| - }); |
| + whenSnackbarShows(snackbar2).then(next); |
| snackbar2.addEventListener('dismissed', next); |
| + whenSnackbarShows(snackbar3).then(next); |
| snackbar3.addEventListener('dismissed', next); |
| - snackbar.Snackbar.dismiss(true); |
| + whenSnackbarShows(snackbar1).then(function() { |
| + return snackbar.Snackbar.dismiss(true); |
| + }).then(function() { |
| + expectEquals(0, snackbar.Snackbar.queue_.length); |
| + expectFalse(!!snackbar.Snackbar.current_); |
| + }).then(finishSnackbarTest).then(done); |
| }); |
| }); |