| 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() {
|
| 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());
|
| + });
|
| +});
|
|
|