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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/integration_test_runner/IntegrationTestRunner.js

Issue 2742623002: DevTools: improve test infrastructure w/ devtools driving the test (Closed)
Patch Set: fixup Created 3 years, 9 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
(Empty)
1 // Copyright 2017 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.
4
5 // Export all public members onto TestRunner namespace so test writers have a si mpler API
6
7 /**
8 * @param {!SDK.Target} target
9 */
10 IntegrationTestRunner._setupTestHelpers = function(target) {
11 TestRunner.CSSAgent = target.cssAgent();
12 TestRunner.DeviceOrientationAgent = target.deviceOrientationAgent();
13 TestRunner.DOMAgent = target.domAgent();
14 TestRunner.DOMDebuggerAgent = target.domdebuggerAgent();
15 TestRunner.DebuggerAgent = target.debuggerAgent();
16 TestRunner.EmulationAgent = target.emulationAgent();
17 TestRunner.HeapProfilerAgent = target.heapProfilerAgent();
18 TestRunner.InspectorAgent = target.inspectorAgent();
19 TestRunner.NetworkAgent = target.networkAgent();
20 TestRunner.PageAgent = target.pageAgent();
21 TestRunner.ProfilerAgent = target.profilerAgent();
22 TestRunner.RuntimeAgent = target.runtimeAgent();
23 TestRunner.TargetAgent = target.targetAgent();
24
25 TestRunner.consoleModel = target.consoleModel;
26 TestRunner.networkManager = SDK.NetworkManager.fromTarget(target);
27 TestRunner.securityOriginManager = SDK.SecurityOriginManager.fromTarget(target );
28 TestRunner.resourceTreeModel = SDK.ResourceTreeModel.fromTarget(target);
29 TestRunner.networkLog = SDK.NetworkLog.fromTarget(target);
30 TestRunner.debuggerModel = SDK.DebuggerModel.fromTarget(target);
31 TestRunner.runtimeModel = target.runtimeModel;
32 TestRunner.domModel = SDK.DOMModel.fromTarget(target);
33 TestRunner.cssModel = target.model(SDK.CSSModel);
34 TestRunner.powerProfiler = target.powerProfiler;
35 TestRunner.cpuProfilerModel = target.model(SDK.CPUProfilerModel);
36 TestRunner.heapProfilerModel = target.heapProfilerModel;
37 TestRunner.animationModel = target.animationModel;
38 TestRunner.serviceWorkerCacheModel = target.serviceWorkerCacheModel;
39 TestRunner.serviceWorkerManager = target.model(SDK.ServiceWorkerManager);
40 TestRunner.tracingManager = target.model(SDK.TracingManager);
41 TestRunner.mainTarget = target;
42 };
43
44 /**
45 * @param {string} code
46 * @param {!Function} callback
47 */
48 TestRunner.evaluateInPage = function(code, callback) {
49 callback = TestRunner.safeWrap(callback);
50
51 /**
52 * @param {?Protocol.Error} error
53 * @param {!SDK.RemoteObject=} result
54 * @param {!Protocol.Runtime.ExceptionDetails=} exceptionDetails
55 */
56 function mycallback(error, result, exceptionDetails) {
57 if (!error)
58 callback(TestRunner.runtimeModel.createRemoteObject(result), exceptionDeta ils);
59 }
60 TestRunner.RuntimeAgent.evaluate(code, 'console', false, mycallback);
61 };
62
63 /**
64 * @param {string} code
65 * @return {!Promise<!SDK.RemoteObject>}
66 */
67 TestRunner.evaluateInPagePromise = function(code) {
68 return new Promise(success => TestRunner.evaluateInPage(code, success));
69 };
70
71 /**
72 * @param {!Function} callback
73 */
74 TestRunner.deprecatedRunAfterPendingDispatches = function(callback) {
75 var barrier = new CallbackBarrier();
76 var targets = SDK.targetManager.targets();
77 for (var i = 0; i < targets.length; ++i)
78 targets[i]._deprecatedRunAfterPendingDispatches(barrier.createCallback());
79 barrier.callWhenDone(TestRunner.safeWrap(callback));
80 };
81
82 (function() {
83 /** @type {boolean} */
84 IntegrationTestRunner._startedTest = false;
85
86 /**
87 * @implements {SDK.TargetManager.Observer}
88 */
89 class TestObserver {
90 /**
91 * @param {!SDK.Target} target
92 * @override
93 */
94 targetAdded(target) {
95 if (IntegrationTestRunner._startedTest)
96 return;
97 IntegrationTestRunner._startedTest = true;
98 self.runtime.loadModulePromise('integration_test_runner').then(() => {
99 IntegrationTestRunner._setupTestHelpers(target);
100 TestRunner.start();
101 });
102 }
103
104 /**
105 * @param {!SDK.Target} target
106 * @override
107 */
108 targetRemoved(target) {
109 }
110 }
111 SDK.targetManager.observeTargets(new TestObserver());
112 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698