Chromium Code Reviews| Index: chrome/test/data/webui/md_bookmarks/router_test.js |
| diff --git a/chrome/test/data/webui/md_bookmarks/router_test.js b/chrome/test/data/webui/md_bookmarks/router_test.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1a013577d1df95d60de0cac32fc69b8882ec05de |
| --- /dev/null |
| +++ b/chrome/test/data/webui/md_bookmarks/router_test.js |
| @@ -0,0 +1,80 @@ |
| +// Copyright 2017 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +suite('<bookmarks-router>', function() { |
| + var store; |
| + var router; |
| + |
| + function navigateTo(route) { |
| + window.history.replaceState({}, '', route); |
| + window.dispatchEvent(new CustomEvent('location-changed')); |
| + } |
| + |
| + setup(function() { |
| + store = new bookmarks.TestStore({ |
| + selectedId: '1', |
| + search: { |
| + term: '', |
| + }, |
| + }); |
| + bookmarks.Store.instance_ = store; |
| + |
| + router = document.createElement('bookmarks-router'); |
| + replaceBody(router); |
| + }); |
| + |
| + test('search updates from route', function() { |
| + navigateTo('/?q=bleep'); |
| + assertEquals('start-search', store.lastAction.name); |
| + assertEquals('bleep', store.lastAction.term); |
| + }); |
| + |
| + test('selected folder updates from route', function() { |
| + navigateTo('/?id=5'); |
| + assertEquals('select-folder', store.lastAction.name); |
| + assertEquals('5', store.lastAction.id); |
| + }); |
| + |
| + test('route updates from ID', function() { |
| + store.data.selectedFolder = '6'; |
| + store.notifyObservers(); |
| + |
| + return Promise.resolve().then(function() { |
| + assertEquals('chrome://bookmarks/?id=6', window.location.href); |
| + }); |
| + }); |
| + |
| + test('route updates from search', function() { |
| + store.data.search = {term: 'bloop'}; |
| + store.notifyObservers(); |
| + |
| + return Promise.resolve() |
| + .then(function() { |
| + assertEquals('chrome://bookmarks/?q=bloop', window.location.href); |
| + |
| + // Ensure that the route doesn't change when the search finishes: |
|
calamity
2017/03/20 06:34:28
nit: Too many dots.
tsergeant
2017/03/21 00:27:07
..........
:::Done:::
˙˙˙˙˙˙˙˙˙˙
|
| + store.data.selectedFolder = null; |
| + store.notifyObservers(); |
| + }) |
| + .then(function() { |
| + assertEquals('chrome://bookmarks/?q=bloop', window.location.href); |
| + }); |
| + }); |
| +}); |
| + |
| +suite('URL preload', function() { |
| + test('loading a search URL performs a search', function(done) { |
| + function verifySearch(query) { |
| + assertEquals('testQuery', query); |
| + done(); |
| + } |
| + |
| + if (window.searchedQuery) { |
| + verifySearch(window.searchedQuery); |
| + return; |
| + } |
| + |
| + chrome.bookmarks.search = verifySearch; |
| + }); |
| +}); |