| OLD | NEW |
| 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 function replaceStore() { | 9 function replaceStore() { |
| 10 store = document.createElement('bookmarks-store'); | 10 store = document.createElement('bookmarks-store'); |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 ////////////////////////////////////////////////////////////////////////////// | 226 ////////////////////////////////////////////////////////////////////////////// |
| 227 // search tests: | 227 // search tests: |
| 228 | 228 |
| 229 test('displayedList updates after searchTerm changes', function() { | 229 test('displayedList updates after searchTerm changes', function() { |
| 230 var SEARCH_RESULTS = [ | 230 var SEARCH_RESULTS = [ |
| 231 'cat', | 231 'cat', |
| 232 'apple', | 232 'apple', |
| 233 'Paris', | 233 'Paris', |
| 234 ]; | 234 ]; |
| 235 overrideBookmarksSearch(SEARCH_RESULTS); | 235 overrideBookmarksSearch(SEARCH_RESULTS); |
| 236 var prevFolder = store.idToNodeMap_[store.selectedId]; |
| 236 | 237 |
| 237 // Search for a non-empty string. | 238 // Search for a non-empty string. |
| 238 store.searchTerm = 'a'; | 239 store.searchTerm = 'a'; |
| 239 assertFalse(store.rootNode.children[0].isSelected); | 240 assertFalse(prevFolder.isSelected); |
| 240 assertEquals(null, store.selectedId); | 241 assertEquals(prevFolder.id, store.selectedId); |
| 241 assertEquals(SEARCH_RESULTS, store.displayedList); | 242 assertEquals(SEARCH_RESULTS, store.displayedList); |
| 242 | 243 |
| 243 // Clear the searchTerm. | 244 // Clearing search sets the displayed list to the previous folder. |
| 244 store.searchTerm = ''; | 245 store.searchTerm = ''; |
| 245 var defaultFolder = store.rootNode.children[0]; | 246 assertTrue(prevFolder.isSelected); |
| 246 assertTrue(defaultFolder.isSelected); | 247 assertEquals(prevFolder.id, store.selectedId); |
| 247 assertEquals(defaultFolder.id, store.selectedId); | 248 assertEquals(prevFolder.children, store.displayedList); |
| 248 assertEquals(defaultFolder.children, store.displayedList); | |
| 249 | 249 |
| 250 // Search with no bookmarks returned. | 250 // Search with no bookmarks returned. |
| 251 var EMPTY_RESULT = []; | 251 var EMPTY_RESULT = []; |
| 252 overrideBookmarksSearch(EMPTY_RESULT); | 252 overrideBookmarksSearch(EMPTY_RESULT); |
| 253 store.searchTerm = 'asdf'; | 253 store.searchTerm = 'asdf'; |
| 254 assertEquals(EMPTY_RESULT, store.displayedList); | 254 assertEquals(EMPTY_RESULT, store.displayedList); |
| 255 }); | 255 }); |
| 256 | 256 |
| 257 ////////////////////////////////////////////////////////////////////////////// | 257 ////////////////////////////////////////////////////////////////////////////// |
| 258 // router tests: | 258 // router tests: |
| 259 | 259 |
| 260 test('search updates from route', function() { | 260 test('search updates from route', function() { |
| 261 overrideBookmarksSearch([]); | 261 overrideBookmarksSearch([]); |
| 262 |
| 263 // Route with basic search. |
| 262 searchTerm = 'Pond'; | 264 searchTerm = 'Pond'; |
| 263 navigateTo('/?q=' + searchTerm); | 265 navigateTo('/?q=' + searchTerm); |
| 264 assertEquals(searchTerm, store.searchTerm); | 266 assertEquals(searchTerm, store.searchTerm); |
| 267 assertEquals(store.rootNode.children[0].id, store.selectedId); |
| 268 |
| 269 // Route with selected folder and search. |
| 270 var selectedId = '3'; |
| 271 searchTerm = 'Fish'; |
| 272 navigateTo('/?id=' + selectedId + '&q=' + searchTerm); |
| 273 assertEquals(searchTerm, store.searchTerm); |
| 274 assertEquals(selectedId, store.selectedId); |
| 275 |
| 276 // Route with invalid selected folder and search. |
| 277 selectedId = 'bar'; |
| 278 searchTerm = 'foo'; |
| 279 navigateTo('/?q=' + searchTerm + '&id=' + selectedId); |
| 280 assertEquals(searchTerm, store.searchTerm); |
| 281 assertEquals(store.rootNode.children[0].id, store.selectedId); |
| 265 }); | 282 }); |
| 266 | 283 |
| 267 test('search updates from route on setup', function() { | 284 test('search updates from route on setup', function() { |
| 268 overrideBookmarksSearch([]); | 285 overrideBookmarksSearch([]); |
| 269 var searchTerm = 'Boat24'; | 286 var searchTerm = 'Boat24'; |
| 270 navigateTo('/?q=' + searchTerm); | 287 navigateTo('/?q=' + searchTerm); |
| 271 replaceStore(); | 288 replaceStore(); |
| 272 assertEquals(searchTerm, store.searchTerm); | 289 assertEquals(searchTerm, store.searchTerm); |
| 273 }); | 290 }); |
| 274 | 291 |
| 275 test('route updates from search', function() { | 292 test('route updates from search', function() { |
| 276 overrideBookmarksSearch([]); | 293 overrideBookmarksSearch([]); |
| 294 var prevFolderId = '3'; |
| 295 store.fire('selected-folder-changed', prevFolderId); |
| 296 |
| 297 // Searching sets the previous folder and searchTerm as the URL parameters. |
| 277 var searchTerm = 'Boat24'; | 298 var searchTerm = 'Boat24'; |
| 278 store.searchTerm = searchTerm; | 299 store.searchTerm = searchTerm; |
| 279 assertEquals('chrome://bookmarks/?q=' + searchTerm, window.location.href); | 300 assertEquals( |
| 301 'chrome://bookmarks/?id=' + prevFolderId + '&q=' + searchTerm, |
| 302 window.location.href); |
| 303 |
| 304 // Search parameter is removed from the URL when search is cleared. |
| 305 searchTerm = ''; |
| 306 store.searchTerm = searchTerm; |
| 307 assertEquals( |
| 308 'chrome://bookmarks/?id=' + prevFolderId, window.location.href); |
| 280 }); | 309 }); |
| 281 | 310 |
| 282 test('selectedId updates from route', function() { | 311 test('selectedId updates from route', function() { |
| 283 // Folder id routes to the corresponding folder. | 312 // Folder id routes to the corresponding folder. |
| 284 var selectedId = '3'; | 313 var selectedId = '3'; |
| 285 navigateTo('/?id=' + selectedId); | 314 navigateTo('/?id=' + selectedId); |
| 286 assertEquals(selectedId, store.selectedId); | 315 assertEquals(selectedId, store.selectedId); |
| 287 | 316 |
| 288 // Bookmark id routes to the default Bookmarks Bar. | 317 // Bookmark id routes to the default Bookmarks Bar. |
| 289 var selectedId = '2'; | 318 var selectedId = '2'; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 302 replaceStore(); | 331 replaceStore(); |
| 303 assertEquals(selectedId, store.selectedId); | 332 assertEquals(selectedId, store.selectedId); |
| 304 }); | 333 }); |
| 305 | 334 |
| 306 test('route updates from selectedId', function() { | 335 test('route updates from selectedId', function() { |
| 307 var selectedId = '2'; | 336 var selectedId = '2'; |
| 308 store.selectedId = selectedId; | 337 store.selectedId = selectedId; |
| 309 assertEquals('chrome://bookmarks/?id=' + selectedId, window.location.href); | 338 assertEquals('chrome://bookmarks/?id=' + selectedId, window.location.href); |
| 310 }); | 339 }); |
| 311 }); | 340 }); |
| OLD | NEW |