Index: polymer_1.2.3/bower_components/iron-page-url/test/iron-page-url.html |
diff --git a/polymer_1.2.3/bower_components/iron-page-url/test/iron-page-url.html b/polymer_1.2.3/bower_components/iron-page-url/test/iron-page-url.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4c8ce514d9079fb096a31789441012f81e708f4a |
--- /dev/null |
+++ b/polymer_1.2.3/bower_components/iron-page-url/test/iron-page-url.html |
@@ -0,0 +1,124 @@ |
+<!doctype html> |
+<!-- |
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved. |
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt |
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt |
+Code distributed by Google as part of the polymer project is also |
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt |
+--> |
+<html> |
+<head> |
+ <title>iron-page-url</title> |
+ |
+ <script src="../../webcomponentsjs/webcomponents.js"></script> |
+ <script src="../../web-component-tester/browser.js"></script> |
+ |
+ <link rel="import" href="../../polymer/polymer.html"> |
+ <link rel="import" href="../../promise-polyfill/promise-polyfill.html"> |
+ <link rel="import" href="../iron-page-url.html"> |
+</head> |
+<body> |
+ |
+<script> |
+ 'use strict'; |
+ |
+ function timePasses(ms) { |
+ return new Promise(function(resolve) { |
+ window.setTimeout(function() { |
+ resolve(); |
+ }, ms); |
+ }); |
+ } |
+ |
+ function tryUntilTrue(f) { |
+ return new Promise(function(resolve) { |
+ if (f()) { |
+ resolve(); |
+ } |
+ var interval = setInterval(function() { |
+ if (f()) { |
+ clearInterval(interval); |
+ resolve(); |
+ } |
+ }, 1); |
+ }); |
+ } |
+ |
+ var originalFlush = flush; |
+ flush = function() { |
+ return new Promise(function(resolve) { |
+ originalFlush(resolve); |
+ }); |
+ } |
+ |
+ suite('<iron-page-url>', function () { |
+ var initialUrl; |
+ setup(function() { |
+ initialUrl = window.location.href; |
+ }); |
+ teardown(function(){ |
+ window.history.replaceState({}, '', initialUrl); |
+ }); |
+ |
+ suite('when used solo', function() { |
+ var urlElem; |
+ setup(function() { |
+ urlElem = document.createElement('iron-page-url'); |
+ urlElem.attached(); |
+ }); |
+ teardown(function() { |
+ urlElem.detached(); |
+ }); |
+ test('basic functionality with #hash urls', function() { |
+ // Initialized to the window location's hash. |
+ expect(window.location.hash).to.be.equal(urlElem.hash); |
+ |
+ // Changing the urlElem's hash changes the URL |
+ urlElem.hash = '/lol/ok'; |
+ expect(window.location.hash).to.be.equal('#/lol/ok'); |
+ |
+ // Changing the hash via normal means changes the urlElem. |
+ var anchor = document.createElement('a'); |
+ anchor.href = '#/wat'; |
+ document.body.appendChild(anchor); |
+ anchor.click(); |
+ // In IE10 it appears that the hashchange event is asynchronous. |
+ return timePasses(10).then(function() { |
+ expect(urlElem.hash).to.be.equal('/wat'); |
+ }); |
+ }); |
+ test('basic functionality with paths', function() { |
+ // Initialized to the window location's path. |
+ expect(window.location.pathname).to.be.equal(urlElem.path); |
+ |
+ // Changing the urlElem's path changes the URL |
+ urlElem.path = '/foo/bar'; |
+ expect(window.location.pathname).to.be.equal('/foo/bar'); |
+ |
+ // Changing the path and sending a custom event on the window changes |
+ // the urlElem. |
+ window.history.replaceState({}, '', '/baz') |
+ window.dispatchEvent(new CustomEvent('location-changed')); |
+ expect(urlElem.path).to.be.equal('/baz'); |
+ }); |
+ test('basic functionality with ?key=value params', function() { |
+ // Initialized to the window location's params. |
+ expect(urlElem.query).to.be.eq(''); |
+ |
+ // Changing location.search and sending a custom event on the window |
+ // changes the urlElem. |
+ window.history.replaceState({}, '', '/?greeting=hello&target=world'); |
+ window.dispatchEvent(new CustomEvent('location-changed')); |
+ expect(urlElem.query).to.be.equal('greeting=hello&target=world'); |
+ |
+ // Changing the urlElem's query changes the URL. |
+ urlElem.query = 'greeting=hello&target=world&another=key'; |
+ expect(window.location.search).to.be.equal( |
+ '?greeting=hello&target=world&another=key'); |
+ }); |
+ }); |
+ }); |
+ |
+</script> |
+</body> |