Chromium Code Reviews| 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 |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d7addd3110ab48c1d7d16d007399176ce6b0528c |
| --- /dev/null |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java |
| @@ -0,0 +1,135 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.chrome.browser; |
| + |
| +import android.test.UiThreadTest; |
| +import android.test.suitebuilder.annotation.SmallTest; |
| + |
| +import org.chromium.base.ThreadUtils; |
| +import org.chromium.base.test.util.Feature; |
| +import org.chromium.chrome.browser.profiles.Profile; |
| +import org.chromium.chrome.shell.ChromeShellActivity; |
| +import org.chromium.chrome.shell.ChromeShellTab; |
| +import org.chromium.chrome.shell.ChromeShellTestBase; |
| +import org.chromium.components.bookmarks.BookmarkId; |
| + |
| +import java.util.ArrayList; |
| +import java.util.HashMap; |
| +import java.util.List; |
| + |
| +/** |
| + * Tests for bookmark bridge |
| + */ |
| +public class BookmarksBridgeTest extends ChromeShellTestBase { |
| + |
| + private ChromeShellActivity mActivity; |
| + private Profile mProfile; |
| + private BookmarksBridge mBookmarksBridge; |
| + private BookmarkId mMobileNode; |
| + private BookmarkId mOtherNode; |
| + private BookmarkId mDesktopNode; |
| + |
| + @Override |
| + protected void setUp() throws Exception { |
| + super.setUp(); |
| + mActivity = launchChromeShellWithBlankPage(); |
| + assertTrue(waitForActiveShellToBeDoneLoading()); |
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| + @Override |
| + public void run() { |
| + ChromeShellTab tab = mActivity.getActiveTab(); |
| + mProfile = tab.getProfile(); |
| + mBookmarksBridge = new BookmarksBridge(mProfile); |
| + mBookmarksBridge.loadEmptyPartnerBookmarkShimForTesting(); |
| + mMobileNode = mBookmarksBridge.getMobileFolderId(); |
| + mDesktopNode = mBookmarksBridge.getDesktopFolderId(); |
| + mOtherNode = mBookmarksBridge.getOtherFolderId(); |
| + } |
| + }); |
| + } |
| + |
| + @UiThreadTest |
| + @SmallTest |
| + @Feature({"Bookmark"}) |
| + public void testAddBookmarksAndFolders() { |
| + BookmarkId[] bookmarks = new BookmarkId[] { |
| + mBookmarksBridge.addBookmark(mDesktopNode, 0, "a", "http://a.com"), |
| + mBookmarksBridge.addBookmark(mOtherNode, 0, "b", "http://b.com"), |
| + mBookmarksBridge.addBookmark(mMobileNode, 0, "c", "http://c.com"), |
| + }; |
| + BookmarkId[] folders = new BookmarkId[] { |
| + mBookmarksBridge.addFolder(mOtherNode, 0, "fa"), |
| + mBookmarksBridge.addFolder(mDesktopNode, 0, "fb"), |
| + mBookmarksBridge.addFolder(mMobileNode, 0, "fc"), |
| + }; |
| + for (int i = 0; i < bookmarks.length; i++) { |
| + assertNotNull(bookmarks[i]); |
| + assertEquals(mBookmarksBridge.getBookmarkById(bookmarks[i]).getTitle(), |
|
Ted C
2014/09/17 19:51:31
I think these verification steps are still a bit m
Ian Wen
2014/09/17 20:41:23
Done.
|
| + "" + (char) ('a' + i)); |
| + assertEquals(mBookmarksBridge.getBookmarkById(bookmarks[i]).getUrl(), |
| + "http://" + (char)('a' + i) + ".com/"); |
| + } |
| + for (int i = 0; i < folders.length; i++) { |
| + assertNotNull(folders[i]); |
| + assertEquals(mBookmarksBridge.getBookmarkById(folders[i]).getTitle(), |
| + "f" + (char) ('a' + i)); |
| + } |
| + } |
| + |
| + @UiThreadTest |
| + @SmallTest |
| + @Feature({"Bookmark"}) |
| + public void testGetAllFoldersWithDepths() { |
| + 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"); |
| + BookmarkId folderAAAA = mBookmarksBridge.addFolder(folderAAA, 0, "aaaa"); |
| + |
| + HashMap<BookmarkId, Integer> idToDepth = new HashMap<BookmarkId, Integer>(); |
| + idToDepth.put(folderA, 0); |
| + idToDepth.put(folderAA, 1); |
| + idToDepth.put(folderAAA, 2); |
| + idToDepth.put(folderAAAA, 3); |
| + idToDepth.put(mDesktopNode, 0); |
| + idToDepth.put(folderB, 1); |
| + idToDepth.put(folderBA, 2); |
| + idToDepth.put(folderC, 0); |
|
Kibeom Kim (inactive)
2014/09/17 19:28:08
how about just creating ground-truth expectedFolde
Ted C
2014/09/17 19:51:31
I think you'd want to use:
http://developer.androi
Ian Wen
2014/09/17 20:41:22
My major concern about comparing lists directly wa
Kibeom Kim (inactive)
2014/09/18 17:46:37
Good point! I'm not sure if there is any bot runni
|
| + |
| + BookmarkId[] bookmarks = new BookmarkId[] { |
| + 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") }; |
| + |
| + List<BookmarkId> folderList = new ArrayList<BookmarkId>(); |
| + List<Integer> depthList = new ArrayList<Integer>(); |
| + mBookmarksBridge.getAllFoldersWithDepths(folderList, depthList); |
| + |
| + assertEquals(folderList.size(), depthList.size()); |
| + assertEquals(folderList.size(), idToDepth.size()); |
| + |
| + // Every folder in hashmap should exist in folderList |
| + for (BookmarkId folder: idToDepth.keySet()) { |
| + assertTrue(folderList.contains(folder)); |
| + } |
| + // folderList should not contain any bookmark |
| + for (BookmarkId bookmark : bookmarks) { |
| + assertFalse(folderList.contains(bookmark)); |
| + } |
| + assertFalse(folderList.contains(mOtherNode)); |
| + assertFalse(folderList.contains(mMobileNode)); |
| + |
| + for (int i = 0; i < folderList.size(); i++) { |
| + assertNotNull(folderList.get(i)); |
| + assertNotNull(depthList.get(i)); |
| + assertTrue(depthList.get(i) >= 0); |
| + assertTrue(idToDepth.containsKey(folderList.get(i))); |
| + assertEquals(depthList.get(i), idToDepth.get(folderList.get(i))); |
| + } |
| + } |
| +} |