Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js b/third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..78740a35c080384078aa0f8462d688e81ef915fc |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js |
| @@ -0,0 +1,104 @@ |
| +// Copyright 2017 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. |
| + |
| +/** |
| + * Export all public members onto TestRunner namespace so test writers have a simpler API |
| + * @fileoverview OK to use private properties in tests. |
| + * @suppress {accessControls} |
| + */ |
| + |
| +/** |
| + * @param {!SDK.Target} target |
| + */ |
| +IntegrationTestRunner._setupTestHelpers = function(target) { |
| + TestRunner.CSSAgent = target.cssAgent(); |
| + TestRunner.DeviceOrientationAgent = target.deviceOrientationAgent(); |
| + TestRunner.DOMAgent = target.domAgent(); |
| + TestRunner.DOMDebuggerAgent = target.domdebuggerAgent(); |
| + TestRunner.DebuggerAgent = target.debuggerAgent(); |
| + TestRunner.EmulationAgent = target.emulationAgent(); |
| + TestRunner.HeapProfilerAgent = target.heapProfilerAgent(); |
| + TestRunner.InspectorAgent = target.inspectorAgent(); |
| + TestRunner.NetworkAgent = target.networkAgent(); |
| + TestRunner.PageAgent = target.pageAgent(); |
| + TestRunner.ProfilerAgent = target.profilerAgent(); |
| + TestRunner.RuntimeAgent = target.runtimeAgent(); |
| + TestRunner.TargetAgent = target.targetAgent(); |
| + |
| + TestRunner.networkManager = target.model(SDK.NetworkManager); |
| + TestRunner.securityOriginManager = target.model(SDK.SecurityOriginManager); |
| + TestRunner.resourceTreeModel = target.model(SDK.ResourceTreeModel); |
| + TestRunner.debuggerModel = target.model(SDK.DebuggerModel); |
| + TestRunner.runtimeModel = target.model(SDK.RuntimeModel); |
| + TestRunner.domModel = target.model(SDK.DOMModel); |
| + TestRunner.domDebuggerModel = target.model(SDK.DOMDebuggerModel); |
| + TestRunner.cssModel = target.model(SDK.CSSModel); |
| + TestRunner.cpuProfilerModel = target.model(SDK.CPUProfilerModel); |
| + TestRunner.serviceWorkerManager = target.model(SDK.ServiceWorkerManager); |
| + TestRunner.tracingManager = target.model(SDK.TracingManager); |
| + TestRunner.mainTarget = target; |
| + TestRunner.consoleModel = ConsoleModel.consoleModel; |
| + TestRunner.networkLog = NetworkLog.networkLog; |
| +}; |
| + |
| +/** |
| + * @param {string} code |
| + * @param {!Function} callback |
| + */ |
| +TestRunner.evaluateInPage = async function(code, callback) { |
| + var response = await TestRunner.RuntimeAgent.invoke_evaluate({expression: code, objectGroup: 'console'}); |
| + if (!response[Protocol.Error]) { |
| + TestRunner.safeWrap(callback)( |
| + TestRunner.runtimeModel.createRemoteObject(response.result), response.exceptionDetails); |
| + } |
| +}; |
| + |
| +/** |
| + * @param {string} code |
| + * @return {!Promise<!SDK.RemoteObject>} |
| + */ |
| +TestRunner.evaluateInPagePromise = function(code) { |
| + return new Promise(success => TestRunner.evaluateInPage(code, success)); |
| +}; |
| + |
| +/** |
| + * @param {!Function} callback |
| + */ |
| +TestRunner.deprecatedRunAfterPendingDispatches = function(callback) { |
| + var targets = SDK.targetManager.targets(); |
| + var promises = targets.map(target => new Promise(resolve => target._deprecatedRunAfterPendingDispatches(resolve))); |
| + Promise.all(promises).then(TestRunner.safeWrap(callback)); |
| +}; |
| + |
| +(function() { |
| + /** @type {boolean} */ |
| + IntegrationTestRunner._startedTest = false; |
| + |
| + /** |
| + * @implements {SDK.TargetManager.Observer} |
| + */ |
| + class TestObserver { |
| + /** |
| + * @param {!SDK.Target} target |
| + * @override |
| + */ |
| + targetAdded(target) { |
| + if (IntegrationTestRunner._startedTest) |
| + return; |
| + IntegrationTestRunner._startedTest = true; |
| + self.runtime.loadModulePromise('integration_test_runner').then(() => { |
|
dgozman
2017/06/15 21:16:48
We are already in this module.
chenwilliam
2017/06/19 18:33:29
Yep. removed.
|
| + IntegrationTestRunner._setupTestHelpers(target); |
| + TestRunner.executeTestScript(); |
| + }); |
| + } |
| + |
| + /** |
| + * @param {!SDK.Target} target |
| + * @override |
| + */ |
| + targetRemoved(target) { |
| + } |
| + } |
| + SDK.targetManager.observeTargets(new TestObserver()); |
| +})(); |