Chromium Code Reviews| 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(message); | |
|
einbinder
2017/06/26 22:59:23
"Fail:" +
dgozman
2017/06/26 23:28:54
Done.
| |
| 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 |