Chromium Code Reviews| 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 1d12f83753741fc447e3f6d27a9b3b82f8465155..99112b0e0f4103723e5c4a2bdfda87f29663bdc3 100644 |
| --- a/chrome/test/data/webui/md_bookmarks/command_manager_test.js |
| +++ b/chrome/test/data/webui/md_bookmarks/command_manager_test.js |
| @@ -7,14 +7,23 @@ suite('<bookmarks-command-manager>', function() { |
| var store; |
| var lastCommand; |
| var lastCommandIds; |
| + var bmpCopyFunction; |
| + var bmpPasteFunction; |
| suiteSetup(function() { |
| // Overwrite bookmarkManagerPrivate APIs which will crash if called with |
| // fake data. |
| + bmpCopyFunction = chrome.bookmarkManagerPrivate.copy; |
| + bmpPasteFunction = chrome.bookmarkManagerPrivate.paste; |
| chrome.bookmarkManagerPrivate.copy = function() {}; |
| chrome.bookmarkManagerPrivate.removeTrees = function() {}; |
| }); |
| + suiteTeardown(function() { |
| + chrome.bookmarkManagerPrivate.copy = bmpCopyFunction; |
| + chrome.bookmarkManagerPrivate.paste = bmpPasteFunction; |
| + }); |
| + |
| setup(function() { |
| var bulkChildren = []; |
| for (var i = 1; i <= 20; i++) { |
| @@ -138,11 +147,10 @@ suite('<bookmarks-command-manager>', function() { |
| lastPaste = selectedFolder; |
| }; |
| - var modifier = cr.isMac ? 'meta' : 'ctrl'; |
| - |
| store.data.selection.items = new Set(['11', '13']); |
| store.notifyObservers(); |
| + var modifier = cr.isMac ? 'meta' : 'ctrl'; |
| MockInteractions.pressAndReleaseKeyOn(document.body, '', modifier, 'x'); |
| assertDeepEquals(['11', '13'], lastCut); |
| MockInteractions.pressAndReleaseKeyOn(document.body, '', modifier, 'v'); |
| @@ -164,7 +172,7 @@ suite('<bookmarks-command-manager>', function() { |
| commandManager.assertLastCommand('redo'); |
| }); |
| - test.only('Show In Folder is only available during search', function() { |
| + test('Show In Folder is only available during search', function() { |
|
tsergeant
2017/07/18 01:08:55
oops
|
| store.data.selection.items = new Set(['12']); |
| store.notifyObservers(); |
| @@ -431,3 +439,79 @@ suite('<bookmarks-item> CommandManager integration', function() { |
| assertEquals('11', store.data.selectedFolder); |
| }); |
| }); |
| + |
| +suite('<bookmarks-command-manager> whole page integration', function() { |
| + var app; |
| + var store; |
| + var commandManager; |
| + |
| + var testFolderId; |
| + |
| + function create(bookmark) { |
| + return new Promise(function(resolve) { |
| + chrome.bookmarks.create(bookmark, resolve); |
| + }); |
| + } |
| + |
| + suiteSetup(function() { |
| + var testFolder = { |
| + parentId: '1', |
| + title: 'Test', |
| + }; |
| + return create(testFolder).then(function(testFolderNode) { |
| + testFolderId = testFolderNode.id; |
| + var testItem = { |
| + parentId: testFolderId, |
| + title: 'Test bookmark', |
| + url: 'https://www.example.com/', |
| + }; |
| + return Promise.all([ |
| + create(testItem), |
| + create(testItem), |
| + ]); |
| + }); |
| + }); |
| + |
| + setup(function() { |
| + store = new bookmarks.TestStore({}); |
| + store.replaceSingleton(); |
| + store.setReducersEnabled(true); |
| + var promise = store.acceptInitOnce(); |
| + var app = document.createElement('bookmarks-app'); |
| + replaceBody(app); |
| + |
| + commandManager = bookmarks.CommandManager.getInstance(); |
| + |
| + return promise.then(() => { |
| + store.dispatch(bookmarks.actions.selectFolder(testFolderId)); |
| + }); |
| + }); |
| + |
| + test('paste selects newly created items', function() { |
| + var displayedIdsBefore = bookmarks.util.getDisplayedList(store.data); |
| + commandManager.handle(Command.SELECT_ALL, new Set()); |
| + commandManager.handle(Command.COPY, new Set(displayedIdsBefore)); |
| + |
| + store.expectAction('select-items'); |
| + commandManager.handle(Command.PASTE, new Set()); |
| + |
| + return store.waitForAction('select-items').then(function(action) { |
| + var displayedIdsAfter = bookmarks.util.getDisplayedList(store.data); |
| + assertEquals(4, displayedIdsAfter.length); |
| + |
| + // The start of the list shouldn't change. |
| + assertEquals(displayedIdsBefore[0], displayedIdsAfter[0]); |
| + assertEquals(displayedIdsBefore[1], displayedIdsAfter[1]); |
| + |
| + // The two pasted items should be selected at the end of the list. |
| + assertEquals(action.items[0], displayedIdsAfter[2]); |
| + assertEquals(action.items[1], displayedIdsAfter[3]); |
| + assertEquals(2, action.items.length); |
| + assertEquals(action.anchor, displayedIdsAfter[2]); |
| + }); |
| + }); |
| + |
| + suiteTeardown(function(done) { |
| + chrome.bookmarks.removeTree(testFolderId, () => done()); |
| + }); |
| +}); |