| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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-command-manager>', function() { | 5 suite('<bookmarks-command-manager>', function() { |
| 6 var commandManager; | 6 var commandManager; |
| 7 var store; | 7 var store; |
| 8 var lastCommand; | 8 var lastCommand; |
| 9 var lastCommandIds; | 9 var lastCommandIds; |
| 10 | 10 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 store.notifyObservers(); | 117 store.notifyObservers(); |
| 118 | 118 |
| 119 MockInteractions.pressAndReleaseKeyOn(document.body, keyCode, '', key); | 119 MockInteractions.pressAndReleaseKeyOn(document.body, keyCode, '', key); |
| 120 commandManager.assertLastCommand('edit', ['11']); | 120 commandManager.assertLastCommand('edit', ['11']); |
| 121 }); | 121 }); |
| 122 | 122 |
| 123 test('undo and redo commands trigger', function() { | 123 test('undo and redo commands trigger', function() { |
| 124 var undoModifier = cr.isMac ? 'meta' : 'ctrl'; | 124 var undoModifier = cr.isMac ? 'meta' : 'ctrl'; |
| 125 var undoKey = 'z'; | 125 var undoKey = 'z'; |
| 126 var redoModifier = cr.isMac ? ['meta', 'shift'] : 'ctrl' | 126 var redoModifier = cr.isMac ? ['meta', 'shift'] : 'ctrl' |
| 127 var redoKey = cr.isMac ? 'z' : 'y'; | 127 var redoKey = cr.isMac ? 'Z' : 'y'; |
| 128 | 128 |
| 129 MockInteractions.pressAndReleaseKeyOn( | 129 MockInteractions.pressAndReleaseKeyOn( |
| 130 document.body, '', undoModifier, undoKey); | 130 document.body, '', undoModifier, undoKey); |
| 131 commandManager.assertLastCommand('undo'); | 131 commandManager.assertLastCommand('undo'); |
| 132 | 132 |
| 133 MockInteractions.pressAndReleaseKeyOn( | 133 MockInteractions.pressAndReleaseKeyOn( |
| 134 document.body, '', redoModifier, redoKey); | 134 document.body, '', redoModifier, redoKey); |
| 135 commandManager.assertLastCommand('redo'); | 135 commandManager.assertLastCommand('redo'); |
| 136 }); | 136 }); |
| 137 | 137 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 164 chrome.windows.create = function(createConfig) { | 164 chrome.windows.create = function(createConfig) { |
| 165 lastCreate = createConfig; | 165 lastCreate = createConfig; |
| 166 }; | 166 }; |
| 167 | 167 |
| 168 MockInteractions.pressAndReleaseKeyOn(document.body, 13, 'shift', 'Enter'); | 168 MockInteractions.pressAndReleaseKeyOn(document.body, 13, 'shift', 'Enter'); |
| 169 commandManager.assertLastCommand(Command.OPEN_NEW_WINDOW, ['12', '13']); | 169 commandManager.assertLastCommand(Command.OPEN_NEW_WINDOW, ['12', '13']); |
| 170 assertDeepEquals(['http://121/', 'http://13/'], lastCreate.url); | 170 assertDeepEquals(['http://121/', 'http://13/'], lastCreate.url); |
| 171 assertFalse(lastCreate.incognito); | 171 assertFalse(lastCreate.incognito); |
| 172 }); | 172 }); |
| 173 | 173 |
| 174 test('shift-enter does not trigger enter commands', function() { |
| 175 // Enter by itself performs an edit (Mac) or open (non-Mac). Ensure that |
| 176 // shift-enter doesn't trigger those commands. |
| 177 store.data.selection.items = new Set(['13']); |
| 178 store.notifyObservers(); |
| 179 |
| 180 MockInteractions.pressAndReleaseKeyOn(document.body, 13, 'shift', 'Enter'); |
| 181 commandManager.assertLastCommand(Command.OPEN_NEW_WINDOW); |
| 182 }); |
| 183 |
| 174 test('cannot execute "Open in New Tab" on folders with no items', function() { | 184 test('cannot execute "Open in New Tab" on folders with no items', function() { |
| 175 var items = new Set(['2']); | 185 var items = new Set(['2']); |
| 176 assertFalse(commandManager.canExecute(Command.OPEN_NEW_TAB, items)); | 186 assertFalse(commandManager.canExecute(Command.OPEN_NEW_TAB, items)); |
| 177 | 187 |
| 178 store.data.selection.items = items; | 188 store.data.selection.items = items; |
| 179 | 189 |
| 180 commandManager.openCommandMenuAtPosition(0, 0); | 190 commandManager.openCommandMenuAtPosition(0, 0); |
| 181 var commandItem = {}; | 191 var commandItem = {}; |
| 182 commandManager.root.querySelectorAll('.dropdown-item').forEach(element => { | 192 commandManager.root.querySelectorAll('.dropdown-item').forEach(element => { |
| 183 commandItem[element.getAttribute('command')] = element; | 193 commandItem[element.getAttribute('command')] = element; |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 assertOpenedTabs(['http://111/', 'http://12/']); | 306 assertOpenedTabs(['http://111/', 'http://12/']); |
| 297 }); | 307 }); |
| 298 | 308 |
| 299 test('control-double click opens full selection', function() { | 309 test('control-double click opens full selection', function() { |
| 300 customClick(items[0]); | 310 customClick(items[0]); |
| 301 simulateDoubleClick(items[2], {ctrlKey: true}); | 311 simulateDoubleClick(items[2], {ctrlKey: true}); |
| 302 | 312 |
| 303 assertOpenedTabs(['http://111/', 'http://13/']); | 313 assertOpenedTabs(['http://111/', 'http://13/']); |
| 304 }); | 314 }); |
| 305 }); | 315 }); |
| OLD | NEW |