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

Unified Diff: chrome/test/data/webui/bluetooth_internals_browsertest.js

Issue 2602503002: bluetooth: Fix flaky bluetooth internals browser test. (Closed)
Patch Set: Add transition duration constant Created 3 years, 12 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 side-by-side diff with in-line comments
Download patch
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);
});
});

Powered by Google App Engine
This is Rietveld 408576698