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

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

Issue 2820153003: [MD Bookmarks] Add keyboard navigation to sidebar. (Closed)
Patch Set: address comments Created 3 years, 7 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-folder-node>', function() { 5 suite('<bookmarks-folder-node>', function() {
6 var rootNode; 6 var rootNode;
7 var store; 7 var store;
8 8
9 function getFolderNode(id) {
10 return findFolderNode(rootNode, id);
11 }
12
9 setup(function() { 13 setup(function() {
10 store = new bookmarks.TestStore({ 14 store = new bookmarks.TestStore({
11 nodes: testTree( 15 nodes: testTree(
12 createFolder( 16 createFolder(
13 '1', 17 '1',
14 [ 18 [
15 createFolder( 19 createFolder(
16 '2', 20 '2',
17 [ 21 [
18 createFolder('3', []), 22 createFolder('3', []),
19 createFolder('4', []), 23 createFolder('4', []),
20 ]), 24 ]),
21 createItem('5'), 25 createItem('5'),
22 ]), 26 ]),
23 createFolder('7', [])), 27 createFolder('7', [])),
28 selectedFolder: '1',
24 }); 29 });
25 bookmarks.Store.instance_ = store; 30 bookmarks.Store.instance_ = store;
26 31
27 rootNode = document.createElement('bookmarks-folder-node'); 32 rootNode = document.createElement('bookmarks-folder-node');
28 rootNode.itemId = '0'; 33 rootNode.itemId = '0';
29 rootNode.depth = -1; 34 rootNode.depth = -1;
30 replaceBody(rootNode); 35 replaceBody(rootNode);
31 Polymer.dom.flush(); 36 Polymer.dom.flush();
32 }); 37 });
33 38
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 }); 73 });
69 Array.prototype.forEach.call(secondGen, function(f) { 74 Array.prototype.forEach.call(secondGen, function(f) {
70 assertEquals(2, f.depth); 75 assertEquals(2, f.depth);
71 assertEquals('2', f.style.getPropertyValue('--node-depth')); 76 assertEquals('2', f.style.getPropertyValue('--node-depth'));
72 }); 77 });
73 }); 78 });
74 79
75 test('doesn\'t highlight selected folder while searching', function() { 80 test('doesn\'t highlight selected folder while searching', function() {
76 var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node'); 81 var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node');
77 82
78 store.data.selectedFolder = '1';
79 store.notifyObservers();
80
81 assertEquals('1', rootFolders['0'].itemId); 83 assertEquals('1', rootFolders['0'].itemId);
82 assertTrue(rootFolders['0'].isSelectedFolder_); 84 assertTrue(rootFolders['0'].isSelectedFolder_);
83 85
84 store.data.search = { 86 store.data.search = {
85 term: 'test', 87 term: 'test',
86 inProgress: false, 88 inProgress: false,
87 results: ['3'], 89 results: ['3'],
88 }; 90 };
89 store.notifyObservers(); 91 store.notifyObservers();
90 92
91 assertFalse(rootFolders['0'].isSelectedFolder_); 93 assertFalse(rootFolders['0'].isSelectedFolder_);
92 }); 94 });
95
96 test('last visible descendant', function() {
97 assertEquals('7', rootNode.getLastVisibleDescendant_().itemId);
98 assertEquals('4', getFolderNode('1').getLastVisibleDescendant_().itemId);
99
100 store.data.closedFolders = new Set('2');
101 store.notifyObservers();
102
103 assertEquals('2', getFolderNode('1').getLastVisibleDescendant_().itemId);
104 });
105
106 test('get node parent', function() {
107 assertEquals(getFolderNode('0'), getFolderNode('1').getParentFolderNode_());
108 assertEquals(getFolderNode('2'), getFolderNode('4').getParentFolderNode_());
109 assertEquals(null, getFolderNode('0').getParentFolderNode_());
110 });
111
112 test('next/previous folder nodes', function() {
113 function getNextChild(parentId, targetId, reverse) {
114 return getFolderNode(parentId).getNextChild_(
115 reverse, getFolderNode(targetId));
116 }
117
118 // Forwards.
119 assertEquals('4', getNextChild('2', '3', false).itemId);
120 assertEquals(null, getNextChild('2', '4', false));
121
122 // Backwards.
123 assertEquals(null, getNextChild('1', '2', true));
124 assertEquals('3', getNextChild('2', '4', true).itemId);
125 assertEquals('4', getNextChild('0', '7', true).itemId);
126
127 // Skips closed folders.
128 store.data.closedFolders = new Set('2');
129 store.notifyObservers();
130
131 assertEquals(null, getNextChild('1', '2', false));
132 assertEquals('2', getNextChild('0', '7', true).itemId);
133 });
93 }); 134 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698