| 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..20f1589fd6f56f90174633d5c0983c184014326b
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js
|
| @@ -0,0 +1,113 @@
|
| +// 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 = function(code, callback) {
|
| + callback = TestRunner.safeWrap(callback);
|
| +
|
| + /**
|
| + * @param {?Protocol.Error} error
|
| + * @param {!SDK.RemoteObject=} result
|
| + * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails
|
| + */
|
| + function mycallback(error, result, exceptionDetails) {
|
| + if (!error)
|
| + callback(TestRunner.runtimeModel.createRemoteObject(result), exceptionDetails);
|
| + }
|
| + TestRunner.RuntimeAgent.evaluate(code, 'console', false, mycallback);
|
| +};
|
| +
|
| +/**
|
| + * @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 barrier = new CallbackBarrier();
|
| + var targets = SDK.targetManager.targets();
|
| + for (var i = 0; i < targets.length; ++i)
|
| + targets[i]._deprecatedRunAfterPendingDispatches(barrier.createCallback());
|
| + barrier.callWhenDone(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(() => {
|
| + IntegrationTestRunner._setupTestHelpers(target);
|
| + TestRunner.executeTestScript();
|
| + });
|
| + }
|
| +
|
| + /**
|
| + * @param {!SDK.Target} target
|
| + * @override
|
| + */
|
| + targetRemoved(target) {
|
| + }
|
| + }
|
| + SDK.targetManager.observeTargets(new TestObserver());
|
| +})();
|
|
|