Chromium Code Reviews| 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>(); |
|
fgorski
2015/08/13 17:41:51
nice - I need something like that in our other tes
jianli
2015/08/13 22:37:18
Acknowledged.
|
| + 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)) { |
|
Kibeom Kim (inactive)
2015/08/13 20:43:48
Personally I try not to introduce additional timeo
jianli
2015/08/13 22:37:19
Done.
|
| + 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); |