| Index: chrome/browser/resources/chromeos/chromevox/testing/tester.js
|
| diff --git a/chrome/browser/resources/chromeos/chromevox/testing/tester.js b/chrome/browser/resources/chromeos/chromevox/testing/tester.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ed5f67d3ab620ef7697db438a5c53ec4622507c1
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/chromeos/chromevox/testing/tester.js
|
| @@ -0,0 +1,137 @@
|
| +// 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.
|
| +
|
| +goog.provide('cvox.ChromeVoxTester');
|
| +
|
| +goog.require('cvox.AbstractBraille');
|
| +goog.require('cvox.AbstractEarcons');
|
| +goog.require('cvox.ChromeVoxEventWatcher');
|
| +goog.require('cvox.ChromeVoxUserCommands');
|
| +goog.require('cvox.LiveRegions');
|
| +goog.require('cvox.NavigationManager');
|
| +goog.require('cvox.NavigationShifter');
|
| +goog.require('cvox.TestHost');
|
| +goog.require('cvox.TestMathJax');
|
| +goog.require('cvox.TestMsgs');
|
| +goog.require('cvox.TestTts');
|
| +
|
| +
|
| +/**
|
| + * @fileoverview Testing framework for ChromeVox.
|
| + *
|
| + */
|
| +
|
| +
|
| +/**
|
| + * Initializes cvox.ChromeVoxTester and sets up the mock ChromeVox
|
| + * environment.
|
| + * @param {!Document} doc The DOM document to add event listeners to.
|
| + */
|
| +cvox.ChromeVoxTester.setUp = function(doc) {
|
| + cvox.ChromeVox.mathJax = new cvox.TestMathJax();
|
| +
|
| + cvox.ChromeVox.navigationManager = new cvox.NavigationManager();
|
| + cvox.ChromeVoxTester.testTts_ = new cvox.TestTts();
|
| + cvox.ChromeVox.tts = cvox.ChromeVoxTester.testTts_;
|
| +
|
| + // TODO(deboer): Factor this out as 'TestEarcons'
|
| + cvox.ChromeVox.earcons = new cvox.AbstractEarcons();
|
| + cvox.ChromeVox.earcons.playEarcon = function(earcon) { };
|
| +
|
| + cvox.ChromeVox.braille = new cvox.AbstractBraille();
|
| + cvox.ChromeVox.braille.write = function(params) {};
|
| +
|
| + cvox.ChromeVox.msgs = new cvox.TestMsgs();
|
| +
|
| + cvox.ChromeVox.host = new cvox.TestHost();
|
| +
|
| + // Init LiveRegions with a date of 0 so that the initial delay before
|
| + // things is spoken is skipped.
|
| + cvox.LiveRegions.init(new Date(0), cvox.AbstractTts.QUEUE_MODE_QUEUE, false);
|
| +
|
| + cvox.ChromeVoxEventWatcher.init(doc);
|
| + window.console.log('done setup');
|
| +};
|
| +
|
| +/**
|
| + * Tears down cvox.ChromeVoxTester.
|
| + * @param {!Document} doc The DOM document where event listeners were added.
|
| + */
|
| +cvox.ChromeVoxTester.tearDown = function(doc) {
|
| + cvox.ChromeVoxEventWatcher.cleanup(doc);
|
| +};
|
| +
|
| +
|
| +/**
|
| + * Returns the cvox.TestTts created by the tester.
|
| + * @return {cvox.TestTts} The TestTts.
|
| + */
|
| +cvox.ChromeVoxTester.testTts = function() {
|
| + return cvox.ChromeVoxTester.testTts_;
|
| +};
|
| +
|
| +
|
| +/**
|
| + * All calls to tts.speak are saved in an array of utterances.
|
| + * Clear any utterances that were saved up to this poing.
|
| + */
|
| +cvox.ChromeVoxTester.clearUtterances = function() {
|
| + cvox.ChromeVoxTester.testTts_.clearUtterances();
|
| +};
|
| +
|
| +
|
| +/**
|
| + * Return a list of strings of what was spoken by tts.speak().
|
| + * @return {Array.<string>} A list of all utterances spoken since
|
| + * initialization or the last call to clearUtterances.
|
| + */
|
| +cvox.ChromeVoxTester.getUtteranceList = function() {
|
| + return cvox.ChromeVoxTester.testTts_.getUtteranceList();
|
| +};
|
| +
|
| +/**
|
| + * @type {Object.<string, number>} Map from a navigation strategy name
|
| + * to the Navigation Manager strategy enum.
|
| + */
|
| +cvox.ChromeVoxTester.STRATEGY_MAP = {
|
| + 'lineardom': cvox.NavigationShifter.GRANULARITIES.OBJECT,
|
| + 'smart': cvox.NavigationShifter.GRANULARITIES.GROUP,
|
| + 'selection': cvox.NavigationShifter.GRANULARITIES.SENTENCE
|
| +};
|
| +
|
| +/**
|
| + * Switches to a different navigation strategy.
|
| + * @param {string} strategy The desired navigation strategy.
|
| + */
|
| +cvox.ChromeVoxTester.setStrategy = function(strategy) {
|
| + cvox.ChromeVox.navigationManager.ensureNotSubnavigating();
|
| + cvox.ChromeVox.navigationManager.setGranularity(
|
| + cvox.ChromeVoxTester.STRATEGY_MAP[strategy]);
|
| +};
|
| +
|
| +/**
|
| + * Starts reading the page from the current node.
|
| + */
|
| +cvox.ChromeVoxTester.readFromHere = function() {
|
| + cvox.ChromeVox.navigationManager.startReading(
|
| + cvox.AbstractTts.QUEUE_MODE_FLUSH);
|
| +};
|
| +
|
| +/**
|
| + * Syncs to the given node in the test HTML
|
| + * @param {Node} node The node to sync to.
|
| + */
|
| +cvox.ChromeVoxTester.syncToNode = function(node) {
|
| + cvox.ChromeVox.navigationManager
|
| + .updateSel(cvox.CursorSelection.fromNode(node));
|
| + cvox.ChromeVox.navigationManager.sync();
|
| +};
|
| +
|
| +/**
|
| + * Syncs to the first node in the test.
|
| + */
|
| +cvox.ChromeVoxTester.syncToFirstNode = function() {
|
| + cvox.ChromeVox.navigationManager.updateSel(cvox.CursorSelection.fromBody());
|
| + cvox.ChromeVox.navigationManager.sync();
|
| +};
|
|
|