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

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

Issue 2613683002: [MD Bookmarks] Add Delete and Copy URL for Material Bookmarks. (Closed)
Patch Set: 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 id: '0', 8
9 children: [ 9 setup(function() {
10 TEST_TREE = {
11 id: '0',
12 children: [
10 { 13 {
11 id: '1', 14 id: '1',
12 children: [ 15 children: [
13 {id: '2', url: 'link2'}, 16 {id: '2', url: 'link2'},
14 {id: '3', children: []} 17 {id: '3', children: []}
15 ] 18 ]
16 }, 19 },
17 {id: '4', url: 'link4'}, 20 {id: '4', url: 'link4'},
18 {id: '5', url: 'link5'} 21 {id: '5', url: 'link5'}
19 ] 22 ]
20 }; 23 };
21 24
22 setup(function() {
23 store = document.createElement('bookmarks-store'); 25 store = document.createElement('bookmarks-store');
24 store.isTesting_ = true;
25 replaceBody(store); 26 replaceBody(store);
26 store.setupStore_(TEST_TREE); 27 store.setupStore_(TEST_TREE);
27 }); 28 });
28 29
29 test('initNodes inserts nodes into idToNodeMap', function(){ 30 test('initNodes inserts nodes into idToNodeMap', function(){
30 assertEquals(TEST_TREE, store.idToNodeMap_['0']); 31 assertEquals(TEST_TREE, store.idToNodeMap_['0']);
31 assertEquals(TEST_TREE.children[0], store.idToNodeMap_['1']); 32 assertEquals(TEST_TREE.children[0], store.idToNodeMap_['1']);
32 assertEquals(TEST_TREE.children[0].children[0], store.idToNodeMap_['2']); 33 assertEquals(TEST_TREE.children[0].children[0], store.idToNodeMap_['2']);
33 assertEquals(TEST_TREE.children[0].children[1], store.idToNodeMap_['3']); 34 assertEquals(TEST_TREE.children[0].children[1], store.idToNodeMap_['3']);
34 assertEquals(TEST_TREE.children[1], store.idToNodeMap_['4']); 35 assertEquals(TEST_TREE.children[1], store.idToNodeMap_['4']);
(...skipping 11 matching lines...) Expand all
46 assertEquals(TEST_TREE.children[0].children[1], store.selectedNode); 47 assertEquals(TEST_TREE.children[0].children[1], store.selectedNode);
47 store.selectedId = '4'; 48 store.selectedId = '4';
48 assertEquals(TEST_TREE.children[1], store.selectedNode); 49 assertEquals(TEST_TREE.children[1], store.selectedNode);
49 store.selectedId = '5'; 50 store.selectedId = '5';
50 assertEquals(TEST_TREE.children[2], store.selectedNode); 51 assertEquals(TEST_TREE.children[2], store.selectedNode);
51 }); 52 });
52 53
53 test('correct paths generated for nodes', function() { 54 test('correct paths generated for nodes', function() {
54 var TEST_PATHS = { 55 var TEST_PATHS = {
55 '0': 'rootNode', 56 '0': 'rootNode',
56 '1': 'rootNode.children.0', 57 '1': 'rootNode.children.#0',
57 '2': 'rootNode.children.0.children.0', 58 '2': 'rootNode.children.#0.children.#0',
58 '3': 'rootNode.children.0.children.1', 59 '3': 'rootNode.children.#0.children.#1',
59 '4': 'rootNode.children.1', 60 '4': 'rootNode.children.#1',
60 '5': 'rootNode.children.2', 61 '5': 'rootNode.children.#2',
61 }; 62 };
62 63
63 for (var id in store.idToNodeMap_) 64 for (var id in store.idToNodeMap_)
64 assertEquals(TEST_PATHS[id], store.idToNodeMap_[id].path); 65 assertEquals(TEST_PATHS[id], store.idToNodeMap_[id].path);
65 }); 66 });
66 67
67 test('store updates on selected event', function() { 68 test('store updates on selected event', function() {
68 // First child of root is selected by default. 69 // First child of root is selected by default.
69 assertEquals('1', store.selectedId); 70 assertEquals('1', store.selectedId);
70 assertTrue(store.idToNodeMap_['1'].isSelected); 71 assertTrue(store.idToNodeMap_['1'].isSelected);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 store.fire('folder-open-changed', {id: '1', open: true}); 104 store.fire('folder-open-changed', {id: '1', open: true});
104 105
105 // Closing an ancestor folder of a selected folder selects the ancestor. 106 // Closing an ancestor folder of a selected folder selects the ancestor.
106 store.fire('selected-folder-changed', '3'); 107 store.fire('selected-folder-changed', '3');
107 store.fire('folder-open-changed', {id: '1', open: false}); 108 store.fire('folder-open-changed', {id: '1', open: false});
108 assertFalse(store.idToNodeMap_['1'].isOpen); 109 assertFalse(store.idToNodeMap_['1'].isOpen);
109 assertEquals('1', store.selectedId); 110 assertEquals('1', store.selectedId);
110 assertTrue(store.idToNodeMap_['1'].isSelected); 111 assertTrue(store.idToNodeMap_['1'].isSelected);
111 assertFalse(store.idToNodeMap_['3'].isSelected); 112 assertFalse(store.idToNodeMap_['3'].isSelected);
112 }); 113 });
114
115 test('deleting a node updates the tree', function() {
116 // Remove an empty folder/bookmark.
117 store.onBookmarkRemoved_('4', {parentId: '0', index: '1'});
118
119 // Check the tree is correct.
120 assertEquals('5', store.rootNode.children[1].id);
121
122 // idToNodeMap_ has been updated.
123 assertEquals(undefined, store.idToNodeMap_['4']);
124 assertEquals(store.rootNode.children[1], store.idToNodeMap_['5']);
125
126 // paths have been updated.
calamity 2017/01/04 06:57:44 Capitalization.
jiaxi 2017/01/04 22:44:01 Done.
127 var TEST_PATHS = {
128 '0': 'rootNode',
129 '1': 'rootNode.children.#0',
130 '2': 'rootNode.children.#0.children.#0',
131 '3': 'rootNode.children.#0.children.#1',
132 '5': 'rootNode.children.#1',
133 };
134
135 for (var id in store.idToNodeMap_)
136 assertEquals(TEST_PATHS[id], store.idToNodeMap_[id].path);
137
138 // Remove a folder with children.
139 store.onBookmarkRemoved_('1', {parentId: '0', index: '0'});
140
141 // Check the tree is correct.
142 assertEquals('5', store.rootNode.children[0].id);
143
144 // idToNodeMap_ has been updated.
145 assertEquals(undefined, store.idToNodeMap_['1']);
146 assertEquals(undefined, store.idToNodeMap_['2']);
147 assertEquals(undefined, store.idToNodeMap_['3']);
148 assertEquals(undefined, store.idToNodeMap_['4']);
149 assertEquals(store.rootNode.children[0], store.idToNodeMap_['5']);
150
151 // paths have been updated.
calamity 2017/01/04 06:57:44 Capitalization.
jiaxi 2017/01/04 22:44:01 Done.
152 TEST_PATHS = {
153 '0': 'rootNode',
154 '5': 'rootNode.children.#0',
155 };
156
157 for (var id in store.idToNodeMap_)
158 assertEquals(TEST_PATHS[id], store.idToNodeMap_[id].path);
159 });
160
161 test('selectedId updates after removing a selected folder', function() {
162 // Selected folder gets removed.
163 store.selectedId = '2';
164 store.onBookmarkRemoved_('2', {parentId:'1', index:'0'});
165 assertTrue(store.idToNodeMap_['1'].isSelected);
166 assertEquals('1', store.selectedId);
167
168 // A folder with selected folder in it gets removed.
169 store.selectedId = '3';
170 store.onBookmarkRemoved_('1', {parentId:'0', index:'0'});
171 assertTrue(store.idToNodeMap_['0'].isSelected);
172 assertEquals('0', store.selectedId);
173 });
113 }); 174 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698