Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1083)

Unified Diff: polymer_1.2.3/bower_components/iron-page-url/test/iron-page-url.html

Issue 1581713003: [third_party] add polymer 1.2.3 (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: 1.2.3 Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698