| 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..8743227abb8ef443d54b94a0781d9b416178b1a8
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js
|
| @@ -0,0 +1,99 @@
|
| +// 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 using private properties isn't a Closure violation 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;
|
| +};
|
| +
|
| +/**
|
| + * @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));
|
| +};
|
| +
|
| +/** @type {boolean} */
|
| +IntegrationTestRunner._startedTest = false;
|
| +
|
| +/**
|
| + * @implements {SDK.TargetManager.Observer}
|
| + */
|
| +IntegrationTestRunner.TestObserver = class {
|
| + /**
|
| + * @param {!SDK.Target} target
|
| + * @override
|
| + */
|
| + targetAdded(target) {
|
| + if (IntegrationTestRunner._startedTest)
|
| + return;
|
| + IntegrationTestRunner._startedTest = true;
|
| + IntegrationTestRunner._setupTestHelpers(target);
|
| + TestRunner.executeTestScript();
|
| + }
|
| +
|
| + /**
|
| + * @param {!SDK.Target} target
|
| + * @override
|
| + */
|
| + targetRemoved(target) {
|
| + }
|
| +};
|
| +
|
| +SDK.targetManager.observeTargets(new IntegrationTestRunner.TestObserver());
|
|
|