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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java

Issue 550543003: Add Instrumental Test for BookmarksBridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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/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:
+ *
+ * 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();
+ 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");
+ ub = mBookmarksBridge.addBookmark(mOtherNode, 0, "ub", "http://www.facebook.com");
+ uc = mBookmarksBridge.addBookmark(mDesktopNode, 0, "uc", "http://www.yahoo.com");
+ }
+
+ @SmallTest
+ @Feature({"Bookmark Bridge"})
+ 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);
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698