| Index: chrome/android/javatests/src/org/chromium/chrome/browser/HistoryUITest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/HistoryUITest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/HistoryUITest.java
|
| index 248e44b0bded815872bb0dc50383aec0ec11ba3f..0607cf41846555f622e14cef4dcb1facd43e7351 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/HistoryUITest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/HistoryUITest.java
|
| @@ -5,17 +5,9 @@
|
| package org.chromium.chrome.browser;
|
|
|
| import android.preference.PreferenceScreen;
|
| -import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.LargeTest;
|
| import android.support.test.filters.MediumTest;
|
| import android.util.JsonReader;
|
| -
|
| -import org.junit.After;
|
| -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.ThreadUtils;
|
| import org.chromium.base.test.util.CallbackHelper;
|
| @@ -29,8 +21,7 @@
|
| import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
| import org.chromium.chrome.browser.tab.Tab;
|
| import org.chromium.chrome.browser.tab.TabObserver;
|
| -import org.chromium.chrome.test.ChromeActivityTestRule;
|
| -import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| +import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| import org.chromium.chrome.test.util.ActivityUtils;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| @@ -46,29 +37,31 @@
|
| /**
|
| * UI Tests for the history page.
|
| */
|
| -@RunWith(ChromeJUnit4ClassRunner.class)
|
| -@CommandLineFlags.Add({"disable-features=AndroidHistoryManager",
|
| - ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| - ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG})
|
| -public class HistoryUITest {
|
| - @Rule
|
| - public ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
|
| - new ChromeActivityTestRule<>(ChromeActivity.class);
|
| -
|
| +@CommandLineFlags.Add("disable-features=AndroidHistoryManager")
|
| +public class HistoryUITest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| private static final String HISTORY_URL = "chrome://history-frame/";
|
|
|
| private EmbeddedTestServer mTestServer;
|
|
|
| - @Before
|
| - public void setUp() throws Exception {
|
| - mActivityTestRule.startMainActivityOnBlankPage();
|
| - mTestServer = EmbeddedTestServer.createAndStartServer(
|
| - InstrumentationRegistry.getInstrumentation().getContext());
|
| - }
|
| -
|
| - @After
|
| - public void tearDown() throws Exception {
|
| + public HistoryUITest() {
|
| + super(ChromeActivity.class);
|
| + }
|
| +
|
| + @Override
|
| + protected void setUp() throws Exception {
|
| + super.setUp();
|
| + mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
|
| + }
|
| +
|
| + @Override
|
| + protected void tearDown() throws Exception {
|
| mTestServer.stopAndDestroyServer();
|
| + super.tearDown();
|
| + }
|
| +
|
| + @Override
|
| + public void startMainActivity() throws InterruptedException {
|
| + startMainActivityOnBlankPage();
|
| }
|
|
|
| private static class HistoryItem {
|
| @@ -82,17 +75,15 @@
|
| }
|
|
|
| private HistoryItem[] getHistoryContents() throws InterruptedException, TimeoutException {
|
| - InstrumentationRegistry.getInstrumentation().waitForIdleSync();
|
| - String jsResults = mActivityTestRule.runJavaScriptCodeInCurrentTab(
|
| - new StringBuilder()
|
| - .append("var rawResults = document.querySelectorAll('.title');\n")
|
| - .append("var results = [];\n")
|
| - .append("for (i = 0; i < rawResults.length; ++i) {\n")
|
| - .append(" results.push([rawResults[i].childNodes[0].href,\n")
|
| - .append(" rawResults[i].childNodes[0].childNodes[0].textContent]);\n")
|
| - .append("}\n")
|
| - .append("results")
|
| - .toString());
|
| + getInstrumentation().waitForIdleSync();
|
| + String jsResults = runJavaScriptCodeInCurrentTab(new StringBuilder()
|
| + .append("var rawResults = document.querySelectorAll('.title');\n")
|
| + .append("var results = [];\n")
|
| + .append("for (i = 0; i < rawResults.length; ++i) {\n")
|
| + .append(" results.push([rawResults[i].childNodes[0].href,\n")
|
| + .append(" rawResults[i].childNodes[0].childNodes[0].textContent]);\n")
|
| + .append("}\n")
|
| + .append("results").toString());
|
|
|
| JsonReader jsonReader = new JsonReader(new StringReader(jsResults));
|
| Vector<HistoryItem> results = new Vector<HistoryItem>();
|
| @@ -100,18 +91,18 @@
|
| jsonReader.beginArray();
|
| while (jsonReader.hasNext()) {
|
| jsonReader.beginArray();
|
| - Assert.assertTrue(jsonReader.hasNext());
|
| + assertTrue(jsonReader.hasNext());
|
| String url = jsonReader.nextString();
|
| - Assert.assertTrue(jsonReader.hasNext());
|
| + assertTrue(jsonReader.hasNext());
|
| String title = jsonReader.nextString();
|
| - Assert.assertFalse(jsonReader.hasNext());
|
| + assertFalse(jsonReader.hasNext());
|
| jsonReader.endArray();
|
| results.add(new HistoryItem(url, title));
|
| }
|
| jsonReader.endArray();
|
| jsonReader.close();
|
| } catch (IOException ioe) {
|
| - Assert.fail("Failed to evaluate JavaScript: " + jsResults + "\n" + ioe);
|
| + fail("Failed to evaluate JavaScript: " + jsResults + "\n" + ioe);
|
| }
|
|
|
| HistoryItem[] history = new HistoryItem[results.size()];
|
| @@ -121,7 +112,7 @@
|
|
|
| private void removeSelectedHistoryEntryAtIndex(int index)
|
| throws InterruptedException, TimeoutException {
|
| - mActivityTestRule.runJavaScriptCodeInCurrentTab(
|
| + runJavaScriptCodeInCurrentTab(
|
| "document.getElementsByClassName('remove-entry')[" + index + "].click();");
|
| }
|
|
|
| @@ -155,20 +146,18 @@
|
| });
|
| }
|
|
|
| - @Test
|
| @MediumTest
|
| @Feature({"History"})
|
| @RetryOnFailure
|
| public void testSearchHistory() throws InterruptedException, TimeoutException {
|
| // Introduce some entries in the history page.
|
| - mActivityTestRule.loadUrl(mTestServer.getURL("/chrome/test/data/android/about.html"));
|
| - mActivityTestRule.loadUrl(
|
| - mTestServer.getURL("/chrome/test/data/android/get_title_test.html"));
|
| - mActivityTestRule.loadUrl(HISTORY_URL);
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 2);
|
| + loadUrl(mTestServer.getURL("/chrome/test/data/android/about.html"));
|
| + loadUrl(mTestServer.getURL("/chrome/test/data/android/get_title_test.html"));
|
| + loadUrl(HISTORY_URL);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 2);
|
|
|
| // Search for one of them.
|
| - Tab tab = mActivityTestRule.getActivity().getActivityTab();
|
| + Tab tab = getActivity().getActivityTab();
|
| final CallbackHelper loadCallback = new CallbackHelper();
|
| TabObserver observer = new EmptyTabObserver() {
|
| @Override
|
| @@ -179,20 +168,19 @@
|
| }
|
| };
|
| tab.addObserver(observer);
|
| - mActivityTestRule.runJavaScriptCodeInCurrentTab("historyView.setSearch('about')");
|
| + runJavaScriptCodeInCurrentTab("historyView.setSearch('about')");
|
| loadCallback.waitForCallback(0);
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 1);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 1);
|
|
|
| // Delete the search term.
|
| - mActivityTestRule.runJavaScriptCodeInCurrentTab("historyView.setSearch('')");
|
| + runJavaScriptCodeInCurrentTab("historyView.setSearch('')");
|
| loadCallback.waitForCallback(1);
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 2);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 2);
|
| tab.removeObserver(observer);
|
| }
|
|
|
| // @LargeTest
|
| // @Feature({"History"})
|
| - @Test
|
| @DisabledTest
|
| public void testRemovingEntries() throws InterruptedException, TimeoutException {
|
| // Urls will be visited in reverse order to preserve the array ordering
|
| @@ -204,69 +192,64 @@
|
|
|
| String[] testTitles = new String[testUrls.length];
|
| for (int i = testUrls.length - 1; i >= 0; --i) {
|
| - mActivityTestRule.loadUrl(testUrls[i]);
|
| - testTitles[i] = mActivityTestRule.getActivity().getActivityTab().getTitle();
|
| + loadUrl(testUrls[i]);
|
| + testTitles[i] = getActivity().getActivityTab().getTitle();
|
| }
|
|
|
| // Check that the history page contains the visited pages.
|
| - mActivityTestRule.loadUrl(HISTORY_URL);
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 2);
|
| + loadUrl(HISTORY_URL);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 2);
|
|
|
| HistoryItem[] history = getHistoryContents();
|
| for (int i = 0; i < testUrls.length; ++i) {
|
| - Assert.assertEquals(testUrls[i], history[i].url);
|
| - Assert.assertEquals(testTitles[i], history[i].title);
|
| + assertEquals(testUrls[i], history[i].url);
|
| + assertEquals(testTitles[i], history[i].title);
|
| }
|
|
|
| // Remove the first entry from history.
|
| - Assert.assertTrue(history.length >= 1);
|
| + assertTrue(history.length >= 1);
|
| removeSelectedHistoryEntryAtIndex(0);
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 1);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 1);
|
|
|
| // Check that now the first result is the second visited page.
|
| history = getHistoryContents();
|
| - Assert.assertEquals(testUrls[1], history[0].url);
|
| - Assert.assertEquals(testTitles[1], history[0].title);
|
| - }
|
| -
|
| - @Test
|
| + assertEquals(testUrls[1], history[0].url);
|
| + assertEquals(testTitles[1], history[0].title);
|
| + }
|
| +
|
| @LargeTest
|
| @Feature({"History"})
|
| @RetryOnFailure
|
| public void testClearBrowsingData() throws InterruptedException, TimeoutException {
|
| // Introduce some entries in the history page.
|
| - mActivityTestRule.loadUrl(mTestServer.getURL("/chrome/test/data/android/google.html"));
|
| - mActivityTestRule.loadUrl(mTestServer.getURL("/chrome/test/data/android/about.html"));
|
| - mActivityTestRule.loadUrl(HISTORY_URL);
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 2);
|
| + loadUrl(mTestServer.getURL("/chrome/test/data/android/google.html"));
|
| + loadUrl(mTestServer.getURL("/chrome/test/data/android/about.html"));
|
| + loadUrl(HISTORY_URL);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 2);
|
|
|
| // Trigger cleaning up all the browsing data. JS finishing events will make it synchronous
|
| // to us.
|
| final Preferences prefActivity = ActivityUtils.waitForActivity(
|
| - InstrumentationRegistry.getInstrumentation(), Preferences.class, new Runnable() {
|
| + getInstrumentation(), Preferences.class, new Runnable() {
|
| @Override
|
| public void run() {
|
| try {
|
| - mActivityTestRule.runJavaScriptCodeInCurrentTab(
|
| - "openClearBrowsingData()");
|
| + runJavaScriptCodeInCurrentTab("openClearBrowsingData()");
|
| } catch (InterruptedException e) {
|
| - Assert.fail("Exception occurred while attempting to open clear browing"
|
| - + " data");
|
| + fail("Exception occurred while attempting to open clear browing data");
|
| } catch (TimeoutException e) {
|
| - Assert.fail("Exception occurred while attempting to open clear browing"
|
| - + " data");
|
| + fail("Exception occurred while attempting to open clear browing data");
|
| }
|
| }
|
| });
|
| - Assert.assertNotNull("Could not find the preferences activity", prefActivity);
|
| + assertNotNull("Could not find the preferences activity", prefActivity);
|
|
|
| final ClearBrowsingDataPreferences clearBrowsingFragment =
|
| (ClearBrowsingDataPreferences) prefActivity.getFragmentForTest();
|
| - Assert.assertNotNull("Could not find clear browsing data fragment", clearBrowsingFragment);
|
| + assertNotNull("Could not find clear browsing data fragment", clearBrowsingFragment);
|
|
|
| final ChromeActivity mainActivity = ActivityUtils.waitForActivity(
|
| - InstrumentationRegistry.getInstrumentation(),
|
| - mActivityTestRule.getActivity().getClass(), new Runnable() {
|
| + getInstrumentation(), getActivity().getClass(), new Runnable() {
|
| @Override
|
| public void run() {
|
| ThreadUtils.runOnUiThread(new Runnable() {
|
| @@ -283,7 +266,7 @@
|
| });
|
| }
|
| });
|
| - Assert.assertNotNull("Main never resumed", mainActivity);
|
| + assertNotNull("Main never resumed", mainActivity);
|
| CriteriaHelper.pollUiThread(new Criteria("Main tab never restored") {
|
| @Override
|
| public boolean isSatisfied() {
|
| @@ -294,6 +277,6 @@
|
| });
|
| JavaScriptUtils.executeJavaScriptAndWaitForResult(
|
| mainActivity.getCurrentContentViewCore().getWebContents(), "reloadHistory()");
|
| - waitForResultCount(mActivityTestRule.getActivity().getCurrentContentViewCore(), 0);
|
| + waitForResultCount(getActivity().getCurrentContentViewCore(), 0);
|
| }
|
| }
|
|
|