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

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

Issue 2568283003: bluetooth: Add notification system to internals page. (Closed)
Patch Set: Fix snackbar bug with contentfocus/contentblur Created 4 years 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 0823b9d1b8dd07c612e562c76a26534cd7326264..9c88216ebcfc5e71ff6f43ec834ba41f3eca6463 100644
--- a/chrome/test/data/webui/bluetooth_internals_browsertest.js
+++ b/chrome/test/data/webui/bluetooth_internals_browsertest.js
@@ -263,6 +263,7 @@ TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() {
teardown(function() {
adapterFactory.reset();
sidebarObj.close();
+ window.snackbar.Snackbar.dismiss(true);
});
/**
@@ -466,8 +467,93 @@ TEST_F('BluetoothInternalsTest', 'Startup_BluetoothInternals', function() {
sidebarObj.close();
expectFalse(sidebarNode.classList.contains('open'));
});
+
+ /* Snackbar Tests */
+ function finishSnackbarTest(done) {
+ // Let event queue finish.
+ setTimeout(function() {
+ expectEquals(0, $('snackbar-container').children.length);
+ expectFalse(!!window.snackbar.Snackbar.current_);
+ done();
+ }, 10);
+ }
+
+ test('Snackbar_ShowTimeout', function(done) {
+ var snackbar = window.snackbar.Snackbar.show('Message 1');
+ assertEquals(1, $('snackbar-container').children.length);
+
+ snackbar.addEventListener('dismissed', function() {
+ finishSnackbarTest(done);
+ });
+ });
+
+ test('Snackbar_ShowDismiss', function(done) {
+ var snackbar = window.snackbar.Snackbar.show('Message 1');
+ assertEquals(1, $('snackbar-container').children.length);
+ snackbar.addEventListener('dismissed', function() {
+ finishSnackbarTest(done);
+ });
+
+ window.snackbar.Snackbar.dismiss();
+ });
+
+ test('Snackbar_QueueThreeDismiss', function(done) {
+ var expectedCalls = 3;
+ var actualCalls = 0;
+
+ var snackbar1 = window.snackbar.Snackbar.show('Message 1');
+ var snackbar2 = window.snackbar.Snackbar.show('Message 2');
+ var snackbar3 = window.snackbar.Snackbar.show('Message 3');
+
+ assertEquals(1, $('snackbar-container').children.length);
+ expectEquals(2, window.snackbar.Snackbar.queue_.length);
+
+ function next() {
+ actualCalls++;
+ window.snackbar.Snackbar.dismiss();
+ }
+
+ snackbar1.addEventListener('dismissed', next);
+ snackbar2.addEventListener('dismissed', next);
+ snackbar3.addEventListener('dismissed', function() {
+ next();
+ expectEquals(expectedCalls, actualCalls);
+ finishSnackbarTest(done);
+ });
+
+ window.snackbar.Snackbar.dismiss();
+ });
+
+ test('Snackbar_QueueThreeDismissAll', function(done) {
+ var expectedCalls = 1;
+ var actualCalls = 0;
+
+ var snackbar1 = window.snackbar.Snackbar.show('Message 1');
+ var snackbar2 = window.snackbar.Snackbar.show('Message 2');
+ var snackbar3 = window.snackbar.Snackbar.show('Message 3');
+
+ assertEquals(1, $('snackbar-container').children.length);
+ expectEquals(2, window.snackbar.Snackbar.queue_.length);
+
+ function next() {
+ assertTrue(false);
+ }
+
+ snackbar1.addEventListener('dismissed', function() {
+ expectEquals(0, window.snackbar.Snackbar.queue_.length);
+ expectFalse(!!window.snackbar.Snackbar.current_);
+ window.snackbar.Snackbar.dismiss();
+
+ finishSnackbarTest(done);
+ });
+ snackbar2.addEventListener('dismissed', next);
+ snackbar3.addEventListener('dismissed', next);
+
+ window.snackbar.Snackbar.dismiss(true);
+ });
});
+
// Run all registered tests.
mocha.run();
});

Powered by Google App Engine
This is Rietveld 408576698