| Index: polymer_1.2.3/bower_components/iron-page-url/test/initialization-tests.html
|
| diff --git a/polymer_1.2.3/bower_components/iron-page-url/test/initialization-tests.html b/polymer_1.2.3/bower_components/iron-page-url/test/initialization-tests.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e9a2bc7b90fdf9c59c49c27a6c17010626dee288
|
| --- /dev/null
|
| +++ b/polymer_1.2.3/bower_components/iron-page-url/test/initialization-tests.html
|
| @@ -0,0 +1,135 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + <meta charset="utf-8">
|
| + <title></title>
|
| + <script src="../../webcomponentsjs/webcomponents.js"></script>
|
| + <script src="../../web-component-tester/browser.js"></script>
|
| + <script src="../../test-fixture/test-fixture-mocha.js"></script>
|
| +
|
| + <link rel="import" href="../../polymer/polymer.html">
|
| + <link rel="import" href="../../promise-polyfill/promise-polyfill.html">
|
| + <link rel="import" href="../../test-fixture/test-fixture.html">
|
| + <link rel="import" href="../iron-page-url.html">
|
| + </head>
|
| +
|
| + <body>
|
| + <script>
|
| + 'use strict';
|
| +
|
| + function getIframe() {
|
| + return new Promise(function(resolve, reject) {
|
| + var iframe = document.createElement('iframe');
|
| + var result = getMessageMatching(iframe, function(message) {
|
| + return message.type === 'ready';
|
| + });
|
| + iframe.src = './initialization-iframe.html';
|
| + document.body.appendChild(iframe);
|
| + iframe.addEventListener('error', reject);
|
| + result.then(function() {resolve(iframe)}, reject);
|
| + });
|
| + }
|
| +
|
| + function onMessage(iframe, callback) {
|
| + var f = function(event) {
|
| + if (event.source === iframe.contentWindow) {
|
| + callback(event.data);
|
| + }
|
| + };
|
| + window.addEventListener('message', f, false);
|
| + return function() {
|
| + window.removeEventListener('message', f);
|
| + }
|
| + }
|
| +
|
| + function getMessageMatching(iframe, predicate) {
|
| + var revoke = function() {};
|
| + var result = new Promise(function(resolve, reject) {
|
| + revoke = onMessage(iframe, function(message) {
|
| + if (predicate(message)) {
|
| + resolve(message);
|
| + }
|
| + });
|
| + });
|
| + result.then(revoke, revoke);
|
| + return result;
|
| + }
|
| +
|
| + function getUrl(iframe) {
|
| + var result = getMessageMatching(iframe, function(message) {
|
| + return message.type === 'urlQueryResponse';
|
| + })
|
| + var revoke = function() {};
|
| + var result = new Promise(function(resolve, reject) {
|
| + revoke = onMessage(iframe, resolve);
|
| + });
|
| + result.then(revoke, revoke);
|
| + iframe.contentWindow.postMessage({type: 'urlQuery'}, '*');
|
| + return result;
|
| + }
|
| +
|
| + function timePasses(ms) {
|
| + return new Promise(function(resolve) {
|
| + window.setTimeout(function() {
|
| + resolve();
|
| + }, ms);
|
| + });
|
| + }
|
| +
|
| + suite('<iron-page-url>\'s initialization', function() {
|
| + var iframe;
|
| + var error;
|
| + setup(function() {
|
| + return getIframe().then(function(i) {
|
| + iframe = i;
|
| + function isError(m) {return m.type === 'error'}
|
| + getMessageMatching(iframe, isError).then(function(m) {
|
| + error = m.error;
|
| + });
|
| + });
|
| + });
|
| + teardown(function() {
|
| + if (iframe) {
|
| + document.body.removeChild(iframe);
|
| + }
|
| + var e = error;
|
| + iframe = null;
|
| + error = null;
|
| + if (e) {
|
| + throw new Error('Error message from contained iframe: ' + e);
|
| + }
|
| + });
|
| + var cases = [
|
| + 'default-before', 'attached-before', 'ready-before',
|
| + 'default-after', 'attached-after', 'ready-after',
|
| + 'default-below', 'attached-below', 'ready-below',
|
| + 'default-above', 'attached-above', 'ready-above',
|
| + 'default-container', 'attached-container', 'ready-container'
|
| + ];
|
| + cases.forEach(function(caseName) {
|
| + test('the url takes priority in ' + caseName + ' initialization', function() {
|
| + return getUrl(iframe).then(function(url) {
|
| + expect(url.search).to.be.eq('');
|
| + iframe.contentWindow.postMessage({type: 'appendBody', tagName: caseName}, '*');
|
| + return timePasses(10).then(function() {return getUrl(iframe)});
|
| + }).then(function(url) {
|
| + expect(url.search).to.be.eq('');
|
| + });
|
| + });
|
| + });
|
| + var expectedFailureCases = ['timeout-before', 'timeout-after', 'timeout-below', 'timeout-above', 'timeout-container'];
|
| + expectedFailureCases.forEach(function(caseName) {
|
| + test('the url does not take priority in ' + caseName + ' initialization', function() {
|
| + return getUrl(iframe).then(function(url) {
|
| + expect(url.search).to.be.eq('');
|
| + iframe.contentWindow.postMessage({type: 'appendBody', tagName: caseName}, '*');
|
| + return timePasses(60).then(function() {return getUrl(iframe)});
|
| + }).then(function(url) {
|
| + expect(url.search).to.be.eq('?on-timeout');
|
| + });
|
| + });
|
| + });
|
| + });
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|