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

Side by Side Diff: chrome/test/data/webui/md_bookmarks/store_test.js

Issue 2614703003: [MD Bookmarks] Add search. (Closed)
Patch Set: Refactor search logic into store and add search tests. Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 suite('<bookmarks-store>', function() { 5 suite('<bookmarks-store>', function() {
6 var store; 6 var store;
7 var TEST_TREE; 7 var TEST_TREE;
8 8
9 setup(function() { 9 setup(function() {
10 TEST_TREE = createFolder('0', [ 10 TEST_TREE = createFolder('0', [
(...skipping 14 matching lines...) Expand all
25 25
26 test('initNodes inserts nodes into idToNodeMap', function(){ 26 test('initNodes inserts nodes into idToNodeMap', function(){
27 assertEquals(TEST_TREE, store.idToNodeMap_['0']); 27 assertEquals(TEST_TREE, store.idToNodeMap_['0']);
28 assertEquals(TEST_TREE.children[0], store.idToNodeMap_['1']); 28 assertEquals(TEST_TREE.children[0], store.idToNodeMap_['1']);
29 assertEquals(TEST_TREE.children[0].children[0], store.idToNodeMap_['2']); 29 assertEquals(TEST_TREE.children[0].children[0], store.idToNodeMap_['2']);
30 assertEquals(TEST_TREE.children[0].children[1], store.idToNodeMap_['3']); 30 assertEquals(TEST_TREE.children[0].children[1], store.idToNodeMap_['3']);
31 assertEquals(TEST_TREE.children[1], store.idToNodeMap_['4']); 31 assertEquals(TEST_TREE.children[1], store.idToNodeMap_['4']);
32 assertEquals(TEST_TREE.children[2], store.idToNodeMap_['5']); 32 assertEquals(TEST_TREE.children[2], store.idToNodeMap_['5']);
33 }); 33 });
34 34
35 test('changing selectedId changes the selectedNode', function(){ 35 test('changing selectedId changes the displayedList', function(){
36 store.selectedId = '0'; 36 store.selectedId = '0';
37 assertEquals(TEST_TREE, store.selectedNode); 37 assertEquals(TEST_TREE.children, store.displayedList);
38 store.selectedId = '1'; 38 store.selectedId = '1';
39 assertEquals(TEST_TREE.children[0], store.selectedNode); 39 assertEquals(TEST_TREE.children[0].children, store.displayedList);
40 store.selectedId = '2'; 40 store.selectedId = '2';
41 assertEquals(TEST_TREE.children[0].children[0], store.selectedNode); 41 assertEquals(
42 TEST_TREE.children[0].children[0].children, store.displayedList);
42 store.selectedId = '3'; 43 store.selectedId = '3';
43 assertEquals(TEST_TREE.children[0].children[1], store.selectedNode); 44 assertEquals(
45 TEST_TREE.children[0].children[1].children, store.displayedList);
44 store.selectedId = '4'; 46 store.selectedId = '4';
45 assertEquals(TEST_TREE.children[1], store.selectedNode); 47 assertEquals(TEST_TREE.children[1].children, store.displayedList);
46 store.selectedId = '5'; 48 store.selectedId = '5';
47 assertEquals(TEST_TREE.children[2], store.selectedNode); 49 assertEquals(TEST_TREE.children[2].children, store.displayedList);
48 }); 50 });
49 51
50 test('correct paths generated for nodes', function() { 52 test('correct paths generated for nodes', function() {
51 var TEST_PATHS = { 53 var TEST_PATHS = {
52 '0': 'rootNode', 54 '0': 'rootNode',
53 '1': 'rootNode.children.#0', 55 '1': 'rootNode.children.#0',
54 '2': 'rootNode.children.#0.children.#0', 56 '2': 'rootNode.children.#0.children.#0',
55 '3': 'rootNode.children.#0.children.#1', 57 '3': 'rootNode.children.#0.children.#1',
56 '4': 'rootNode.children.#1', 58 '4': 'rootNode.children.#1',
57 '5': 'rootNode.children.#2', 59 '5': 'rootNode.children.#2',
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 store.onBookmarkRemoved_('2', {parentId:'1', index:'0'}); 162 store.onBookmarkRemoved_('2', {parentId:'1', index:'0'});
161 assertTrue(store.idToNodeMap_['1'].isSelected); 163 assertTrue(store.idToNodeMap_['1'].isSelected);
162 assertEquals('1', store.selectedId); 164 assertEquals('1', store.selectedId);
163 165
164 // A folder with selected folder in it gets removed. 166 // A folder with selected folder in it gets removed.
165 store.selectedId = '3'; 167 store.selectedId = '3';
166 store.onBookmarkRemoved_('1', {parentId:'0', index:'0'}); 168 store.onBookmarkRemoved_('1', {parentId:'0', index:'0'});
167 assertTrue(store.idToNodeMap_['0'].isSelected); 169 assertTrue(store.idToNodeMap_['0'].isSelected);
168 assertEquals('0', store.selectedId); 170 assertEquals('0', store.selectedId);
169 }); 171 });
172
173 test('displayedList updates after searchTerm changes', function() {
174 var SEARCH_RESULTS = [
175 'cat',
176 'apple',
177 'Paris',
178 ];
179
180 chrome.bookmarks.search = function(searchTerm, callback) {
181 callback(SEARCH_RESULTS);
182 };
183
184 // Search for a non-empty string.
185 store.searchTerm = 'a';
186 assertFalse(store.rootNode.children[0].isSelected);
187 assertEquals(null, store.selectedId);
188 assertEquals(SEARCH_RESULTS, store.displayedList);
189
190 // Clear the searchTerm.
191 store.searchTerm = '';
192 var defaultFolder = store.rootNode.children[0];
193 assertTrue(defaultFolder.isSelected);
194 assertEquals(defaultFolder.id, store.selectedId);
195 assertEquals(defaultFolder.children, store.displayedList);
196
197 // Search with no bookmarks returned.
198 var EMPTY_RESULT = [];
199 chrome.bookmarks.search = function(searchTerm, callback) {
200 callback(EMPTY_RESULT);
201 };
202 store.searchTerm = 'asdf';
203 assertEquals(EMPTY_RESULT, store.displayedList);
204 });
205
206
170 }); 207 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698