Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** | 5 /** |
| 6 * @fileoverview Framework for running JavaScript tests of Polymer elements. | 6 * @fileoverview Framework for running JavaScript tests of Polymer elements. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * Test fixture for Polymer element testing. | 10 * Test fixture for Polymer element testing. |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 181 var promise = new Promise(function(resolve, reject) { | 181 var promise = new Promise(function(resolve, reject) { |
| 182 script.onload = resolve; | 182 script.onload = resolve; |
| 183 script.onerror = reject; | 183 script.onerror = reject; |
| 184 }); | 184 }); |
| 185 script.src = src; | 185 script.src = src; |
| 186 document.head.appendChild(script); | 186 document.head.appendChild(script); |
| 187 return promise; | 187 return promise; |
| 188 }; | 188 }; |
| 189 | 189 |
| 190 /** | 190 /** |
| 191 * Removes all content from the body. | 191 * Removes all content from the body, save for the global <style> elements |
| 192 * used by a vulcanized build. | |
| 192 */ | 193 */ |
| 193 PolymerTest.clearBody = function() { | 194 PolymerTest.clearBody = function() { |
| 194 document.body.innerHTML = ''; | 195 var vulcanizeDiv = document.querySelector('body > div[hidden][by-vulcanize]'); |
|
dpapad
2017/04/24 18:35:15
Would it be simpler to do the following?
var toRe
dpapad
2017/04/25 01:11:09
Or maybe even better to use the following selector
| |
| 196 document.body.innerHTML=''; | |
| 197 if (!vulcanizeDiv) | |
| 198 return; | |
| 199 | |
| 200 if (!vulcanizeDiv.hasAttribute('processed-by-test')) { | |
|
dpapad
2017/04/24 18:35:15
What is "processed-by-test"?
| |
| 201 for (var child of vulcanizeDiv.children) { | |
| 202 if (child.tagName != 'STYLE') | |
| 203 child.remove(); | |
| 204 } | |
| 205 vulcanizeDiv.setAttribute('processed-by-test', ''); | |
| 206 } | |
| 207 | |
| 208 document.body.appendChild(vulcanizeDiv); | |
| 195 }; | 209 }; |
| 196 | 210 |
| 197 /** | 211 /** |
| 198 * Helper function to return the list of extra libraries relative to basePath. | 212 * Helper function to return the list of extra libraries relative to basePath. |
| 199 */ | 213 */ |
| 200 PolymerTest.getLibraries = function(basePath) { | 214 PolymerTest.getLibraries = function(basePath) { |
| 201 // Ensure basePath ends in '/'. | 215 // Ensure basePath ends in '/'. |
| 202 if (basePath.length && basePath[basePath.length - 1] != '/') | 216 if (basePath.length && basePath[basePath.length - 1] != '/') |
| 203 basePath += '/'; | 217 basePath += '/'; |
| 204 | 218 |
| 205 return PolymerTest.prototype.extraLibraries.map(function(library) { | 219 return PolymerTest.prototype.extraLibraries.map(function(library) { |
| 206 return basePath + library; | 220 return basePath + library; |
| 207 }); | 221 }); |
| 208 }; | 222 }; |
| 209 | 223 |
| 210 /* | 224 /* |
| 211 * Waits for queued up tasks to finish before proceeding. Inspired by: | 225 * Waits for queued up tasks to finish before proceeding. Inspired by: |
| 212 * https://github.com/Polymer/web-component-tester/blob/master/browser/environme nt/helpers.js#L97 | 226 * https://github.com/Polymer/web-component-tester/blob/master/browser/environme nt/helpers.js#L97 |
| 213 */ | 227 */ |
| 214 PolymerTest.flushTasks = function() { | 228 PolymerTest.flushTasks = function() { |
| 215 Polymer.dom.flush(); | 229 Polymer.dom.flush(); |
| 216 // Promises have microtask timing, so we use setTimeout to explicity force a | 230 // Promises have microtask timing, so we use setTimeout to explicity force a |
| 217 // new task. | 231 // new task. |
| 218 return new Promise(function(resolve, reject) { | 232 return new Promise(function(resolve, reject) { |
| 219 window.setTimeout(resolve, 0); | 233 window.setTimeout(resolve, 0); |
| 220 }); | 234 }); |
| 221 }; | 235 }; |
| OLD | NEW |