| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.enhancedbookmarks; | 5 package org.chromium.chrome.browser.enhancedbookmarks; |
| 6 | 6 |
| 7 import android.test.UiThreadTest; | 7 import android.test.UiThreadTest; |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
| 9 | 9 |
| 10 import org.chromium.base.ThreadUtils; | 10 import org.chromium.base.ThreadUtils; |
| 11 import org.chromium.base.annotations.SuppressFBWarnings; | 11 import org.chromium.base.annotations.SuppressFBWarnings; |
| 12 import org.chromium.base.test.util.CommandLineFlags; |
| 12 import org.chromium.base.test.util.Feature; | 13 import org.chromium.base.test.util.Feature; |
| 13 import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem; | 14 import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem; |
| 15 import org.chromium.chrome.browser.ChromeSwitches; |
| 16 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarksModel.AddB
ookmarkCallback; |
| 14 import org.chromium.chrome.browser.profiles.Profile; | 17 import org.chromium.chrome.browser.profiles.Profile; |
| 15 import org.chromium.components.bookmarks.BookmarkId; | 18 import org.chromium.components.bookmarks.BookmarkId; |
| 16 import org.chromium.content.browser.test.NativeLibraryTestBase; | 19 import org.chromium.content.browser.test.NativeLibraryTestBase; |
| 17 import org.chromium.content.browser.test.util.Criteria; | 20 import org.chromium.content.browser.test.util.Criteria; |
| 18 import org.chromium.content.browser.test.util.CriteriaHelper; | 21 import org.chromium.content.browser.test.util.CriteriaHelper; |
| 19 | 22 |
| 20 import java.util.ArrayList; | 23 import java.util.ArrayList; |
| 21 import java.util.Arrays; | 24 import java.util.Arrays; |
| 22 import java.util.HashSet; | 25 import java.util.HashSet; |
| 23 import java.util.List; | 26 import java.util.List; |
| 24 import java.util.Stack; | 27 import java.util.Stack; |
| 28 import java.util.concurrent.Semaphore; |
| 29 import java.util.concurrent.TimeUnit; |
| 30 import java.util.concurrent.atomic.AtomicReference; |
| 25 | 31 |
| 26 /** | 32 /** |
| 27 * Tests for {@link EnhancedBookmarksModel}, the data layer of Enhanced Bookmark
s. | 33 * Tests for {@link EnhancedBookmarksModel}, the data layer of Enhanced Bookmark
s. |
| 28 */ | 34 */ |
| 29 public class EnhancedBookmarksModelTest extends NativeLibraryTestBase { | 35 public class EnhancedBookmarksModelTest extends NativeLibraryTestBase { |
| 30 | 36 private static final int TIMEOUT_MS = 5000; |
| 31 private EnhancedBookmarksModel mBookmarksModel; | 37 private EnhancedBookmarksModel mBookmarksModel; |
| 32 private BookmarkId mMobileNode; | 38 private BookmarkId mMobileNode; |
| 33 private BookmarkId mOtherNode; | 39 private BookmarkId mOtherNode; |
| 34 private BookmarkId mDesktopNode; | 40 private BookmarkId mDesktopNode; |
| 35 | 41 |
| 36 @Override | 42 @Override |
| 37 protected void setUp() throws Exception { | 43 protected void setUp() throws Exception { |
| 38 super.setUp(); | 44 super.setUp(); |
| 39 loadNativeLibraryAndInitBrowserProcess(); | 45 loadNativeLibraryAndInitBrowserProcess(); |
| 40 | 46 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 65 } | 71 } |
| 66 | 72 |
| 67 @UiThreadTest | 73 @UiThreadTest |
| 68 @SmallTest | 74 @SmallTest |
| 69 @Feature({"Bookmark"}) | 75 @Feature({"Bookmark"}) |
| 70 public void testGetAllBookmarkIDsOrderedByCreationDate() throws InterruptedE
xception { | 76 public void testGetAllBookmarkIDsOrderedByCreationDate() throws InterruptedE
xception { |
| 71 BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "a"); | 77 BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "a"); |
| 72 BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "b"); | 78 BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "b"); |
| 73 | 79 |
| 74 Stack<BookmarkId> stack = new Stack<BookmarkId>(); | 80 Stack<BookmarkId> stack = new Stack<BookmarkId>(); |
| 75 stack.push(mBookmarksModel.addBookmark(folderA, 0, "a", "http://www.medi
um.com")); | 81 stack.push(addBookmark(folderA, 0, "a", "http://www.medium.com")); |
| 76 // If add bookmarks too fast, eventually some bookmarks will have the sa
me timestamp, which | 82 // If add bookmarks too fast, eventually some bookmarks will have the sa
me timestamp, which |
| 77 // confuses the bookmark model. | 83 // confuses the bookmark model. |
| 78 Thread.sleep(20); | 84 Thread.sleep(20); |
| 79 stack.push(mBookmarksModel.addBookmark(folderB, 0, "b", "http://aurimas.
com")); | 85 stack.push(addBookmark(folderB, 0, "b", "http://aurimas.com")); |
| 80 Thread.sleep(20); | 86 Thread.sleep(20); |
| 81 stack.push(mBookmarksModel.addBookmark(mMobileNode, 0, "c", "http://www.
aurimas.com")); | 87 stack.push(addBookmark(mMobileNode, 0, "c", "http://www.aurimas.com")); |
| 82 Thread.sleep(20); | 88 Thread.sleep(20); |
| 83 stack.push(mBookmarksModel.addBookmark(mDesktopNode, 0, "d", "http://www
.aurimas.org")); | 89 stack.push(addBookmark(mDesktopNode, 0, "d", "http://www.aurimas.org")); |
| 84 Thread.sleep(20); | 90 Thread.sleep(20); |
| 85 stack.push(mBookmarksModel.addBookmark(mOtherNode, 0, "e", "http://www.g
oogle.com")); | 91 stack.push(addBookmark(mOtherNode, 0, "e", "http://www.google.com")); |
| 86 Thread.sleep(20); | 92 Thread.sleep(20); |
| 87 stack.push(mBookmarksModel.addBookmark(folderA, 0, "f", "http://www.newt
.com")); | 93 stack.push(addBookmark(folderA, 0, "f", "http://www.newt.com")); |
| 88 Thread.sleep(20); | 94 Thread.sleep(20); |
| 89 stack.push(mBookmarksModel.addBookmark(folderB, 0, "g", "http://kkimlabs
.com")); | 95 stack.push(addBookmark(folderB, 0, "g", "http://kkimlabs.com")); |
| 90 | 96 |
| 91 List<BookmarkId> bookmarks = mBookmarksModel.getAllBookmarkIDsOrderedByC
reationDate(); | 97 List<BookmarkId> bookmarks = mBookmarksModel.getAllBookmarkIDsOrderedByC
reationDate(); |
| 92 assertEquals(stack.size(), bookmarks.size()); | 98 assertEquals(stack.size(), bookmarks.size()); |
| 93 for (BookmarkId returnedBookmark : bookmarks) { | 99 for (BookmarkId returnedBookmark : bookmarks) { |
| 94 assertEquals(stack.pop(), returnedBookmark); | 100 assertEquals(stack.pop(), returnedBookmark); |
| 95 } | 101 } |
| 96 } | 102 } |
| 97 | 103 |
| 98 @UiThreadTest | 104 @UiThreadTest |
| 99 @SmallTest | 105 @SmallTest |
| 100 @Feature({"Bookmark"}) | 106 @Feature({"Bookmark"}) |
| 101 public void testBookmarkPropertySetters() { | 107 public void testBookmarkPropertySetters() { |
| 102 BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "a"); | 108 BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "a"); |
| 103 | 109 |
| 104 BookmarkId bookmarkA = mBookmarksModel.addBookmark(mDesktopNode, 0, "a",
"http://a.com"); | 110 BookmarkId bookmarkA = addBookmark(mDesktopNode, 0, "a", "http://a.com")
; |
| 105 BookmarkId bookmarkB = mBookmarksModel.addBookmark(mMobileNode, 0, "a",
"http://a.com"); | 111 BookmarkId bookmarkB = addBookmark(mMobileNode, 0, "a", "http://a.com"); |
| 106 BookmarkId bookmarkC = mBookmarksModel.addBookmark(mOtherNode, 0, "a", "
http://a.com"); | 112 BookmarkId bookmarkC = addBookmark(mOtherNode, 0, "a", "http://a.com"); |
| 107 BookmarkId bookmarkD = mBookmarksModel.addBookmark(folderA, 0, "a", "htt
p://a.com"); | 113 BookmarkId bookmarkD = addBookmark(folderA, 0, "a", "http://a.com"); |
| 108 | 114 |
| 109 mBookmarksModel.setBookmarkTitle(folderA, "hauri"); | 115 mBookmarksModel.setBookmarkTitle(folderA, "hauri"); |
| 110 assertEquals("hauri", mBookmarksModel.getBookmarkTitle(folderA)); | 116 assertEquals("hauri", mBookmarksModel.getBookmarkTitle(folderA)); |
| 111 | 117 |
| 112 mBookmarksModel.setBookmarkTitle(bookmarkA, "auri"); | 118 mBookmarksModel.setBookmarkTitle(bookmarkA, "auri"); |
| 113 mBookmarksModel.setBookmarkUrl(bookmarkA, "http://auri.org/"); | 119 mBookmarksModel.setBookmarkUrl(bookmarkA, "http://auri.org/"); |
| 114 verifyBookmark(bookmarkA, "auri", "http://auri.org/", false, mDesktopNod
e); | 120 verifyBookmark(bookmarkA, "auri", "http://auri.org/", false, mDesktopNod
e); |
| 115 | 121 |
| 116 mBookmarksModel.setBookmarkTitle(bookmarkB, "lauri"); | 122 mBookmarksModel.setBookmarkTitle(bookmarkB, "lauri"); |
| 117 mBookmarksModel.setBookmarkUrl(bookmarkB, "http://lauri.org/"); | 123 mBookmarksModel.setBookmarkUrl(bookmarkB, "http://lauri.org/"); |
| 118 verifyBookmark(bookmarkB, "lauri", "http://lauri.org/", false, mMobileNo
de); | 124 verifyBookmark(bookmarkB, "lauri", "http://lauri.org/", false, mMobileNo
de); |
| 119 | 125 |
| 120 mBookmarksModel.setBookmarkTitle(bookmarkC, "mauri"); | 126 mBookmarksModel.setBookmarkTitle(bookmarkC, "mauri"); |
| 121 mBookmarksModel.setBookmarkUrl(bookmarkC, "http://mauri.org/"); | 127 mBookmarksModel.setBookmarkUrl(bookmarkC, "http://mauri.org/"); |
| 122 verifyBookmark(bookmarkC, "mauri", "http://mauri.org/", false, mOtherNod
e); | 128 verifyBookmark(bookmarkC, "mauri", "http://mauri.org/", false, mOtherNod
e); |
| 123 | 129 |
| 124 mBookmarksModel.setBookmarkTitle(bookmarkD, "kauri"); | 130 mBookmarksModel.setBookmarkTitle(bookmarkD, "kauri"); |
| 125 mBookmarksModel.setBookmarkUrl(bookmarkD, "http://kauri.org/"); | 131 mBookmarksModel.setBookmarkUrl(bookmarkD, "http://kauri.org/"); |
| 126 verifyBookmark(bookmarkD, "kauri", "http://kauri.org/", false, folderA); | 132 verifyBookmark(bookmarkD, "kauri", "http://kauri.org/", false, folderA); |
| 127 } | 133 } |
| 128 | 134 |
| 129 | 135 |
| 130 @UiThreadTest | 136 @UiThreadTest |
| 131 @SmallTest | 137 @SmallTest |
| 132 @Feature({"Bookmark" }) | 138 @Feature({"Bookmark" }) |
| 133 @SuppressFBWarnings("DLS_DEAD_LOCAL_STORE") | 139 @SuppressFBWarnings("DLS_DEAD_LOCAL_STORE") |
| 134 public void testMoveBookmarks() { | 140 public void testMoveBookmarks() { |
| 135 BookmarkId bookmarkA = mBookmarksModel.addBookmark(mDesktopNode, 0, "a",
"http://a.com"); | 141 BookmarkId bookmarkA = addBookmark(mDesktopNode, 0, "a", "http://a.com")
; |
| 136 BookmarkId bookmarkB = mBookmarksModel.addBookmark(mOtherNode, 0, "b", "
http://b.com"); | 142 BookmarkId bookmarkB = addBookmark(mOtherNode, 0, "b", "http://b.com"); |
| 137 BookmarkId bookmarkC = mBookmarksModel.addBookmark(mMobileNode, 0, "c",
"http://c.com"); | 143 BookmarkId bookmarkC = addBookmark(mMobileNode, 0, "c", "http://c.com"); |
| 138 BookmarkId folderA = mBookmarksModel.addFolder(mOtherNode, 0, "fa"); | 144 BookmarkId folderA = mBookmarksModel.addFolder(mOtherNode, 0, "fa"); |
| 139 BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "fb"); | 145 BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "fb"); |
| 140 BookmarkId folderC = mBookmarksModel.addFolder(mMobileNode, 0, "fc"); | 146 BookmarkId folderC = mBookmarksModel.addFolder(mMobileNode, 0, "fc"); |
| 141 BookmarkId bookmarkAA = mBookmarksModel.addBookmark(folderA, 0, "aa", "h
ttp://aa.com"); | 147 BookmarkId bookmarkAA = addBookmark(folderA, 0, "aa", "http://aa.com"); |
| 142 BookmarkId bookmarkCA = mBookmarksModel.addBookmark(folderC, 0, "ca", "h
ttp://ca.com"); | 148 BookmarkId bookmarkCA = addBookmark(folderC, 0, "ca", "http://ca.com"); |
| 143 BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa"); | 149 BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa"); |
| 144 | 150 |
| 145 HashSet<BookmarkId> movedBookmarks = new HashSet<BookmarkId>(6); | 151 HashSet<BookmarkId> movedBookmarks = new HashSet<BookmarkId>(6); |
| 146 movedBookmarks.add(bookmarkA); | 152 movedBookmarks.add(bookmarkA); |
| 147 movedBookmarks.add(bookmarkB); | 153 movedBookmarks.add(bookmarkB); |
| 148 movedBookmarks.add(bookmarkC); | 154 movedBookmarks.add(bookmarkC); |
| 149 movedBookmarks.add(folderC); | 155 movedBookmarks.add(folderC); |
| 150 movedBookmarks.add(folderB); | 156 movedBookmarks.add(folderB); |
| 151 movedBookmarks.add(bookmarkAA); | 157 movedBookmarks.add(bookmarkAA); |
| 152 mBookmarksModel.moveBookmarks(new ArrayList<BookmarkId>(movedBookmarks),
folderAA); | 158 mBookmarksModel.moveBookmarks(new ArrayList<BookmarkId>(movedBookmarks),
folderAA); |
| 153 | 159 |
| 154 // Order of the moved bookmarks is not tested. | 160 // Order of the moved bookmarks is not tested. |
| 155 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderAA, true, tr
ue), | 161 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderAA, true, tr
ue), |
| 156 movedBookmarks); | 162 movedBookmarks); |
| 157 } | 163 } |
| 158 | 164 |
| 159 @UiThreadTest | 165 @UiThreadTest |
| 160 @SmallTest | 166 @SmallTest |
| 161 @Feature({"Bookmark"}) | 167 @Feature({"Bookmark"}) |
| 162 public void testGetChildIDs() { | 168 public void testGetChildIDs() { |
| 163 BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "fa"); | 169 BookmarkId folderA = mBookmarksModel.addFolder(mMobileNode, 0, "fa"); |
| 164 HashSet<BookmarkId> expectedChildren = new HashSet<>(); | 170 HashSet<BookmarkId> expectedChildren = new HashSet<>(); |
| 165 expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http:
//a.com")); | 171 expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com")); |
| 166 expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http:
//a.com")); | 172 expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com")); |
| 167 expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http:
//a.com")); | 173 expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com")); |
| 168 expectedChildren.add(mBookmarksModel.addBookmark(folderA, 0, "a", "http:
//a.com")); | 174 expectedChildren.add(addBookmark(folderA, 0, "a", "http://a.com")); |
| 169 BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa"); | 175 BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa"); |
| 170 // urls only | 176 // urls only |
| 171 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, false, tr
ue), | 177 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, false, tr
ue), |
| 172 expectedChildren); | 178 expectedChildren); |
| 173 // folders only | 179 // folders only |
| 174 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, true, fal
se), | 180 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, true, fal
se), |
| 175 new HashSet<BookmarkId>(Arrays.asList(folderAA))); | 181 new HashSet<BookmarkId>(Arrays.asList(folderAA))); |
| 176 // folders and urls | 182 // folders and urls |
| 177 expectedChildren.add(folderAA); | 183 expectedChildren.add(folderAA); |
| 178 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, true, tru
e), | 184 verifyBookmarkListNoOrder(mBookmarksModel.getChildIDs(folderA, true, tru
e), |
| 179 expectedChildren); | 185 expectedChildren); |
| 180 } | 186 } |
| 181 | 187 |
| 182 // Moved from BookmarksBridgeTest | 188 // Moved from BookmarksBridgeTest |
| 183 @UiThreadTest | 189 @UiThreadTest |
| 184 @SmallTest | 190 @SmallTest |
| 185 @Feature({"Bookmark"}) | 191 @Feature({"Bookmark"}) |
| 186 public void testAddBookmarksAndFolders() { | 192 public void testAddBookmarksAndFolders() { |
| 187 BookmarkId bookmarkA = mBookmarksModel.addBookmark(mDesktopNode, 0, "a",
"http://a.com"); | 193 BookmarkId bookmarkA = addBookmark(mDesktopNode, 0, "a", "http://a.com")
; |
| 188 verifyBookmark(bookmarkA, "a", "http://a.com/", false, mDesktopNode); | 194 verifyBookmark(bookmarkA, "a", "http://a.com/", false, mDesktopNode); |
| 189 | 195 |
| 190 BookmarkId bookmarkB = mBookmarksModel.addBookmark(mOtherNode, 0, "b", "
http://b.com"); | 196 BookmarkId bookmarkB = addBookmark(mOtherNode, 0, "b", "http://b.com"); |
| 191 verifyBookmark(bookmarkB, "b", "http://b.com/", false, mOtherNode); | 197 verifyBookmark(bookmarkB, "b", "http://b.com/", false, mOtherNode); |
| 192 | 198 |
| 193 BookmarkId bookmarkC = mBookmarksModel.addBookmark(mMobileNode, 0, "c",
"http://c.com"); | 199 BookmarkId bookmarkC = addBookmark(mMobileNode, 0, "c", "http://c.com"); |
| 194 verifyBookmark(bookmarkC, "c", "http://c.com/", false, mMobileNode); | 200 verifyBookmark(bookmarkC, "c", "http://c.com/", false, mMobileNode); |
| 195 | 201 |
| 196 BookmarkId folderA = mBookmarksModel.addFolder(mOtherNode, 0, "fa"); | 202 BookmarkId folderA = mBookmarksModel.addFolder(mOtherNode, 0, "fa"); |
| 197 verifyBookmark(folderA, "fa", null, true, mOtherNode); | 203 verifyBookmark(folderA, "fa", null, true, mOtherNode); |
| 198 | 204 |
| 199 BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "fb"); | 205 BookmarkId folderB = mBookmarksModel.addFolder(mDesktopNode, 0, "fb"); |
| 200 verifyBookmark(folderB, "fb", null, true, mDesktopNode); | 206 verifyBookmark(folderB, "fb", null, true, mDesktopNode); |
| 201 | 207 |
| 202 BookmarkId folderC = mBookmarksModel.addFolder(mMobileNode, 0, "fc"); | 208 BookmarkId folderC = mBookmarksModel.addFolder(mMobileNode, 0, "fc"); |
| 203 verifyBookmark(folderC, "fc", null, true, mMobileNode); | 209 verifyBookmark(folderC, "fc", null, true, mMobileNode); |
| 204 | 210 |
| 205 BookmarkId bookmarkAA = mBookmarksModel.addBookmark(folderA, 0, "aa", "h
ttp://aa.com"); | 211 BookmarkId bookmarkAA = addBookmark(folderA, 0, "aa", "http://aa.com"); |
| 206 verifyBookmark(bookmarkAA, "aa", "http://aa.com/", false, folderA); | 212 verifyBookmark(bookmarkAA, "aa", "http://aa.com/", false, folderA); |
| 207 | 213 |
| 208 BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa"); | 214 BookmarkId folderAA = mBookmarksModel.addFolder(folderA, 0, "faa"); |
| 209 verifyBookmark(folderAA, "faa", null, true, folderA); | 215 verifyBookmark(folderAA, "faa", null, true, folderA); |
| 210 } | 216 } |
| 211 | 217 |
| 218 @UiThreadTest |
| 219 @SmallTest |
| 220 @CommandLineFlags.Add(ChromeSwitches.ENABLE_OFFLINE_PAGES) |
| 221 @Feature({"Bookmark"}) |
| 222 public void testOfflineBridgeLoaded() { |
| 223 assertTrue(mBookmarksModel.getOfflinePageBridge() != null); |
| 224 assertTrue(mBookmarksModel.getOfflinePageBridge().isOfflinePageModelLoad
ed()); |
| 225 } |
| 226 |
| 227 private BookmarkId addBookmark(final BookmarkId parent, final int index, fin
al String title, |
| 228 final String url) { |
| 229 final AtomicReference<BookmarkId> result = new AtomicReference<BookmarkI
d>(); |
| 230 final Semaphore semaphore = new Semaphore(0); |
| 231 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 232 @Override |
| 233 public void run() { |
| 234 mBookmarksModel.addBookmarkAsync(parent, index, title, url, null
, |
| 235 new AddBookmarkCallback() { |
| 236 @Override |
| 237 public void onBookmarkAdded(final BookmarkId bookmar
kId) { |
| 238 result.set(bookmarkId); |
| 239 semaphore.release(); |
| 240 } |
| 241 }); |
| 242 } |
| 243 }); |
| 244 try { |
| 245 if (semaphore.tryAcquire(TIMEOUT_MS, TimeUnit.MILLISECONDS)) { |
| 246 return result.get(); |
| 247 } else { |
| 248 return null; |
| 249 } |
| 250 } catch (InterruptedException e) { |
| 251 return null; |
| 252 } |
| 253 } |
| 254 |
| 212 private void verifyBookmark(BookmarkId idToVerify, String expectedTitle, | 255 private void verifyBookmark(BookmarkId idToVerify, String expectedTitle, |
| 213 String expectedUrl, boolean isFolder, BookmarkId expectedParent) { | 256 String expectedUrl, boolean isFolder, BookmarkId expectedParent) { |
| 214 assertNotNull(idToVerify); | 257 assertNotNull(idToVerify); |
| 215 BookmarkItem item = mBookmarksModel.getBookmarkById(idToVerify); | 258 BookmarkItem item = mBookmarksModel.getBookmarkById(idToVerify); |
| 216 assertEquals(expectedTitle, item.getTitle()); | 259 assertEquals(expectedTitle, item.getTitle()); |
| 217 assertEquals(isFolder, item.isFolder()); | 260 assertEquals(isFolder, item.isFolder()); |
| 218 if (!isFolder) assertEquals(expectedUrl, item.getUrl()); | 261 if (!isFolder) assertEquals(expectedUrl, item.getUrl()); |
| 219 assertEquals(expectedParent, item.getParentId()); | 262 assertEquals(expectedParent, item.getParentId()); |
| 220 } | 263 } |
| 221 | 264 |
| 222 /** | 265 /** |
| 223 * Before using this helper method, always make sure @param listToVerify doe
s not contain | 266 * Before using this helper method, always make sure @param listToVerify doe
s not contain |
| 224 * duplicates. | 267 * duplicates. |
| 225 */ | 268 */ |
| 226 private void verifyBookmarkListNoOrder(List<BookmarkId> listToVerify, | 269 private void verifyBookmarkListNoOrder(List<BookmarkId> listToVerify, |
| 227 HashSet<BookmarkId> expectedIds) { | 270 HashSet<BookmarkId> expectedIds) { |
| 228 HashSet<BookmarkId> expectedIdsCopy = new HashSet<>(expectedIds); | 271 HashSet<BookmarkId> expectedIdsCopy = new HashSet<>(expectedIds); |
| 229 assertEquals(expectedIdsCopy.size(), listToVerify.size()); | 272 assertEquals(expectedIdsCopy.size(), listToVerify.size()); |
| 230 for (BookmarkId id : listToVerify) { | 273 for (BookmarkId id : listToVerify) { |
| 231 assertNotNull(id); | 274 assertNotNull(id); |
| 232 assertTrue("List contains wrong element: ", expectedIdsCopy.contains
(id)); | 275 assertTrue("List contains wrong element: ", expectedIdsCopy.contains
(id)); |
| 233 expectedIdsCopy.remove(id); | 276 expectedIdsCopy.remove(id); |
| 234 } | 277 } |
| 235 assertTrue("List does not contain some expected bookmarks: ", expectedId
sCopy.isEmpty()); | 278 assertTrue("List does not contain some expected bookmarks: ", expectedId
sCopy.isEmpty()); |
| 236 } | 279 } |
| 237 } | 280 } |
| OLD | NEW |