| Index: chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
|
| index 43392e5f19311d5e80781275d372c638a57b905d..bc050c0a9ad5777833793bbc3e91c40832d04fe2 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
|
| @@ -17,6 +17,7 @@ import org.chromium.chrome.shell.ChromeShellTestBase;
|
| import org.chromium.components.bookmarks.BookmarkId;
|
|
|
| import java.util.ArrayList;
|
| +import java.util.Arrays;
|
| import java.util.HashMap;
|
| import java.util.List;
|
|
|
| @@ -114,24 +115,90 @@ public class BookmarksBridgeTest extends ChromeShellTestBase {
|
| List<BookmarkId> folderList = new ArrayList<BookmarkId>();
|
| List<Integer> depthList = new ArrayList<Integer>();
|
| mBookmarksBridge.getAllFoldersWithDepths(folderList, depthList);
|
| + verifyFolderDepths(folderList, depthList, idToDepth);
|
| + }
|
|
|
| - assertEquals("Returned folder list has different size (" + folderList.size()
|
| - + ") from depth list (" + depthList.size() + ").",
|
| - folderList.size(), depthList.size());
|
| - assertEquals("Returned lists have different sizes (" + folderList.size()
|
| - + ") from expected size (" + idToDepth.size() + ").",
|
| - folderList.size(), idToDepth.size());
|
| + @UiThreadTest
|
| + @SmallTest
|
| + @Feature({"Bookmark"})
|
| + public void testGetMoveDestinations() {
|
| + BookmarkId folderA = mBookmarksBridge.addFolder(mMobileNode, 0, "a");
|
| + BookmarkId folderB = mBookmarksBridge.addFolder(mDesktopNode, 0, "b");
|
| + BookmarkId folderC = mBookmarksBridge.addFolder(mOtherNode, 0, "c");
|
| + BookmarkId folderAA = mBookmarksBridge.addFolder(folderA, 0, "aa");
|
| + BookmarkId folderBA = mBookmarksBridge.addFolder(folderB, 0, "ba");
|
| + BookmarkId folderAAA = mBookmarksBridge.addFolder(folderAA, 0, "aaa");
|
|
|
| + mBookmarksBridge.addBookmark(mMobileNode, 0, "ua", "http://www.google.com");
|
| + mBookmarksBridge.addBookmark(mDesktopNode, 0, "ua", "http://www.google.com");
|
| + mBookmarksBridge.addBookmark(mOtherNode, 0, "ua", "http://www.google.com");
|
| + mBookmarksBridge.addBookmark(folderA, 0, "ua", "http://www.medium.com");
|
| +
|
| + // Map folders to depths as expected results
|
| + HashMap<BookmarkId, Integer> idToDepth = new HashMap<BookmarkId, Integer>();
|
| +
|
| + List<BookmarkId> folderList = new ArrayList<BookmarkId>();
|
| + List<Integer> depthList = new ArrayList<Integer>();
|
| +
|
| + mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderA));
|
| + idToDepth.put(mDesktopNode, 0);
|
| + idToDepth.put(folderB, 1);
|
| + idToDepth.put(folderBA, 2);
|
| + idToDepth.put(folderC, 0);
|
| + verifyFolderDepths(folderList, depthList, idToDepth);
|
| +
|
| + mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderB));
|
| + idToDepth.put(folderA, 0);
|
| + idToDepth.put(folderAA, 1);
|
| + idToDepth.put(folderAAA, 2);
|
| + idToDepth.put(mDesktopNode, 0);
|
| + idToDepth.put(folderC, 0);
|
| + verifyFolderDepths(folderList, depthList, idToDepth);
|
| +
|
| + mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderC));
|
| + idToDepth.put(folderA, 0);
|
| + idToDepth.put(folderAA, 1);
|
| + idToDepth.put(folderAAA, 2);
|
| + idToDepth.put(mDesktopNode, 0);
|
| + idToDepth.put(folderB, 1);
|
| + idToDepth.put(folderBA, 2);
|
| + verifyFolderDepths(folderList, depthList, idToDepth);
|
| +
|
| + mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderBA));
|
| + idToDepth.put(folderA, 0);
|
| + idToDepth.put(folderAA, 1);
|
| + idToDepth.put(folderAAA, 2);
|
| + idToDepth.put(mDesktopNode, 0);
|
| + idToDepth.put(folderB, 1);
|
| + idToDepth.put(folderC, 0);
|
| + verifyFolderDepths(folderList, depthList, idToDepth);
|
| +
|
| + mBookmarksBridge.getMoveDestinations(folderList, depthList,
|
| + Arrays.asList(folderAA, folderC));
|
| + idToDepth.put(folderA, 0);
|
| + idToDepth.put(mDesktopNode, 0);
|
| + idToDepth.put(folderB, 1);
|
| + idToDepth.put(folderBA, 2);
|
| + verifyFolderDepths(folderList, depthList, idToDepth);
|
| + }
|
| +
|
| + private void verifyFolderDepths(List<BookmarkId> folderList, List<Integer> depthList,
|
| + HashMap<BookmarkId, Integer> idToDepth) {
|
| + assertEquals(folderList.size(), depthList.size());
|
| + assertEquals(folderList.size(), idToDepth.size());
|
| for (int i = 0; i < folderList.size(); i++) {
|
| - assertNotNull(folderList.get(i));
|
| + BookmarkId folder = folderList.get(i);
|
| + Integer depth = depthList.get(i);
|
| + assertNotNull(folder);
|
| assertNotNull(depthList.get(i));
|
| - assertTrue("Returned list contained unexpected key: " + folderList.get(i),
|
| - idToDepth.containsKey(folderList.get(i)));
|
| - assertEquals(depthList.get(i), idToDepth.get(folderList.get(i)));
|
| - idToDepth.remove(folderList.get(i));
|
| + assertTrue("Folder list contains non-folder elements: ",
|
| + mBookmarksBridge.getBookmarkById(folder).isFolder());
|
| + assertTrue("Returned list contained unexpected key: ", idToDepth.containsKey(folder));
|
| + assertEquals(idToDepth.get(folder), depth);
|
| + idToDepth.remove(folder);
|
| }
|
| -
|
| - assertEquals("Expected list contains elements that are not in returned list",
|
| - idToDepth.size(), 0);
|
| + assertEquals(idToDepth.size(), 0);
|
| + folderList.clear();
|
| + depthList.clear();
|
| }
|
| -}
|
| +}
|
|
|