Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / browser / resources / chromeos / chromevox / testing / chromevox_e2e_test_base.js
blobbc7744cae51c58e52a212918ae2ffc77be3a7a5d
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 GEN_INCLUDE([
6     'common.js',
7     'callback_helper.js']);
9 /**
10  * Base test fixture for ChromeVox end to end tests.
11  *
12  * These tests run against production ChromeVox inside of the extension's
13  * background page context.
14  * @constructor
15  */
16 function ChromeVoxE2ETest() {
17   this.callbackHelper_ = new CallbackHelper(this);
20 ChromeVoxE2ETest.prototype = {
21   __proto__: testing.Test.prototype,
23   /**
24    * @override
25    * No UI in the background context.
26    */
27   runAccessibilityChecks: false,
29   /** @override */
30   isAsync: true,
32   /** @override */
33   browsePreload: null,
35   /** @override */
36   testGenCppIncludes: function() {
37     GEN_BLOCK(function() {/*!
38 #include "ash/accessibility_delegate.h"
39 #include "base/bind.h"
40 #include "base/callback.h"
41 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
42 #include "chrome/common/extensions/extension_constants.h"
43     */});
44   },
46   /** @override */
47   testGenPreamble: function() {
48     GEN_BLOCK(function() {/*!
49   base::Closure load_cb =
50       base::Bind(&chromeos::AccessibilityManager::EnableSpokenFeedback,
51           base::Unretained(chromeos::AccessibilityManager::Get()),
52           true,
53           ui::A11Y_NOTIFICATION_NONE);
54   WaitForExtension(extension_misc::kChromeVoxExtensionId, load_cb);
55     */});
56   },
58   /**
59    * Launch a new tab, wait until tab status complete, then run callback.
60    * @param {function() : void} doc Snippet wrapped inside of a function.
61    * @param {function()} callback Called once the document is ready.
62    */
63   runWithLoadedTab: function(doc, callback) {
64     this.launchNewTabWithDoc(doc, function(tab) {
65       chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
66         if (tabId == tab.id && changeInfo.status == 'complete') {
67           callback(tabId);
68         }
69       });
70     });
71   },
73   /**
74    * Launches the given document in a new tab.
75    * @param {function() : void} doc Snippet wrapped inside of a function.
76    * @param {function()} opt_callback Called once the document is created.
77    */
78   runWithTab: function(doc, opt_callback) {
79     var docString = TestUtils.extractHtmlFromCommentEncodedString(doc);
80     var url = 'data:text/html,<!doctype html>' +
81         docString +
82         '<!-- chromevox_next_test -->';
83     var createParams = {
84       active: true,
85       url: url
86     };
87     chrome.tabs.create(createParams, opt_callback);
88   },
90   /**
91    * Send a key to the page.
92    * @param {number} tabId Of the page.
93    * @param {string} key Name of the key (e.g. Down).
94    * @param {string} elementQueryString
95    */
96   sendKeyToElement: function(tabId, key, elementQueryString) {
97     var code = TestUtils.extractHtmlFromCommentEncodedString(function() {/*!
98       var target = document.body.querySelector('$1');
99       target.focus();
100       var evt = document.createEvent('KeyboardEvent');
101       evt.initKeyboardEvent('keydown', true, true, window, '$0', 0, false,
102           false, false, false);
103       document.activeElement.dispatchEvent(evt);
104     */}, [key, elementQueryString]);
106     chrome.tabs.executeScript(tabId, {code: code});
107   },
109   /**
110    * Creates a callback that optionally calls {@code opt_callback} when
111    * called.  If this method is called one or more times, then
112    * {@code testDone()} will be called when all callbacks have been called.
113    * @param {Function=} opt_callback Wrapped callback that will have its this
114    *        reference bound to the test fixture.
115    * @return {Function}
116    */
117   newCallback: function(opt_callback) {
118     return this.callbackHelper_.wrap(opt_callback);
119   }