Index: chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManagerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManagerTest.java |
deleted file mode 100644 |
index c70e4ce1508ed0e3b09e2d07fac22530159adc14..0000000000000000000000000000000000000000 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManagerTest.java |
+++ /dev/null |
@@ -1,288 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.dom_distiller; |
- |
-import android.content.Context; |
-import android.support.test.InstrumentationRegistry; |
-import android.support.test.annotation.UiThreadTest; |
-import android.support.test.filters.SmallTest; |
-import android.support.test.rule.UiThreadTestRule; |
- |
-import org.junit.Assert; |
-import org.junit.Before; |
-import org.junit.Rule; |
-import org.junit.Test; |
-import org.junit.runner.RunWith; |
- |
-import org.chromium.base.test.util.Feature; |
-import org.chromium.base.test.util.RetryOnFailure; |
-import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChangeReason; |
-import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelContent; |
-import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager; |
-import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManagerWrapper; |
-import org.chromium.chrome.browser.compositor.bottombar.readermode.ReaderModeBarControl; |
-import org.chromium.chrome.browser.compositor.bottombar.readermode.ReaderModePanel; |
-import org.chromium.chrome.browser.compositor.scene_layer.ReaderModeSceneLayer; |
-import org.chromium.chrome.browser.tab.Tab; |
-import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
-import org.chromium.chrome.test.util.browser.tabmodel.MockTabModel.MockTabModelDelegate; |
-import org.chromium.chrome.test.util.browser.tabmodel.MockTabModelSelector; |
-import org.chromium.content_public.browser.WebContents; |
-import org.chromium.content_public.browser.WebContentsObserver; |
- |
-/** |
- * Tests logic in the ReaderModeManager. |
Theresa
2017/05/11 22:31:18
This class was mostly testing overlay panel behavi
mdjones
2017/05/12 19:13:10
Exclusively. It was testing all the interactions t
|
- */ |
-@RunWith(ChromeJUnit4ClassRunner.class) |
-public class ReaderModeManagerTest { |
- OverlayPanelManagerWrapper mPanelManager; |
- ReaderModeManagerWrapper mReaderManager; |
- MockReaderModePanel mPanel; |
- ReaderModeMockTabModelSelector mTabModelSelector; |
- |
- @Rule |
- public UiThreadTestRule mRule = new UiThreadTestRule(); |
- |
- /** |
- * A mock TabModelSelector for creating tabs. |
- */ |
- private static class ReaderModeMockTabModelSelector extends MockTabModelSelector { |
- public ReaderModeMockTabModelSelector() { |
- super(2, 0, |
- new MockTabModelDelegate() { |
- @Override |
- public Tab createTab(int id, boolean incognito) { |
- return new Tab(id, incognito, null); |
- } |
- }); |
- } |
- |
- @Override |
- public int getCurrentTabId() { |
- return 0; |
- } |
- } |
- |
- /** |
- * A wrapper for the ReaderModeManager; this is used for recording and triggering events |
- * manually. |
- */ |
- private static class ReaderModeManagerWrapper extends ReaderModeManager { |
- private int mRecordedCount; |
- private int mVisibleCount; |
- private boolean mShouldTrigger; |
- |
- public ReaderModeManagerWrapper(MockTabModelSelector selector) { |
- super(selector, null); |
- mShouldTrigger = true; |
- } |
- |
- @Override |
- protected void requestReaderPanelShow(StateChangeReason reason) { |
- // Skip tab checks and request the panel be shown. |
- if (mShouldTrigger) mReaderModePanel.requestPanelShow(reason); |
- } |
- |
- @Override |
- public WebContentsObserver createWebContentsObserver(WebContents webContents) { |
- // Do not attempt to create or attach a WebContentsObserver. |
- return null; |
- } |
- |
- @Override |
- protected boolean isDistillerHeuristicAlwaysTrue() { |
- return true; |
- } |
- |
- @Override |
- protected void recordPanelVisibilityForNavigation(boolean visible) { |
- mRecordedCount++; |
- mVisibleCount += visible ? 1 : 0; |
- } |
- |
- public void setShouldTrigger(boolean shouldTrigger) { |
- mShouldTrigger = shouldTrigger; |
- } |
- |
- public int getRecordedCount() { |
- return mRecordedCount; |
- } |
- |
- public int getVisibleCount() { |
- return mVisibleCount; |
- } |
- |
- public ReaderModeTabInfo getTabInfo(int id) { |
- return mTabStatusMap.get(id); |
- } |
- } |
- |
- /** |
- * Mock ReaderModePanel. |
- */ |
- private static class MockReaderModePanel extends ReaderModePanel { |
- public MockReaderModePanel(Context context, OverlayPanelManager manager) { |
- super(context, null, manager, null); |
- } |
- |
- @Override |
- public ReaderModeSceneLayer createNewReaderModeSceneLayer() { |
- return null; |
- } |
- |
- @Override |
- public void peekPanel(StateChangeReason reason) { |
- setHeightForTesting(1); |
- super.peekPanel(reason); |
- } |
- |
- @Override |
- protected ReaderModeBarControl getReaderModeBarControl() { |
- return new MockReaderModeBarControl(); |
- } |
- |
- /** |
- * This class is overridden to be completely inert; it would otherwise call many native |
- * methods. |
- */ |
- private static class MockReaderModeBarControl extends ReaderModeBarControl { |
- public MockReaderModeBarControl() { |
- super(null, null, null, null); |
- } |
- |
- @Override |
- public void setBarText(int stringId) {} |
- |
- @Override |
- public void inflate() {} |
- |
- @Override |
- public void invalidate() {} |
- } |
- |
- @Override |
- protected void initializeUiState() {} |
- |
- /** |
- * Override creation and destruction of the ContentViewCore as they rely on native methods. |
- */ |
- private static class MockOverlayPanelContent extends OverlayPanelContent { |
- public MockOverlayPanelContent() { |
- super(null, null, null); |
- } |
- |
- @Override |
- public void removeLastHistoryEntry(String url, long timeInMs) {} |
- } |
- } |
- |
- @Before |
- public void setUp() throws Exception { |
- mPanelManager = new OverlayPanelManagerWrapper(); |
- mTabModelSelector = new ReaderModeMockTabModelSelector(); |
- mReaderManager = new ReaderModeManagerWrapper(mTabModelSelector); |
- mPanel = new MockReaderModePanel( |
- InstrumentationRegistry.getInstrumentation().getTargetContext(), mPanelManager); |
- mReaderManager.setReaderModePanel(mPanel); |
- mPanel.setManagerDelegate(mReaderManager); |
- } |
- |
- // Start ReaderModeManager test suite. |
- |
- /** |
- * Tests that the panel behaves appropriately with infobar events. |
- */ |
- @Test |
- @SmallTest |
- @Feature({"ReaderModeManager"}) |
- @UiThreadTest |
- @RetryOnFailure |
- public void testInfoBarEvents() { |
- mPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
- |
- mReaderManager.onAddInfoBar(null, null, true); |
- Assert.assertEquals(1, mPanelManager.getRequestPanelShowCount()); |
- Assert.assertEquals(1, mPanelManager.getPanelHideCount()); |
- |
- mReaderManager.onRemoveInfoBar(null, null, true); |
- Assert.assertEquals(2, mPanelManager.getRequestPanelShowCount()); |
- Assert.assertEquals(1, mPanelManager.getPanelHideCount()); |
- } |
- |
- /** |
- * Tests that the panel behaves appropriately with fullscreen events. |
- */ |
- @Test |
- @SmallTest |
- @Feature({"ReaderModeManager"}) |
- @UiThreadTest |
- @RetryOnFailure |
- public void testFullscreenEvents() { |
- mPanel.requestPanelShow(StateChangeReason.UNKNOWN); |
- |
- mReaderManager.onToggleFullscreenMode(null, true); |
- Assert.assertEquals(1, mPanelManager.getRequestPanelShowCount()); |
- Assert.assertEquals(1, mPanelManager.getPanelHideCount()); |
- |
- mReaderManager.onToggleFullscreenMode(null, false); |
- Assert.assertEquals(2, mPanelManager.getRequestPanelShowCount()); |
- Assert.assertEquals(1, mPanelManager.getPanelHideCount()); |
- } |
- |
- /** |
- * Tests that the metric that tracks when the panel is visible is correctly recorded. |
- */ |
- @Test |
- @SmallTest |
- @Feature({"ReaderModeManager"}) |
- @UiThreadTest |
- @RetryOnFailure |
- public void testPanelOpenRecorded() { |
- Tab tab = new Tab(0, false, null); |
- mReaderManager.onShown(tab); |
- |
- Assert.assertEquals(1, mReaderManager.getRecordedCount()); |
- Assert.assertEquals(1, mReaderManager.getVisibleCount()); |
- Assert.assertTrue(null != mReaderManager.getTabInfo(0)); |
- |
- // Make sure recording the panel showing only occurs once per navigation. |
- mReaderManager.onShown(tab); |
- |
- Assert.assertEquals(1, mReaderManager.getRecordedCount()); |
- Assert.assertEquals(1, mReaderManager.getVisibleCount()); |
- |
- // Destroy shouldn't record either if the panel showed. |
- mReaderManager.onDestroyed(tab); |
- |
- Assert.assertEquals(1, mReaderManager.getRecordedCount()); |
- Assert.assertEquals(1, mReaderManager.getVisibleCount()); |
- Assert.assertTrue(null == mReaderManager.getTabInfo(0)); |
- } |
- |
- /** |
- * Tests that a tab closing records the panel was not visible. |
- */ |
- @Test |
- @SmallTest |
- @Feature({"ReaderModeManager"}) |
- @UiThreadTest |
- @RetryOnFailure |
- public void testPanelCloseRecorded() { |
- Tab tab = new Tab(0, false, null); |
- mReaderManager.setShouldTrigger(false); |
- mReaderManager.onShown(tab); |
- mReaderManager.onDestroyed(tab); |
- |
- Assert.assertEquals(1, mReaderManager.getRecordedCount()); |
- Assert.assertEquals(0, mReaderManager.getVisibleCount()); |
- Assert.assertTrue(null == mReaderManager.getTabInfo(0)); |
- } |
- |
- // TODO(mdjones): Test add/remove infobar while fullscreen is enabled. |
- // TODO(mdjones): Test onclosebuttonpressed disables Reader Mode for a particular tab. |
- // TODO(mdjones): Test onorientationchanged closes and re-opens panel. |
- // TODO(mdjones): Test tab events. |
- // TODO(mdjones): Test distillability callback. |
-} |