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

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

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

Powered by Google App Engine
This is Rietveld 408576698