| Index: chrome/browser/resources/chromeos/chromevox/testing/mock_feedback_test.unitjs
|
| diff --git a/chrome/browser/resources/chromeos/chromevox/testing/mock_feedback_test.unitjs b/chrome/browser/resources/chromeos/chromevox/testing/mock_feedback_test.unitjs
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0c7bb07e79431b4f3136e7dc556f5e57a8483f6c
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/chromeos/chromevox/testing/mock_feedback_test.unitjs
|
| @@ -0,0 +1,122 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// Include test fixture.
|
| +GEN_INCLUDE(['chromevox_unittest_base.js',
|
| + 'mock_feedback.js']);
|
| +
|
| +function speak(text, opt_endCallback) {
|
| + cvox.ChromeVox.tts.speak(text, 0, {endCallback: opt_endCallback});
|
| +}
|
| +
|
| +function braille(text) {
|
| + cvox.ChromeVox.braille.write(cvox.NavBraille.fromText(text));
|
| +}
|
| +
|
| +/**
|
| + * Test fixture.
|
| + * @constructor
|
| + * @extends {ChromeVoxUnitTestBase}
|
| + */
|
| +function MockFeedbackUnitTest() {
|
| + ChromeVoxUnitTestBase.call(this);
|
| +}
|
| +
|
| +MockFeedbackUnitTest.prototype = {
|
| + __proto__: ChromeVoxUnitTestBase.prototype,
|
| +
|
| + setUp: function() {
|
| + cvox.ChromeVox = cvox.ChromeVox || {};
|
| + },
|
| +
|
| + closureModuleDeps: [
|
| + 'cvox.BrailleInterface',
|
| + 'cvox.NavBraille',
|
| + 'cvox.TtsInterface'
|
| + ]
|
| +};
|
| +
|
| +TEST_F('MockFeedbackUnitTest', 'speechAndCallbacks', function() {
|
| + var finishCalled = false;
|
| + var afterSecondStringCalled = false;
|
| + var spruiousStringEndCallbackCalled = false;
|
| + var mock = new MockFeedback(function() {
|
| + assertTrue(afterSecondStringCalled);
|
| + assertTrue(spruiousStringEndCallbackCalled);
|
| + assertFalse(finishCalled);
|
| + finishCalled = true;
|
| + });
|
| + mock.install();
|
| + speak('First string');
|
| + mock.expectSpeech('First string')
|
| + .expectSpeech('Second string')
|
| + .call(function() {
|
| + assertFalse(afterSecondStringCalled);
|
| + afterSecondStringCalled = true;
|
| + speak('Spurious string', function() {
|
| + assertFalse(spruiousStringEndCallbackCalled);
|
| + spruiousStringEndCallbackCalled = true;
|
| + });
|
| + speak('Third string');
|
| + })
|
| + .expectSpeech('Third string')
|
| + .go();
|
| + assertFalse(finishCalled);
|
| + speak('Second string');
|
| + assertTrue(finishCalled);
|
| +});
|
| +
|
| +TEST_F('MockFeedbackUnitTest', 'SpeechAndBraille', function() {
|
| + var finishCalled = false;
|
| + var mock = new MockFeedback(function() { finishCalled = true; });
|
| + mock.install();
|
| + braille('Some braille');
|
| + speak('Some speech');
|
| + mock.call(function() {
|
| + braille('First expected braille');
|
| + speak('First expected speech');
|
| + })
|
| + .expectSpeech('First expected speech')
|
| + .expectBraille('First expected braille')
|
| + .go();
|
| + assertTrue(finishCalled);
|
| +});
|
| +
|
| +TEST_F('MockFeedbackUnitTest', 'expectWithRegex', function() {
|
| + var done = false;
|
| + var mock = new MockFeedback();
|
| + mock.install();
|
| + mock.call(function() { braille('Item 1 of 14'); })
|
| + .expectBraille(/Item \d+ of \d+/)
|
| + .call(function() { done = true;})
|
| + .go();
|
| + assertTrue(done);
|
| +});
|
| +
|
| +TEST_F('MockFeedbackUnitTest', 'expectAfterGoThrows', function() {
|
| + var mock = new MockFeedback();
|
| + mock.go();
|
| + assertException('', function() {
|
| + mock.expectSpeech('hello');
|
| + }, 'Error');
|
| +});
|
| +
|
| +TEST_F('MockFeedbackUnitTest', 'NoMatchDoesNotFinish', function() {
|
| + var firstCallbackCalled = false;
|
| + var mock = new MockFeedback(function() {
|
| + throw Error('Should not be called');
|
| + });
|
| + mock.install();
|
| + braille('Some string');
|
| + mock.call(function() {
|
| + braille('Some other string');
|
| + firstCallbackCalled = true;
|
| + })
|
| + .expectBraille('Unmatched string')
|
| + .call(function() {
|
| + throw Error('Should not be called');
|
| + })
|
| + .go();
|
| + assertTrue(firstCallbackCalled);
|
| +});
|
|
|