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

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: Review comments 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 fa168fa6c73ae3150e56485b2e2adf8243a5fac7..6fdce62585f6db9ed944501bb6d33639b304bf03 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++) {
@@ -139,11 +148,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');
@@ -438,3 +446,79 @@ suite('<bookmarks-item> CommandManager integration', function() {
assertOpenedTabs(['http://111/', 'http://13/']);
});
});
+
+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