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-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) { | 9 function getFolderNode(id) { |
10 return findFolderNode(rootNode, id); | 10 return findFolderNode(rootNode, id); |
(...skipping 26 matching lines...) Expand all Loading... |
37 }); | 37 }); |
38 | 38 |
39 test('selecting and deselecting folders dispatches action', function() { | 39 test('selecting and deselecting folders dispatches action', function() { |
40 var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node'); | 40 var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node'); |
41 var firstGen = rootFolders[0].$['descendants'].querySelectorAll( | 41 var firstGen = rootFolders[0].$['descendants'].querySelectorAll( |
42 'bookmarks-folder-node'); | 42 'bookmarks-folder-node'); |
43 var secondGen = | 43 var secondGen = |
44 firstGen[0].$['descendants'].querySelectorAll('bookmarks-folder-node'); | 44 firstGen[0].$['descendants'].querySelectorAll('bookmarks-folder-node'); |
45 | 45 |
46 // Select nested folder. | 46 // Select nested folder. |
47 firedId = ''; | |
48 MockInteractions.tap(secondGen[0].$['folder-label']); | 47 MockInteractions.tap(secondGen[0].$['folder-label']); |
49 assertEquals('select-folder', store.lastAction.name); | 48 assertEquals('select-folder', store.lastAction.name); |
50 assertEquals(secondGen[0].itemId, store.lastAction.id); | 49 assertEquals(secondGen[0].itemId, store.lastAction.id); |
51 | 50 |
52 // Select folder in a separate subtree. | 51 // Select folder in a separate subtree. |
53 firedId = ''; | |
54 MockInteractions.tap(rootFolders[1].$['folder-label']); | 52 MockInteractions.tap(rootFolders[1].$['folder-label']); |
55 assertEquals('select-folder', store.lastAction.name); | 53 assertEquals('select-folder', store.lastAction.name); |
56 assertEquals(rootFolders[1].itemId, store.lastAction.id); | 54 assertEquals(rootFolders[1].itemId, store.lastAction.id); |
| 55 |
| 56 // Doesn't re-select if the folder is already selected. |
| 57 store.data.selectedFolder = '7'; |
| 58 store.notifyObservers(); |
| 59 store.resetLastAction(); |
| 60 |
| 61 MockInteractions.tap(rootFolders[1].$['folder-label']); |
| 62 assertEquals(null, store.lastAction); |
57 }); | 63 }); |
58 | 64 |
59 test('depth calculation', function() { | 65 test('depth calculation', function() { |
60 var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node'); | 66 var rootFolders = rootNode.root.querySelectorAll('bookmarks-folder-node'); |
61 var firstGen = rootFolders[0].$['descendants'].querySelectorAll( | 67 var firstGen = rootFolders[0].$['descendants'].querySelectorAll( |
62 'bookmarks-folder-node'); | 68 'bookmarks-folder-node'); |
63 var secondGen = | 69 var secondGen = |
64 firstGen[0].$['descendants'].querySelectorAll('bookmarks-folder-node'); | 70 firstGen[0].$['descendants'].querySelectorAll('bookmarks-folder-node'); |
65 | 71 |
66 Array.prototype.forEach.call(rootFolders, function(f) { | 72 Array.prototype.forEach.call(rootFolders, function(f) { |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 assertEquals('3', getNextChild('2', '4', true).itemId); | 130 assertEquals('3', getNextChild('2', '4', true).itemId); |
125 assertEquals('4', getNextChild('0', '7', true).itemId); | 131 assertEquals('4', getNextChild('0', '7', true).itemId); |
126 | 132 |
127 // Skips closed folders. | 133 // Skips closed folders. |
128 store.data.closedFolders = new Set('2'); | 134 store.data.closedFolders = new Set('2'); |
129 store.notifyObservers(); | 135 store.notifyObservers(); |
130 | 136 |
131 assertEquals(null, getNextChild('1', '2', false)); | 137 assertEquals(null, getNextChild('1', '2', false)); |
132 assertEquals('2', getNextChild('0', '7', true).itemId); | 138 assertEquals('2', getNextChild('0', '7', true).itemId); |
133 }); | 139 }); |
| 140 |
| 141 test('right click opens context menu', function() { |
| 142 var commandManager = new TestCommandManager(); |
| 143 document.body.appendChild(commandManager); |
| 144 |
| 145 var node = getFolderNode('2'); |
| 146 node.$.container.dispatchEvent(new MouseEvent('contextmenu')); |
| 147 |
| 148 assertDeepEquals(bookmarks.actions.selectFolder('2'), store.lastAction); |
| 149 commandManager.assertMenuOpenForIds(['2']); |
| 150 }); |
134 }); | 151 }); |
OLD | NEW |