| 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 22 matching lines...) Expand all Loading... |
| 33 /** | 33 /** |
| 34 * Files that need not be compiled. Should be overridden to use correct | 34 * Files that need not be compiled. Should be overridden to use correct |
| 35 * relative paths with PolymerTest.getLibraries. | 35 * relative paths with PolymerTest.getLibraries. |
| 36 * @override | 36 * @override |
| 37 */ | 37 */ |
| 38 extraLibraries: [ | 38 extraLibraries: [ |
| 39 'ui/webui/resources/js/cr.js', | 39 'ui/webui/resources/js/cr.js', |
| 40 'ui/webui/resources/js/promise_resolver.js', | 40 'ui/webui/resources/js/promise_resolver.js', |
| 41 'third_party/mocha/mocha.js', | 41 'third_party/mocha/mocha.js', |
| 42 'chrome/test/data/webui/mocha_adapter.js', | 42 'chrome/test/data/webui/mocha_adapter.js', |
| 43 'third_party/polymer/v1_0/components-chromium/iron-test-helpers/' + |
| 44 'mock-interactions.js', |
| 43 ], | 45 ], |
| 44 | 46 |
| 45 /** @override */ | 47 /** @override */ |
| 46 setUp: function() { | 48 setUp: function() { |
| 47 testing.Test.prototype.setUp.call(this); | 49 testing.Test.prototype.setUp.call(this); |
| 48 | 50 |
| 49 // List of imported URLs for debugging purposes. | 51 // List of imported URLs for debugging purposes. |
| 50 PolymerTest.importUrls_ = []; | 52 PolymerTest.importUrls_ = []; |
| 51 PolymerTest.scriptUrls_ = []; | 53 PolymerTest.scriptUrls_ = []; |
| 52 | 54 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 69 msg += ' ' + PolymerTest.importUrls_[i] + '\n'; | 71 msg += ' ' + PolymerTest.importUrls_[i] + '\n'; |
| 70 for (var i = 0; i < PolymerTest.scriptUrls_.length; i++) | 72 for (var i = 0; i < PolymerTest.scriptUrls_.length; i++) |
| 71 msg += ' ' + PolymerTest.scriptUrls_[i] + '\n'; | 73 msg += ' ' + PolymerTest.scriptUrls_[i] + '\n'; |
| 72 console.error(msg); | 74 console.error(msg); |
| 73 | 75 |
| 74 // Mocha will handle the error. | 76 // Mocha will handle the error. |
| 75 throw e; | 77 throw e; |
| 76 } | 78 } |
| 77 }; | 79 }; |
| 78 | 80 |
| 79 // Import Polymer and iron-test-helpers before running tests. | 81 // Import Polymer before running tests. |
| 80 suiteSetup(function() { | 82 suiteSetup(function() { |
| 81 var promises = []; | |
| 82 if (!window.Polymer) { | 83 if (!window.Polymer) { |
| 83 promises.push( | 84 return PolymerTest.importHtml('chrome://resources/html/polymer.html'); |
| 84 PolymerTest.importHtml('chrome://resources/html/polymer.html')); | |
| 85 } | 85 } |
| 86 if (typeof MockInteractions != 'object') { | |
| 87 // Avoid importing the HTML file because iron-test-helpers assumes it is | |
| 88 // not being imported separately alongside a vulcanized Polymer. | |
| 89 promises.push( | |
| 90 PolymerTest.loadScript( | |
| 91 'chrome://resources/polymer/v1_0/iron-test-helpers/' + | |
| 92 'mock-interactions.js')); | |
| 93 } | |
| 94 return Promise.all(promises); | |
| 95 }); | 86 }); |
| 96 }, | 87 }, |
| 97 | 88 |
| 98 /** @override */ | 89 /** @override */ |
| 99 tearDown: function() { | 90 tearDown: function() { |
| 100 // Note: We do this in tearDown() so that we have a chance to stamp all the | 91 // Note: We do this in tearDown() so that we have a chance to stamp all the |
| 101 // dom-if templates, add elements through interaction, etc. | 92 // dom-if templates, add elements through interaction, etc. |
| 102 PolymerTest.testIronIcons(document.body); | 93 PolymerTest.testIronIcons(document.body); |
| 103 | 94 |
| 104 testing.Test.prototype.tearDown.call(this); | 95 testing.Test.prototype.tearDown.call(this); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 * https://github.com/Polymer/web-component-tester/blob/master/browser/environme
nt/helpers.js#L97 | 182 * https://github.com/Polymer/web-component-tester/blob/master/browser/environme
nt/helpers.js#L97 |
| 192 */ | 183 */ |
| 193 PolymerTest.flushTasks = function() { | 184 PolymerTest.flushTasks = function() { |
| 194 Polymer.dom.flush(); | 185 Polymer.dom.flush(); |
| 195 // Promises have microtask timing, so we use setTimeout to explicity force a | 186 // Promises have microtask timing, so we use setTimeout to explicity force a |
| 196 // new task. | 187 // new task. |
| 197 return new Promise(function(resolve, reject) { | 188 return new Promise(function(resolve, reject) { |
| 198 window.setTimeout(resolve, 0); | 189 window.setTimeout(resolve, 0); |
| 199 }); | 190 }); |
| 200 }; | 191 }; |
| OLD | NEW |