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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java

Issue 2505763002: [NTP] Use OfflineId instead of GUID to identify offline pages. (Closed)
Patch Set: handle NTP descruction in callbacks. Created 4 years, 1 month 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
« no previous file with comments | « chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java
index 9e33abc418df045279a14f893d60506ebddec537..93dc4e666cde07ed6f75205a698d78b918f8c470 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java
@@ -11,6 +11,8 @@ import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -31,6 +33,8 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import org.robolectric.annotation.Config;
import org.chromium.base.Callback;
@@ -39,11 +43,10 @@ import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
import org.chromium.chrome.browser.ntp.snippets.CategoryStatus;
import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource;
-import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadBridge;
-import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadItem;
+import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
+import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
import org.chromium.testing.local.LocalRobolectricTestRunner;
-import java.util.Arrays;
import java.util.List;
import java.util.Set;
@@ -55,7 +58,8 @@ import java.util.Set;
public class SuggestionsSectionTest {
@Mock private NodeParent mParent;
- @Mock private OfflinePageDownloadBridge mBridge;
+ @Mock
+ private OfflinePageBridge mBridge;
@Mock private NewTabPageManager mManager;
// This is a member so we can initialize it with the annotation and capture the generic type.
@@ -193,36 +197,74 @@ public class SuggestionsSectionTest {
@Feature({"Ntp"})
public void testOfflineStatus() {
final int suggestionCount = 3;
- List<SnippetArticle> snippets = createDummySuggestions(suggestionCount);
- assertNull(snippets.get(0).getOfflinePageDownloadGuid());
- assertNull(snippets.get(1).getOfflinePageDownloadGuid());
- assertNull(snippets.get(2).getOfflinePageDownloadGuid());
-
- OfflinePageDownloadItem item0 = createOfflineItem(snippets.get(0).mUrl, "guid0");
- OfflinePageDownloadItem item1 = createOfflineItem(snippets.get(1).mAmpUrl, "guid1");
-
- when(mBridge.getAllItems()).thenReturn(Arrays.asList(item0, item1));
+ final List<SnippetArticle> snippets = createDummySuggestions(suggestionCount);
+ assertNull(snippets.get(0).getOfflinePageOfflineId());
+ assertNull(snippets.get(1).getOfflinePageOfflineId());
+ assertNull(snippets.get(2).getOfflinePageOfflineId());
+
+ final OfflinePageItem item0 = createOfflinePageItem(snippets.get(0).mUrl, 0L);
+ final OfflinePageItem item1 = createOfflinePageItem(snippets.get(1).mAmpUrl, 1L);
+
+ // TODO(vitaliii): Create FakeOfflinePageBridge instead of using Mockito here.
+ when(mBridge.isOfflinePageModelLoaded()).thenReturn(true);
+ doAnswer(new Answer<Void>() {
+ public Void answer(InvocationOnMock invocation) {
+ Object[] args = invocation.getArguments();
+ String url = (String) args[0];
+ Callback<OfflinePageItem> callback = (Callback<OfflinePageItem>) args[2];
+ if (url.equals(snippets.get(0).mUrl) || url.equals(snippets.get(0).mAmpUrl)) {
+ callback.onResult(item0);
+ return null;
+ }
+ if (url.equals(snippets.get(1).mUrl) || url.equals(snippets.get(1).mAmpUrl)) {
+ callback.onResult(item1);
+ return null;
+ }
+ callback.onResult(null);
+ return null;
+ }
+ })
+ .when(mBridge)
+ .selectPageForOnlineUrl(any(String.class), eq(0), any(Callback.class));
SuggestionsSection section = createSection(true, mParent, mManager, mBridge);
section.addSuggestions(snippets, CategoryStatus.AVAILABLE);
// Check that we pick up the correct information.
- assertEquals(snippets.get(0).getOfflinePageDownloadGuid(), "guid0");
- assertEquals(snippets.get(1).getOfflinePageDownloadGuid(), "guid1");
- assertNull(snippets.get(2).getOfflinePageDownloadGuid());
-
- OfflinePageDownloadItem item2 = createOfflineItem(snippets.get(2).mUrl, "guid2");
- when(mBridge.getAllItems()).thenReturn(Arrays.asList(item1, item2));
-
- ArgumentCaptor<OfflinePageDownloadBridge.Observer> observer =
- ArgumentCaptor.forClass(OfflinePageDownloadBridge.Observer.class);
+ assertEquals(Long.valueOf(0L), snippets.get(0).getOfflinePageOfflineId());
+ assertEquals(Long.valueOf(1L), snippets.get(1).getOfflinePageOfflineId());
+ assertNull(snippets.get(2).getOfflinePageOfflineId());
+
+ final OfflinePageItem item2 = createOfflinePageItem(snippets.get(2).mUrl, 2L);
+ doAnswer(new Answer<Void>() {
+ public Void answer(InvocationOnMock invocation) {
+ Object[] args = invocation.getArguments();
+ String url = (String) args[0];
+ Callback<OfflinePageItem> callback = (Callback<OfflinePageItem>) args[2];
+ if (url.equals(snippets.get(1).mUrl) || url.equals(snippets.get(1).mAmpUrl)) {
+ callback.onResult(item1);
+ return null;
+ }
+ if (url.equals(snippets.get(2).mUrl) || url.equals(snippets.get(2).mAmpUrl)) {
+ callback.onResult(item2);
+ return null;
+ }
+ callback.onResult(null);
+ return null;
+ }
+ })
+ .when(mBridge)
+ .selectPageForOnlineUrl(any(String.class), eq(0), any(Callback.class));
+
+ ArgumentCaptor<OfflinePageBridge.OfflinePageModelObserver> observer =
+ ArgumentCaptor.forClass(OfflinePageBridge.OfflinePageModelObserver.class);
verify(mBridge).addObserver(observer.capture());
- // Check that a change in OfflinePageDownloadBridge state forces an update.
- observer.getValue().onItemsLoaded();
- assertNull(snippets.get(0).getOfflinePageDownloadGuid());
- assertEquals(snippets.get(1).getOfflinePageDownloadGuid(), "guid1");
- assertEquals(snippets.get(2).getOfflinePageDownloadGuid(), "guid2");
+ // Check that a change in OfflinePageBridge state forces an update.
+ observer.getValue().offlinePageModelLoaded();
+ assertNull(snippets.get(0).getOfflinePageOfflineId());
+ assertEquals(Long.valueOf(1L), snippets.get(1).getOfflinePageOfflineId());
+ assertEquals(Long.valueOf(2L), snippets.get(2).getOfflinePageOfflineId());
}
@Test
@@ -342,8 +384,8 @@ public class SuggestionsSectionTest {
assertFalse(section.getProgressItemForTesting().isVisible());
}
- private OfflinePageDownloadItem createOfflineItem(String url, String guid) {
- return new OfflinePageDownloadItem(guid, url, "", "", 0, 0);
+ private OfflinePageItem createOfflinePageItem(String url, long offlineId) {
+ return new OfflinePageItem(url, offlineId, "", "", "", 0, 0, 0, 0);
}
private static void verifyAction(SuggestionsSection section, @ActionItem.Action int action) {
« no previous file with comments | « chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698