| Index: chrome/test/data/extensions/api_test/braille_display_private/key_events/test.js
|
| diff --git a/chrome/test/data/extensions/api_test/braille_display_private/key_events/test.js b/chrome/test/data/extensions/api_test/braille_display_private/key_events/test.js
|
| index 48a23fe687570370463ccd7939196acefa933f31..4f3776b03bd0ea22136c75fe68bbf7707917e370 100644
|
| --- a/chrome/test/data/extensions/api_test/braille_display_private/key_events/test.js
|
| +++ b/chrome/test/data/extensions/api_test/braille_display_private/key_events/test.js
|
| @@ -13,13 +13,13 @@ var EXPECTED_EVENTS = [
|
| ]
|
|
|
| var event_number = 0;
|
| -var callbackCompleted;
|
| +var allEventsReceived;
|
|
|
| function eventListener(event) {
|
| - console.log("Received event: " + event);
|
| + console.log("Received event: " + JSON.stringify(event));
|
| chrome.test.assertEq(event, EXPECTED_EVENTS[event_number]);
|
| if (++event_number == EXPECTED_EVENTS.length) {
|
| - callbackCompleted();
|
| + allEventsReceived();
|
| }
|
| console.log("Event number: " + event_number);
|
| }
|
| @@ -27,12 +27,18 @@ function eventListener(event) {
|
| function waitForDisplay(callback) {
|
| var callbackCompleted = chrome.test.callbackAdded();
|
| var displayStateHandler = function(state) {
|
| + if (!callbackCompleted) {
|
| + return;
|
| + }
|
| chrome.test.assertTrue(state.available, "Display not available");
|
| chrome.test.assertEq(11, state.textCellCount);
|
| callback(state);
|
| callbackCompleted();
|
| chrome.brailleDisplayPrivate.onDisplayStateChanged.removeListener(
|
| displayStateHandler);
|
| + // Prevent additional runs if the onDisplayStateChanged event
|
| + // is fired before getDisplayState invokes the callback.
|
| + callbackCompleted = null;
|
| };
|
| chrome.brailleDisplayPrivate.onDisplayStateChanged.addListener(
|
| displayStateHandler);
|
| @@ -48,7 +54,7 @@ function waitForDisplay(callback) {
|
| chrome.test.runTests([
|
| function testKeyEvents() {
|
| chrome.brailleDisplayPrivate.onKeyEvent.addListener(eventListener);
|
| - callbackCompleted = chrome.test.callbackAdded();
|
| + allEventsReceived = chrome.test.callbackAdded();
|
| waitForDisplay(pass());
|
| }
|
| ]);
|
|
|