Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2994)

Unified Diff: chrome/test/data/webui/md_bookmarks/command_manager_test.js

Issue 2977523002: MD Bookmarks: Scroll and select items that are added to the main list (Closed)
Patch Set: Fix test Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..54d94fc3be7d54ff5a995025ff11dfd4156c94d7 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,20 @@ suite('<bookmarks-command-manager>', function() {
var store;
var lastCommand;
var lastCommandIds;
+ var bmpCopyFunction;
suiteSetup(function() {
// Overwrite bookmarkManagerPrivate APIs which will crash if called with
// fake data.
+ bmpCopyFunction = chrome.bookmarkManagerPrivate.copy;
chrome.bookmarkManagerPrivate.copy = function() {};
chrome.bookmarkManagerPrivate.removeTrees = function() {};
});
+ suiteTeardown(function() {
+ chrome.bookmarkManagerPrivate.copy = bmpCopyFunction;
+ });
+
setup(function() {
var bulkChildren = [];
for (var i = 1; i <= 20; i++) {
@@ -134,6 +140,7 @@ suite('<bookmarks-command-manager>', function() {
chrome.bookmarkManagerPrivate.cut = function(idList) {
lastCut = idList.sort();
};
+ var bmpPasteFunction = chrome.bookmarkManagerPrivate.paste;
calamity 2017/07/14 04:14:40 Can we just do this in the setup/teardown like for
tsergeant 2017/07/14 06:39:20 Done.
chrome.bookmarkManagerPrivate.paste = function(selectedFolder) {
lastPaste = selectedFolder;
};
@@ -147,6 +154,8 @@ suite('<bookmarks-command-manager>', function() {
assertDeepEquals(['11', '13'], lastCut);
MockInteractions.pressAndReleaseKeyOn(document.body, '', modifier, 'v');
assertEquals('1', lastPaste);
+
+ chrome.bookmarkManagerPrivate.paste = bmpPasteFunction;
});
test('undo and redo commands trigger', function() {
@@ -431,3 +440,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());
+ });
+});

Powered by Google App Engine
This is Rietveld 408576698