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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java

Issue 2362033002: Showing previews UI for Offline Previews (Closed)
Patch Set: java fixes for mocking methods Created 4 years, 2 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/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java
index 0b762becd54587c5c5f10ad7592218c42161ec2a..637f270589ef2b929181a54ccbb36a7a8d31908e 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/offlinepages/OfflinePageTabObserverTest.java
@@ -9,34 +9,36 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import android.content.Context;
-import org.chromium.base.BaseChromiumApplication;
-import org.chromium.base.test.util.Feature;
-import org.chromium.chrome.browser.snackbar.SnackbarManager;
-import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.testing.local.LocalRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.multidex.ShadowMultiDex;
+import org.chromium.base.BaseChromiumApplication;
+import org.chromium.base.test.util.Feature;
+import org.chromium.chrome.browser.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
+import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.testing.local.LocalRobolectricTestRunner;
+
/**
* Unit tests for OfflinePageUtils.
*/
@RunWith(LocalRobolectricTestRunner.class)
@Config(manifest = Config.NONE, application = BaseChromiumApplication.class,
shadows = {ShadowMultiDex.class})
public class OfflinePageTabObserverTest {
// Using a null tab, as it cannot be mocked. TabHelper will help return proper mocked responses.
private static final int TAB_ID = 77;
@@ -48,20 +50,21 @@ public class OfflinePageTabObserverTest {
private OfflinePageTabObserver createObserver() {
OfflinePageTabObserver observer =
spy(new OfflinePageTabObserver(mContext, mSnackbarManager, mSnackbarController));
// Mocking out all of the calls that touch on NetworkChangeNotifier, which we cannot
// directly mock out.
doNothing().when(observer).startObservingNetworkChanges();
doNothing().when(observer).stopObservingNetworkChanges();
// TODO(fgorski): This call has to be mocked out until we update OfflinePageUtils.
// It also goes to NetworkChangeNotifier from there.
doReturn(false).when(observer).isConnected();
+ doReturn(false).when(observer).isShowingOfflinePreview(any(Tab.class));
// TODO(fgorski): This call has to be mocked out until we update OfflinePageUtils.
doNothing().when(observer).showReloadSnackbar(any(Tab.class));
return observer;
}
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
// Setting up a mock tab. These are the values common to most tests, but individual
@@ -239,20 +242,42 @@ public class OfflinePageTabObserverTest {
showTab(observer);
verify(observer, times(1)).showReloadSnackbar(any(Tab.class));
assertTrue(observer.isObservingTab(mTab));
assertTrue(observer.isLoadedTab(mTab));
assertTrue(observer.wasSnackbarSeen(mTab));
}
@Test
@Feature({"OfflinePages"})
+ public void testDontShowPreviewSnackbar_onShown() {
+ OfflinePageTabObserver observer = createObserver();
+
+ connect(observer, false);
+ hideTab(null);
+
+ observer.startObservingTab(mTab);
+ doReturn(true).when(observer).isShowingOfflinePreview(mTab);
+ observer.onPageLoadFinished(mTab);
+
+ verify(observer, times(0)).showReloadSnackbar(any(Tab.class));
+ assertFalse(observer.wasSnackbarSeen(mTab));
+ showTab(observer);
+
+ verify(observer, times(0)).showReloadSnackbar(any(Tab.class));
+ assertTrue(observer.isObservingTab(mTab));
+ assertTrue(observer.isLoadedTab(mTab));
+ assertFalse(observer.wasSnackbarSeen(mTab));
+ }
+
+ @Test
+ @Feature({"OfflinePages"})
public void testOnShown_notConnected() {
OfflinePageTabObserver observer = createObserver();
disconnect(observer, false);
hideTab(null);
observer.startObservingTab(mTab);
observer.onPageLoadFinished(mTab);
observer.onShown(mTab);

Powered by Google App Engine
This is Rietveld 408576698