| 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);
|
|
|