OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var TestRunner = class { | 5 var TestRunner = class { |
6 constructor(baseURL, log, completeTest, fetch) { | 6 constructor(baseURL, log, completeTest, fetch) { |
7 this._dumpInspectorProtocolMessages = false; | 7 this._dumpInspectorProtocolMessages = false; |
8 this._baseURL = baseURL; | 8 this._baseURL = baseURL; |
9 this._log = log; | 9 this._log = log; |
10 this._completeTest = completeTest; | 10 this._completeTest = completeTest; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 } | 85 } |
86 | 86 |
87 dumpValue(object, '', title || ''); | 87 dumpValue(object, '', title || ''); |
88 this.log(lines.join('\n')); | 88 this.log(lines.join('\n')); |
89 } | 89 } |
90 | 90 |
91 url(relative) { | 91 url(relative) { |
92 return this._baseURL + relative; | 92 return this._baseURL + relative; |
93 } | 93 } |
94 | 94 |
| 95 async runTestSuite(testSuite) { |
| 96 for (var test of testSuite) { |
| 97 this.log('\nRunning test: ' + test.name); |
| 98 try { |
| 99 await test(); |
| 100 } catch (e) { |
| 101 this.log(`Error during test: ${e}\n${e.stack}`); |
| 102 } |
| 103 } |
| 104 this.completeTest(); |
| 105 } |
| 106 |
95 _checkExpectation(fail, name, messageObject) { | 107 _checkExpectation(fail, name, messageObject) { |
96 if (fail === !!messageObject.error) { | 108 if (fail === !!messageObject.error) { |
97 this.log('PASS: ' + name); | 109 this.log('PASS: ' + name); |
98 return true; | 110 return true; |
99 } | 111 } |
100 | 112 |
101 this.log('FAIL: ' + name + ': ' + JSON.stringify(messageObject)); | 113 this.log('FAIL: ' + name + ': ' + JSON.stringify(messageObject)); |
102 this.completeTest(); | 114 this.completeTest(); |
103 return false; | 115 return false; |
104 } | 116 } |
105 | 117 |
106 expectedSuccess(name, messageObject) { | 118 expectedSuccess(name, messageObject) { |
107 return this._checkExpectation(false, name, messageObject); | 119 return this._checkExpectation(false, name, messageObject); |
108 } | 120 } |
109 | 121 |
110 expectedError(name, messageObject) { | 122 expectedError(name, messageObject) { |
111 return this._checkExpectation(true, name, messageObject); | 123 return this._checkExpectation(true, name, messageObject); |
112 } | 124 } |
113 | 125 |
114 die(message, error) { | 126 die(message, error) { |
115 this.log(`${message}: ${error}\n${error.stack}`); | 127 this.log(`${message}: ${error}\n${error.stack}`); |
116 this.completeTest(); | 128 this.completeTest(); |
117 throw new Error(message); | 129 throw new Error(message); |
118 } | 130 } |
119 | 131 |
| 132 fail(message) { |
| 133 this.log('FAIL: ' + message); |
| 134 this.completeTest(); |
| 135 } |
| 136 |
120 async loadScript(url) { | 137 async loadScript(url) { |
121 var source = await this._fetch(this.url(url)); | 138 var source = await this._fetch(this.url(url)); |
122 return eval(`${source}\n//# sourceURL=${url}`); | 139 return eval(`${source}\n//# sourceURL=${url}`); |
123 }; | 140 }; |
124 | 141 |
125 async createPage() { | 142 async createPage() { |
126 var targetId = (await DevToolsAPI._sendCommandOrDie('Target.createTarget', {
url: 'about:blank'})).targetId; | 143 var targetId = (await DevToolsAPI._sendCommandOrDie('Target.createTarget', {
url: 'about:blank'})).targetId; |
127 await DevToolsAPI._sendCommandOrDie('Target.activateTarget', {targetId}); | 144 await DevToolsAPI._sendCommandOrDie('Target.activateTarget', {targetId}); |
128 var page = new TestRunner.Page(this, targetId); | 145 var page = new TestRunner.Page(this, targetId); |
129 var dummyURL = window.location.href; | 146 var dummyURL = window.location.href; |
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 | 460 |
444 window['onerror'] = (message, source, lineno, colno, error) => { | 461 window['onerror'] = (message, source, lineno, colno, error) => { |
445 DevToolsAPI._log(`${error}\n${error.stack}`); | 462 DevToolsAPI._log(`${error}\n${error.stack}`); |
446 DevToolsAPI._completeTest(); | 463 DevToolsAPI._completeTest(); |
447 }; | 464 }; |
448 | 465 |
449 window.addEventListener('unhandledrejection', e => { | 466 window.addEventListener('unhandledrejection', e => { |
450 DevToolsAPI._log(`Promise rejection: ${e.reason}\n${e.reason ? e.reason.stack
: ''}`); | 467 DevToolsAPI._log(`Promise rejection: ${e.reason}\n${e.reason ? e.reason.stack
: ''}`); |
451 DevToolsAPI._completeTest(); | 468 DevToolsAPI._completeTest(); |
452 }, false); | 469 }, false); |
OLD | NEW |