| Index: chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java
|
| index 4d1a00ebc84d36eb59763f6c43b133f25c36c334..edc02bb59a9a09d1a749b316e5986aa887279b0f 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarksModelTest.java
|
| @@ -9,8 +9,11 @@ import android.test.suitebuilder.annotation.SmallTest;
|
|
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.annotations.SuppressFBWarnings;
|
| +import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| +import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarksModel.AddBookmarkCallback;
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| import org.chromium.components.bookmarks.BookmarkId;
|
| import org.chromium.content.browser.test.NativeLibraryTestBase;
|
| @@ -22,12 +25,15 @@ import java.util.Arrays;
|
| import java.util.HashSet;
|
| import java.util.List;
|
| import java.util.Stack;
|
| +import java.util.concurrent.Semaphore;
|
| +import java.util.concurrent.TimeUnit;
|
| +import java.util.concurrent.atomic.AtomicReference;
|
|
|
| /**
|
| * Tests for {@link EnhancedBookmarksModel}, the data layer of Enhanced Bookmarks.
|
| */
|
| public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| -
|
| + private static final int TIMEOUT_MS = 5000;
|
| private EnhancedBookmarksModel mBookmarksModel;
|
| private BookmarkId mMobileNode;
|
| private BookmarkId mOtherNode;
|
| @@ -72,21 +78,21 @@ public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "b");
|
|
|
| Stack<BookmarkId> stack = new Stack<BookmarkId>();
|
| - stack.push(mBookmarksModel.addBookmark(folderA, 0, "a", "http://www.medium.com"));
|
| + stack.push(addBookmark(folderA, 0, "a", "http://www.medium.com"));
|
| // If add bookmarks too fast, eventually some bookmarks will have the same timestamp, which
|
| // confuses the bookmark model.
|
| Thread.sleep(20);
|
| - stack.push(mBookmarksModel.addBookmark(folderB, 0, "b", "http://aurimas.com"));
|
| + stack.push(addBookmark(folderB, 0, "b", "http://aurimas.com"));
|
| Thread.sleep(20);
|
| - stack.push(mBookmarksModel.addBookmark(mMobileNode, 0, "c", "http://www.aurimas.com"));
|
| + stack.push(addBookmark(mMobileNode, 0, "c", "http://www.aurimas.com"));
|
| Thread.sleep(20);
|
| - stack.push(mBookmarksModel.addBookmark(mDesktopNode, 0, "d", "http://www.aurimas.org"));
|
| + stack.push(addBookmark(mDesktopNode, 0, "d", "http://www.aurimas.org"));
|
| Thread.sleep(20);
|
| - stack.push(mBookmarksModel.addBookmark(mOtherNode, 0, "e", "http://www.google.com"));
|
| + stack.push(addBookmark(mOtherNode, 0, "e", "http://www.google.com"));
|
| Thread.sleep(20);
|
| - stack.push(mBookmarksModel.addBookmark(folderA, 0, "f", "http://www.newt.com"));
|
| + stack.push(addBookmark(folderA, 0, "f", "http://www.newt.com"));
|
| Thread.sleep(20);
|
| - stack.push(mBookmarksModel.addBookmark(folderB, 0, "g", "http://kkimlabs.com"));
|
| + stack.push(addBookmark(folderB, 0, "g", "http://kkimlabs.com"));
|
|
|
| List<BookmarkId> bookmarks = mBookmarksModel.getAllBookmarkIDsOrderedByCreationDate();
|
| assertEquals(stack.size(), bookmarks.size());
|
| @@ -101,10 +107,10 @@ public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| public void testBookmarkPropertySetters() {
|
| BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "a");
|
|
|
| - BookmarkId bookmarkA = mBookmarksModel.addBookmark(mDesktopNode, 0, "a", "http://a.com");
|
| - BookmarkId bookmarkB = mBookmarksModel.addBookmark(mMobileNode, 0, "a", "http://a.com");
|
| - BookmarkId bookmarkC = mBookmarksModel.addBookmark(mOtherNode, 0, "a", "http://a.com");
|
| - BookmarkId bookmarkD = mBookmarksModel.addBookmark(folderA, 0, "a", "http://a.com");
|
| + BookmarkId bookmarkA = addBookmark(mDesktopNode, 0, "a", "http://a.com");
|
| + BookmarkId bookmarkB = addBookmark(mMobileNode, 0, "a", "http://a.com");
|
| + BookmarkId bookmarkC = addBookmark(mOtherNode, 0, "a", "http://a.com");
|
| + BookmarkId bookmarkD = addBookmark(folderA, 0, "a", "http://a.com");
|
|
|
| mBookmarksModel.setBookmarkTitle(folderA, "hauri");
|
| assertEquals("hauri", mBookmarksModel.getBookmarkTitle(folderA));
|
| @@ -132,14 +138,14 @@ public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| @Feature({"Bookmark" })
|
| @SuppressFBWarnings("DLS_DEAD_LOCAL_STORE")
|
| public void testMoveBookmarks() {
|
| - BookmarkId bookmarkA = mBookmarksModel.addBookmark(mDesktopNode, 0, "a", "http://a.com");
|
| - BookmarkId bookmarkB = mBookmarksModel.addBookmark(mOtherNode, 0, "b", "http://b.com");
|
| - BookmarkId bookmarkC = mBookmarksModel.addBookmark(mMobileNode, 0, "c", "http://c.com");
|
| + BookmarkId bookmarkA = addBookmark(mDesktopNode, 0, "a", "http://a.com");
|
| + BookmarkId bookmarkB = addBookmark(mOtherNode, 0, "b", "http://b.com");
|
| + BookmarkId bookmarkC = addBookmark(mMobileNode, 0, "c", "http://c.com");
|
| BookmarkId folderA = mBookmarksModel.addFolder(mOtherNode, 0, "fa");
|
| BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "fb");
|
| BookmarkId folderC = mBookmarksModel.addFolder(mMobileNode, 0, "fc");
|
| - BookmarkId bookmarkAA = mBookmarksModel.addBookmark(folderA, 0, "aa", "http://aa.com");
|
| - BookmarkId bookmarkCA = mBookmarksModel.addBookmark(folderC, 0, "ca", "http://ca.com");
|
| + BookmarkId bookmarkAA = addBookmark(folderA, 0, "aa", "http://aa.com");
|
| + BookmarkId bookmarkCA = addBookmark(folderC, 0, "ca", "http://ca.com");
|
| BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa");
|
|
|
| HashSet<BookmarkId> movedBookmarks = new HashSet<BookmarkId>(6);
|
| @@ -162,10 +168,10 @@ public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| public void testGetChildIDs() {
|
| BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "fa");
|
| HashSet<BookmarkId> expectedChildren = new HashSet<>();
|
| - expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http://a.com"));
|
| - expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http://a.com"));
|
| - expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http://a.com"));
|
| - expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http://a.com"));
|
| + expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com"));
|
| + expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com"));
|
| + expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com"));
|
| + expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com"));
|
| BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa");
|
| // urls only
|
| verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, false, true),
|
| @@ -184,13 +190,13 @@ public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| @SmallTest
|
| @Feature({"Bookmark"})
|
| public void testAddBookmarksAndFolders() {
|
| - BookmarkId bookmarkA = mBookmarksModel.addBookmark(mDesktopNode, 0, "a", "http://a.com");
|
| + BookmarkId bookmarkA = addBookmark(mDesktopNode, 0, "a", "http://a.com");
|
| verifyBookmark(bookmarkA, "a", "http://a.com/", false, mDesktopNode);
|
|
|
| - BookmarkId bookmarkB = mBookmarksModel.addBookmark(mOtherNode, 0, "b", "http://b.com");
|
| + BookmarkId bookmarkB = addBookmark(mOtherNode, 0, "b", "http://b.com");
|
| verifyBookmark(bookmarkB, "b", "http://b.com/", false, mOtherNode);
|
|
|
| - BookmarkId bookmarkC = mBookmarksModel.addBookmark(mMobileNode, 0, "c", "http://c.com");
|
| + BookmarkId bookmarkC = addBookmark(mMobileNode, 0, "c", "http://c.com");
|
| verifyBookmark(bookmarkC, "c", "http://c.com/", false, mMobileNode);
|
|
|
| BookmarkId folderA = mBookmarksModel.addFolder(mOtherNode, 0, "fa");
|
| @@ -202,13 +208,50 @@ public class EnhancedBookmarksModelTest extends NativeLibraryTestBase {
|
| BookmarkId folderC = mBookmarksModel.addFolder(mMobileNode, 0, "fc");
|
| verifyBookmark(folderC, "fc", null, true, mMobileNode);
|
|
|
| - BookmarkId bookmarkAA = mBookmarksModel.addBookmark(folderA, 0, "aa", "http://aa.com");
|
| + BookmarkId bookmarkAA = addBookmark(folderA, 0, "aa", "http://aa.com");
|
| verifyBookmark(bookmarkAA, "aa", "http://aa.com/", false, folderA);
|
|
|
| BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa");
|
| verifyBookmark(folderAA, "faa", null, true, folderA);
|
| }
|
|
|
| + @UiThreadTest
|
| + @SmallTest
|
| + @CommandLineFlags.Add(ChromeSwitches.ENABLE_OFFLINE_PAGES)
|
| + @Feature({"Bookmark"})
|
| + public void testOfflineBridgeLoaded() {
|
| + assertTrue(mBookmarksModel.getOfflinePageBridge() != null);
|
| + assertTrue(mBookmarksModel.getOfflinePageBridge().isOfflinePageModelLoaded());
|
| + }
|
| +
|
| + private BookmarkId addBookmark(final BookmarkId parent, final int index, final String title,
|
| + final String url) {
|
| + final AtomicReference<BookmarkId> result = new AtomicReference<BookmarkId>();
|
| + final Semaphore semaphore = new Semaphore(0);
|
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mBookmarksModel.addBookmarkAsync(parent, index, title, url, null,
|
| + new AddBookmarkCallback() {
|
| + @Override
|
| + public void onBookmarkAdded(final BookmarkId bookmarkId) {
|
| + result.set(bookmarkId);
|
| + semaphore.release();
|
| + }
|
| + });
|
| + }
|
| + });
|
| + try {
|
| + if (semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
|
| + return result.get();
|
| + } else {
|
| + return null;
|
| + }
|
| + } catch (InterruptedException e) {
|
| + return null;
|
| + }
|
| + }
|
| +
|
| private void verifyBookmark(BookmarkId idToVerify, String expectedTitle,
|
| String expectedUrl, boolean isFolder, BookmarkId expectedParent) {
|
| assertNotNull(idToVerify);
|
|
|