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..e13b0997b5f313b8a9d5c9522cbc19369fec2b60 |
| --- /dev/null |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java |
| @@ -0,0 +1,164 @@ |
| +// 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.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.List; |
| + |
| +/** |
| + * Tests for bookmark bridge |
| + */ |
| +public class BookmarksBridgeTest extends ChromeShellTestBase { |
| + /* |
| + * Dummy bookmark model is structured as below: |
|
Ted C
2014/09/16 02:03:52
I think this is overkill. I don't think you need
Ian Wen
2014/09/16 20:31:34
Done.
|
| + * |
| + * mobile-> a -> aa |
| + * \ | -> ab |
| + * \ | -> ac |
| + * \ |
| + * -> b -> ba |
| + * | -> bb |
| + * | -> bc |
| + * |
| + * other -> c -> ca |
| + * \ | -> cb |
| + * \ | -> cc |
| + * \ |
| + * -> d -> da |
| + * | -> db |
| + * | -> dc -> dca |
| + * |
| + * desktop -> e -> ea |
| + * \ |
| + * \ |
| + * -> f -> fa |
| + * */ |
| + |
| + private ChromeShellActivity mActivity; |
| + private Profile mProfile; |
| + private BookmarksBridge mBookmarksBridge; |
| + private BookmarkId mMobileNode; |
| + private BookmarkId mOtherNode; |
| + private BookmarkId mDesktopNode; |
| + |
| + // folders |
| + BookmarkId a; |
| + BookmarkId b; |
| + BookmarkId c; |
| + BookmarkId d; |
| + BookmarkId e; |
| + BookmarkId f; |
| + BookmarkId dc; |
| + |
| + // bookmarks |
| + BookmarkId ua; |
| + BookmarkId ub; |
| + BookmarkId uc; |
| + |
| + @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(); |
| + |
| + addFolders(); |
|
Ted C
2014/09/16 02:03:52
per my comment above, I would drop this and the ne
Ian Wen
2014/09/16 20:31:34
Done.
|
| + addUrls(); |
| + } |
| + }); |
| + } |
| + |
| + private void addFolders() { |
| + a = mBookmarksBridge.addFolder(mMobileNode, 0, "a"); |
| + b = mBookmarksBridge.addFolder(mMobileNode, 0, "b"); |
| + c = mBookmarksBridge.addFolder(mOtherNode, 0, "c"); |
| + d = mBookmarksBridge.addFolder(mOtherNode, 0, "d"); |
| + e = mBookmarksBridge.addFolder(mDesktopNode, 0, "e"); |
| + f = mBookmarksBridge.addFolder(mDesktopNode, 0, "f"); |
| + |
| + mBookmarksBridge.addFolder(a, 0, "aa"); |
| + mBookmarksBridge.addFolder(a, 0, "ab"); |
| + mBookmarksBridge.addFolder(a, 0, "ac"); |
| + mBookmarksBridge.addFolder(b, 0, "ba"); |
| + mBookmarksBridge.addFolder(b, 0, "bb"); |
| + mBookmarksBridge.addFolder(b, 0, "bc"); |
| + mBookmarksBridge.addFolder(c, 0, "ca"); |
| + mBookmarksBridge.addFolder(c, 0, "cb"); |
| + mBookmarksBridge.addFolder(c, 0, "cc"); |
| + mBookmarksBridge.addFolder(d, 0, "da"); |
| + mBookmarksBridge.addFolder(d, 0, "db"); |
| + dc = mBookmarksBridge.addFolder(d, 0, "dc"); |
| + mBookmarksBridge.addFolder(e, 0, "ea"); |
| + mBookmarksBridge.addFolder(e, 0, "eb"); |
| + mBookmarksBridge.addFolder(e, 0, "ec"); |
| + mBookmarksBridge.addFolder(f, 0, "fa"); |
| + mBookmarksBridge.addFolder(f, 0, "fb"); |
| + mBookmarksBridge.addFolder(f, 0, "fc"); |
| + |
| + mBookmarksBridge.addFolder(dc, 0, "dca"); |
| + } |
| + |
| + /** |
| + * Add some dummy bookmarks. |
| + */ |
| + private void addUrls() { |
| + ua = mBookmarksBridge.addBookmark(mMobileNode, 0, "ua", "http://www.google.com"); |
|
Ted C
2014/09/16 02:03:52
add separate unit tests for adding bookmarks and a
Ian Wen
2014/09/16 20:31:34
Done.
|
| + ub = mBookmarksBridge.addBookmark(mOtherNode, 0, "ub", "http://www.facebook.com"); |
| + uc = mBookmarksBridge.addBookmark(mDesktopNode, 0, "uc", "http://www.yahoo.com"); |
| + } |
| + |
| + @SmallTest |
| + @Feature({"Bookmark Bridge"}) |
|
Ted C
2014/09/16 02:03:52
I would just use Bookmarks instead of "Bookmark Br
Ian Wen
2014/09/16 20:31:34
Done.
|
| + public void testGetAllFoldersWithDepths() { |
| + List<BookmarkId> folderList = new ArrayList<BookmarkId>(); |
| + List<Integer> depthList = new ArrayList<Integer>(); |
| + mBookmarksBridge.getAllFoldersWithDepths(folderList, depthList); |
| + |
| + // FolderList and DepthList should have same size. |
| + assertEquals(folderList.size(), depthList.size()); |
| + //assertEquals(folderList.size(), 18); |
| + |
| + // Mobile and Other should not be included |
| + assertFalse(folderList.contains(mMobileNode)); |
| + assertFalse(folderList.contains(mOtherNode)); |
| + assertTrue(folderList.contains(mDesktopNode)); |
| + |
| + // Subfolders of mobile/other are included. |
| + assertTrue(folderList.contains(a)); |
| + assertTrue(folderList.contains(b)); |
| + assertTrue(folderList.contains(c)); |
| + assertTrue(folderList.contains(d)); |
| + |
| + // Any bookmarks urls should not be returned in folder list. |
| + assertFalse(folderList.contains(ua)); |
| + assertFalse(folderList.contains(ub)); |
| + assertFalse(folderList.contains(uc)); |
| + |
| + // Both folderList and depthList should not contain invalid values. |
| + for (int i = 0; i < folderList.size(); i++) { |
| + assertNotNull(folderList.get(i)); |
| + assertTrue(depthList.get(i) >= 0); |
| + } |
| + } |
| +} |