| Index: chrome/test/data/webui/md_bookmarks/command_manager_test.js
|
| diff --git a/chrome/test/data/webui/md_bookmarks/command_manager_test.js b/chrome/test/data/webui/md_bookmarks/command_manager_test.js
|
| index 14b6d28203d7f0f0c18cf5733f94c425882cb120..d103eafa7ca76082ba8f01812bf5b21491f676fe 100644
|
| --- a/chrome/test/data/webui/md_bookmarks/command_manager_test.js
|
| +++ b/chrome/test/data/webui/md_bookmarks/command_manager_test.js
|
| @@ -186,3 +186,80 @@ suite('<bookmarks-command-manager>', function() {
|
| assertFalse(commandItem[Command.OPEN_INCOGNITO].hidden);
|
| });
|
| });
|
| +
|
| +suite('<bookmarks-item> CommandManager integration', function() {
|
| + var list;
|
| + var items;
|
| + var commandManager;
|
| + var openedTabs;
|
| +
|
| + setup(function() {
|
| + store = new bookmarks.TestStore({
|
| + nodes: testTree(createFolder(
|
| + '1',
|
| + [
|
| + createFolder(
|
| + '11',
|
| + [
|
| + createItem('111', {url: 'http://111/'}),
|
| + ]),
|
| + createItem('12', {url: 'http://12/'}),
|
| + createItem('13', {url: 'http://13/'}),
|
| + ])),
|
| + selectedFolder: '1',
|
| + });
|
| + store.setReducersEnabled(true);
|
| + bookmarks.Store.instance_ = store;
|
| +
|
| + commandManager = document.createElement('bookmarks-command-manager');
|
| +
|
| + list = document.createElement('bookmarks-list');
|
| + replaceBody(list);
|
| + document.body.appendChild(commandManager);
|
| + Polymer.dom.flush();
|
| +
|
| + items = list.root.querySelectorAll('bookmarks-item');
|
| +
|
| + openedTabs = [];
|
| + chrome.tabs.create = function(createConfig) {
|
| + openedTabs.push(createConfig);
|
| + }
|
| + });
|
| +
|
| + function assertOpenedTabs(tabs) {
|
| + assertDeepEquals(tabs, openedTabs.map(createConfig => createConfig.url));
|
| + }
|
| +
|
| + function simulateDoubleClick(element, config) {
|
| + config = config || {};
|
| + customClick(element, config);
|
| + config.detail = 2;
|
| + customClick(element, config);
|
| + }
|
| +
|
| + test('double click opens folders in bookmark manager', function() {
|
| + simulateDoubleClick(items[0]);
|
| + assertEquals(store.data.selectedFolder, '11');
|
| + });
|
| +
|
| + test('double click opens items in foreground tab', function() {
|
| + simulateDoubleClick(items[1]);
|
| + assertOpenedTabs(['http://12/']);
|
| + });
|
| +
|
| + test('shift-double click opens full selection', function() {
|
| + // Shift-double click works because the first click event selects the range
|
| + // of items, then the second doubleclick event opens that whole selection.
|
| + customClick(items[0]);
|
| + simulateDoubleClick(items[1], {shiftKey: true});
|
| +
|
| + assertOpenedTabs(['http://111/', 'http://12/']);
|
| + });
|
| +
|
| + test('control-double click opens full selection', function() {
|
| + customClick(items[0]);
|
| + simulateDoubleClick(items[2], {ctrlKey: true});
|
| +
|
| + assertOpenedTabs(['http://111/', 'http://13/']);
|
| + });
|
| +});
|
|
|