Commit 9ee01d32 authored by Wei-Yin Chen (陳威尹)'s avatar Wei-Yin Chen (陳威尹) Committed by Commit Bot

Add end-to-end Reader mode tests for incognito

Bug: 1070295
Change-Id: I2fd3ed9e12abe360d7e79739d0a06d9d61ff6a89
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2145251
Commit-Queue: Wei-Yin Chen (陳威尹) <wychen@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#758635}
parent 98e8b645
...@@ -36,16 +36,13 @@ import java.util.concurrent.TimeoutException; ...@@ -36,16 +36,13 @@ import java.util.concurrent.TimeoutException;
* Tests for making sure the distillability service is communicating correctly. * Tests for making sure the distillability service is communicating correctly.
*/ */
@RunWith(ChromeJUnit4ClassRunner.class) @RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
"enable-dom-distiller", "reader-mode-heuristics=alwaystrue",
ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
})
public class DistillabilityServiceTest { public class DistillabilityServiceTest {
@Rule @Rule
public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
new ChromeActivityTestRule<>(ChromeActivity.class); new ChromeActivityTestRule<>(ChromeActivity.class);
private static final String TEST_PAGE = "/chrome/test/data/android/simple.html"; private static final String TEST_PAGE = "/chrome/test/data/dom_distiller/simple_article.html";
@Before @Before
public void setUp() throws InterruptedException { public void setUp() throws InterruptedException {
......
...@@ -23,7 +23,7 @@ import org.junit.runner.RunWith; ...@@ -23,7 +23,7 @@ import org.junit.runner.RunWith;
import org.chromium.base.ApplicationStatus; import org.chromium.base.ApplicationStatus;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.Restriction; import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.customtabs.CustomTabActivity; import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
...@@ -53,8 +53,8 @@ import java.util.concurrent.atomic.AtomicReference; ...@@ -53,8 +53,8 @@ import java.util.concurrent.atomic.AtomicReference;
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
public class ReaderModeTest { public class ReaderModeTest {
@Rule @Rule
public ChromeActivityTestRule<ChromeActivity> mActivityTestRule = public ChromeActivityTestRule<ChromeTabbedActivity> mActivityTestRule =
new ChromeActivityTestRule<>(ChromeActivity.class); new ChromeActivityTestRule<>(ChromeTabbedActivity.class);
private static final String TEST_PAGE = "/chrome/test/data/dom_distiller/simple_article.html"; private static final String TEST_PAGE = "/chrome/test/data/dom_distiller/simple_article.html";
private static final String TITLE = "Test Page Title"; private static final String TITLE = "Test Page Title";
...@@ -62,11 +62,13 @@ public class ReaderModeTest { ...@@ -62,11 +62,13 @@ public class ReaderModeTest {
@SuppressWarnings("FieldCanBeLocal") @SuppressWarnings("FieldCanBeLocal")
private EmbeddedTestServer mTestServer; private EmbeddedTestServer mTestServer;
private String mURL;
@Before @Before
public void setUp() throws InterruptedException, TimeoutException { public void setUp() throws InterruptedException, TimeoutException {
mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext());
mActivityTestRule.startMainActivityWithURL(mTestServer.getURL(TEST_PAGE)); mURL = mTestServer.getURL(TEST_PAGE);
mActivityTestRule.startMainActivityWithURL(mURL);
} }
@After @After
...@@ -88,10 +90,36 @@ public class ReaderModeTest { ...@@ -88,10 +90,36 @@ public class ReaderModeTest {
String innerHtml = getInnerHtml(originalTab); String innerHtml = getInnerHtml(originalTab);
assertThat(innerHtml).doesNotContain("article-header"); assertThat(innerHtml).doesNotContain("article-header");
TestThreadUtils.runOnUiThreadBlocking(() TestThreadUtils.runOnUiThreadBlocking(() -> {
-> mActivityTestRule.getActivity() mActivityTestRule.getActivity().getReaderModeManager().activateReaderMode(originalTab);
.getReaderModeManager() });
.activateReaderMode(originalTab)); CustomTabActivity customTabActivity = waitForCustomTabActivity();
CriteriaHelper.pollUiThread(
Criteria.checkThat(customTabActivity::getActivityTab, notNullValue()));
@NonNull
Tab distillerViewerTab = Objects.requireNonNull(customTabActivity.getActivityTab());
waitForDistillation(TITLE, distillerViewerTab);
innerHtml = getInnerHtml(distillerViewerTab);
assertThat(innerHtml).contains("article-header");
assertThat(innerHtml).contains(CONTENT);
}
@Test
@MediumTest
@Features.EnableFeatures(ChromeFeatureList.READER_MODE_IN_CCT)
public void testReaderModeInCCT_Incognito() throws TimeoutException {
ChromeTabUtils.fullyLoadUrlInNewTab(InstrumentationRegistry.getInstrumentation(),
mActivityTestRule.getActivity(), mURL, true);
Tab originalTab = mActivityTestRule.getActivity().getActivityTab();
assertThat(originalTab.isIncognito()).isEqualTo(true);
String innerHtml = getInnerHtml(originalTab);
assertThat(innerHtml).doesNotContain("article-header");
TestThreadUtils.runOnUiThreadBlocking(() -> {
mActivityTestRule.getActivity().getReaderModeManager().activateReaderMode(originalTab);
});
CustomTabActivity customTabActivity = waitForCustomTabActivity(); CustomTabActivity customTabActivity = waitForCustomTabActivity();
CriteriaHelper.pollUiThread( CriteriaHelper.pollUiThread(
Criteria.checkThat(customTabActivity::getActivityTab, notNullValue())); Criteria.checkThat(customTabActivity::getActivityTab, notNullValue()));
...@@ -112,10 +140,9 @@ public class ReaderModeTest { ...@@ -112,10 +140,9 @@ public class ReaderModeTest {
String innerHtml = getInnerHtml(tab); String innerHtml = getInnerHtml(tab);
assertThat(innerHtml).doesNotContain("article-header"); assertThat(innerHtml).doesNotContain("article-header");
TestThreadUtils.runOnUiThreadBlocking(() TestThreadUtils.runOnUiThreadBlocking(() -> {
-> mActivityTestRule.getActivity() mActivityTestRule.getActivity().getReaderModeManager().activateReaderMode(tab);
.getReaderModeManager() });
.activateReaderMode(tab));
waitForDistillation(TITLE, mActivityTestRule.getActivity().getActivityTab()); waitForDistillation(TITLE, mActivityTestRule.getActivity().getActivityTab());
innerHtml = getInnerHtml(tab); innerHtml = getInnerHtml(tab);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment