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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/common/TestBase.js

Issue 1704723002: DevTools: add input event instrumentation test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: speculative attempt to fix MacOS 10.6 flakiness Created 4 years, 10 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * Test suite for interactive UI tests. 6 * Test suite for interactive UI tests.
7 * @constructor 7 * @constructor
8 * @param {Object} domAutomationController DomAutomationController instance. 8 * @param {Object} domAutomationController DomAutomationController instance.
9 */ 9 */
10 WebInspector.TestBase = function(domAutomationController) 10 WebInspector.TestBase = function(domAutomationController)
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 72
73 /** 73 /**
74 * Releases control over execution. 74 * Releases control over execution.
75 */ 75 */
76 WebInspector.TestBase.prototype.releaseControl = function() 76 WebInspector.TestBase.prototype.releaseControl = function()
77 { 77 {
78 if (this.timerId_ !== -1) { 78 if (this.timerId_ !== -1) {
79 clearTimeout(this.timerId_); 79 clearTimeout(this.timerId_);
80 this.timerId_ = -1; 80 this.timerId_ = -1;
81 } 81 }
82 this.controlTaken_ = false;
82 this.reportOk_(); 83 this.reportOk_();
83 }; 84 };
84 85
85 86
86 /** 87 /**
87 * Async tests use this one to report that they are completed. 88 * Async tests use this one to report that they are completed.
88 */ 89 */
89 WebInspector.TestBase.prototype.reportOk_ = function() 90 WebInspector.TestBase.prototype.reportOk_ = function()
90 { 91 {
91 this.domAutomationController_.send("[OK]"); 92 this.domAutomationController_.send("[OK]");
92 }; 93 };
93 94
94 95
95 /** 96 /**
96 * Async tests use this one to report failures. 97 * Async tests use this one to report failures.
97 */ 98 */
98 WebInspector.TestBase.prototype.reportFailure_ = function(error) 99 WebInspector.TestBase.prototype.reportFailure_ = function(error)
99 { 100 {
100 if (this.timerId_ !== -1) { 101 if (this.timerId_ !== -1) {
101 clearTimeout(this.timerId_); 102 clearTimeout(this.timerId_);
102 this.timerId_ = -1; 103 this.timerId_ = -1;
103 } 104 }
104 this.domAutomationController_.send("[FAILED] " + error); 105 this.domAutomationController_.send("[FAILED] " + error);
105 }; 106 };
106 107
107 108
108 /** 109 /**
109 * Run specified test on a fresh instance of the test suite. 110 * Run specified test on a fresh instance of the test suite.
110 * @param {string} name Name of a test method from implementation class. 111 * @param {Array<string>} args method name followed by its parameters.
111 */ 112 */
112 WebInspector.TestBase.prototype.dispatch = function(args) 113 WebInspector.TestBase.prototype.dispatch = function(args)
113 { 114 {
114 var methodName = args.shift(); 115 var methodName = args.shift();
115 try { 116 try {
116 this[methodName].apply(this, args); 117 this[methodName].apply(this, args);
117 if (!this.controlTaken_) 118 if (!this.controlTaken_)
118 this.reportOk_(); 119 this.reportOk_();
119 } catch (e) { 120 } catch (e) {
120 this.reportFailure_(e); 121 this.reportFailure_(e);
121 } 122 }
122 }; 123 };
123 124
124 125
125 /** 126 /**
127 * Wrap an async method with TestBase.{takeControl(), releaseControl()}
128 * and invoke TestBase.reportOk_ upon completion.
129 * @param {Array<string>} args method name followed by its parameters.
130 */
131 WebInspector.TestBase.prototype.waitForAsync = function(var_args)
132 {
133 var args = Array.prototype.slice.call(arguments);
134 this.takeControl();
135 args.push(this.releaseControl.bind(this));
136 this.dispatch(args);
137 };
138
139 /**
126 * Overrides the method with specified name until it's called first time. 140 * Overrides the method with specified name until it's called first time.
127 * @param {!Object} receiver An object whose method to override. 141 * @param {!Object} receiver An object whose method to override.
128 * @param {string} methodName Name of the method to override. 142 * @param {string} methodName Name of the method to override.
129 * @param {!Function} override A function that should be called right after the 143 * @param {!Function} override A function that should be called right after the
130 * overridden method returns. 144 * overridden method returns.
131 * @param {?boolean} opt_sticky Whether restore original method after first run 145 * @param {?boolean} opt_sticky Whether restore original method after first run
132 * or not. 146 * or not.
133 */ 147 */
134 WebInspector.TestBase.prototype.addSniffer = function(receiver, methodName, over ride, opt_sticky) 148 WebInspector.TestBase.prototype.addSniffer = function(receiver, methodName, over ride, opt_sticky)
135 { 149 {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 } 196 }
183 197
184 function onSchedule() 198 function onSchedule()
185 { 199 {
186 if (scheduleShouldFail) 200 if (scheduleShouldFail)
187 test.fail("Unexpected Throttler.schedule"); 201 test.fail("Unexpected Throttler.schedule");
188 } 202 }
189 203
190 checkState(); 204 checkState();
191 }; 205 };
OLDNEW
« no previous file with comments | « chrome/test/data/devtools/latency_info.html ('k') | third_party/WebKit/Source/devtools/front_end/main/Tests.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698