| 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..68eabe1c8799b1a0d2fa061c6cc9cbd286771396 | 
| --- /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. | 
| +          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; | 
| +  }); | 
| +}); | 
|  |