| 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.
|
| - */
|
| -@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.
|
| -}
|
|
|