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 |
deleted file mode 100644 |
index 0607cf41846555f622e14cef4dcb1facd43e7351..0000000000000000000000000000000000000000 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/HistoryUITest.java |
+++ /dev/null |
@@ -1,282 +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; |
- |
-import android.preference.PreferenceScreen; |
-import android.support.test.filters.LargeTest; |
-import android.support.test.filters.MediumTest; |
-import android.util.JsonReader; |
- |
-import org.chromium.base.ThreadUtils; |
-import org.chromium.base.test.util.CallbackHelper; |
-import org.chromium.base.test.util.CommandLineFlags; |
-import org.chromium.base.test.util.DisabledTest; |
-import org.chromium.base.test.util.Feature; |
-import org.chromium.base.test.util.RetryOnFailure; |
-import org.chromium.chrome.browser.preferences.ButtonPreference; |
-import org.chromium.chrome.browser.preferences.Preferences; |
-import org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataPreferences; |
-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.ChromeActivityTestCaseBase; |
-import org.chromium.chrome.test.util.ActivityUtils; |
-import org.chromium.content.browser.ContentViewCore; |
-import org.chromium.content.browser.test.util.Criteria; |
-import org.chromium.content.browser.test.util.CriteriaHelper; |
-import org.chromium.content.browser.test.util.JavaScriptUtils; |
-import org.chromium.net.test.EmbeddedTestServer; |
- |
-import java.io.IOException; |
-import java.io.StringReader; |
-import java.util.Vector; |
-import java.util.concurrent.TimeoutException; |
- |
-/** |
- * UI Tests for the history page. |
- */ |
-@CommandLineFlags.Add("disable-features=AndroidHistoryManager") |
-public class HistoryUITest extends ChromeActivityTestCaseBase<ChromeActivity> { |
- private static final String HISTORY_URL = "chrome://history-frame/"; |
- |
- private EmbeddedTestServer mTestServer; |
- |
- 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 { |
- public final String url; |
- public final String title; |
- |
- HistoryItem(String url, String title) { |
- this.url = url; |
- this.title = title; |
- } |
- } |
- |
- private HistoryItem[] getHistoryContents() throws InterruptedException, TimeoutException { |
- 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>(); |
- try { |
- jsonReader.beginArray(); |
- while (jsonReader.hasNext()) { |
- jsonReader.beginArray(); |
- assertTrue(jsonReader.hasNext()); |
- String url = jsonReader.nextString(); |
- assertTrue(jsonReader.hasNext()); |
- String title = jsonReader.nextString(); |
- assertFalse(jsonReader.hasNext()); |
- jsonReader.endArray(); |
- results.add(new HistoryItem(url, title)); |
- } |
- jsonReader.endArray(); |
- jsonReader.close(); |
- } catch (IOException ioe) { |
- fail("Failed to evaluate JavaScript: " + jsResults + "\n" + ioe); |
- } |
- |
- HistoryItem[] history = new HistoryItem[results.size()]; |
- results.toArray(history); |
- return history; |
- } |
- |
- private void removeSelectedHistoryEntryAtIndex(int index) |
- throws InterruptedException, TimeoutException { |
- runJavaScriptCodeInCurrentTab( |
- "document.getElementsByClassName('remove-entry')[" + index + "].click();"); |
- } |
- |
- private int getHistoryLength(ContentViewCore cvc) |
- throws InterruptedException, TimeoutException { |
- String numResultsString = JavaScriptUtils.executeJavaScriptAndWaitForResult( |
- cvc.getWebContents(), "document.querySelectorAll('.entry').length"); |
- int numResults = Integer.parseInt(numResultsString); |
- return numResults; |
- } |
- |
- /** |
- * Wait for the UI to show the expected number of results. |
- * @param expected The number of results that should be loaded. |
- */ |
- private void waitForResultCount(final ContentViewCore cvc, final int expected) { |
- CriteriaHelper.pollInstrumentationThread( |
- new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- try { |
- return expected == getHistoryLength(cvc); |
- } catch (InterruptedException e) { |
- e.printStackTrace(); |
- return false; |
- } catch (TimeoutException e) { |
- e.printStackTrace(); |
- return false; |
- } |
- } |
- }); |
- } |
- |
- @MediumTest |
- @Feature({"History"}) |
- @RetryOnFailure |
- public void testSearchHistory() throws InterruptedException, TimeoutException { |
- // Introduce some entries in the history page. |
- 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 = getActivity().getActivityTab(); |
- final CallbackHelper loadCallback = new CallbackHelper(); |
- TabObserver observer = new EmptyTabObserver() { |
- @Override |
- public void onLoadStopped(Tab tab, boolean toDifferentDocument) { |
- if (tab.getUrl().startsWith(HISTORY_URL)) { |
- loadCallback.notifyCalled(); |
- } |
- } |
- }; |
- tab.addObserver(observer); |
- runJavaScriptCodeInCurrentTab("historyView.setSearch('about')"); |
- loadCallback.waitForCallback(0); |
- waitForResultCount(getActivity().getCurrentContentViewCore(), 1); |
- |
- // Delete the search term. |
- runJavaScriptCodeInCurrentTab("historyView.setSearch('')"); |
- loadCallback.waitForCallback(1); |
- waitForResultCount(getActivity().getCurrentContentViewCore(), 2); |
- tab.removeObserver(observer); |
- } |
- |
- // @LargeTest |
- // @Feature({"History"}) |
- @DisabledTest |
- public void testRemovingEntries() throws InterruptedException, TimeoutException { |
- // Urls will be visited in reverse order to preserve the array ordering |
- // in the history results. |
- String[] testUrls = new String[] { |
- mTestServer.getURL("/chrome/test/data/android/google.html"), |
- mTestServer.getURL("/chrome/test/data/android/about.html"), |
- }; |
- |
- String[] testTitles = new String[testUrls.length]; |
- for (int i = testUrls.length - 1; i >= 0; --i) { |
- loadUrl(testUrls[i]); |
- testTitles[i] = getActivity().getActivityTab().getTitle(); |
- } |
- |
- // Check that the history page contains the visited pages. |
- loadUrl(HISTORY_URL); |
- waitForResultCount(getActivity().getCurrentContentViewCore(), 2); |
- |
- HistoryItem[] history = getHistoryContents(); |
- for (int i = 0; i < testUrls.length; ++i) { |
- assertEquals(testUrls[i], history[i].url); |
- assertEquals(testTitles[i], history[i].title); |
- } |
- |
- // Remove the first entry from history. |
- assertTrue(history.length >= 1); |
- removeSelectedHistoryEntryAtIndex(0); |
- waitForResultCount(getActivity().getCurrentContentViewCore(), 1); |
- |
- // Check that now the first result is the second visited page. |
- history = getHistoryContents(); |
- 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. |
- 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( |
- getInstrumentation(), Preferences.class, new Runnable() { |
- @Override |
- public void run() { |
- try { |
- runJavaScriptCodeInCurrentTab("openClearBrowsingData()"); |
- } catch (InterruptedException e) { |
- fail("Exception occurred while attempting to open clear browing data"); |
- } catch (TimeoutException e) { |
- fail("Exception occurred while attempting to open clear browing data"); |
- } |
- } |
- }); |
- assertNotNull("Could not find the preferences activity", prefActivity); |
- |
- final ClearBrowsingDataPreferences clearBrowsingFragment = |
- (ClearBrowsingDataPreferences) prefActivity.getFragmentForTest(); |
- assertNotNull("Could not find clear browsing data fragment", clearBrowsingFragment); |
- |
- final ChromeActivity mainActivity = ActivityUtils.waitForActivity( |
- getInstrumentation(), getActivity().getClass(), new Runnable() { |
- @Override |
- public void run() { |
- ThreadUtils.runOnUiThread(new Runnable() { |
- @Override |
- public void run() { |
- PreferenceScreen screen = |
- clearBrowsingFragment.getPreferenceScreen(); |
- ButtonPreference clearButton = |
- (ButtonPreference) screen.findPreference( |
- ClearBrowsingDataPreferences.PREF_CLEAR_BUTTON); |
- clearButton.getOnPreferenceClickListener().onPreferenceClick( |
- clearButton); |
- } |
- }); |
- } |
- }); |
- assertNotNull("Main never resumed", mainActivity); |
- CriteriaHelper.pollUiThread(new Criteria("Main tab never restored") { |
- @Override |
- public boolean isSatisfied() { |
- return !clearBrowsingFragment.isVisible() |
- && mainActivity.getActivityTab() != null |
- && !mainActivity.getActivityTab().isFrozen(); |
- } |
- }); |
- JavaScriptUtils.executeJavaScriptAndWaitForResult( |
- mainActivity.getCurrentContentViewCore().getWebContents(), "reloadHistory()"); |
- waitForResultCount(getActivity().getCurrentContentViewCore(), 0); |
- } |
-} |