Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3567)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java

Issue 1741153002: Switch back to open image in new tab where applicable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/strings/android_chrome_strings.grd ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
index bf400dc201c4f87882e075d1c6e24692f15e3cdd..6b3b3bbfd7ca094da3ee28c73b576b7c6b04108a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/contextmenu/ContextMenuTest.java
@@ -13,7 +13,6 @@ import android.test.suitebuilder.annotation.MediumTest;
import android.view.ContextMenu;
import android.view.KeyEvent;
-import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.DisableIf;
import org.chromium.base.test.util.Feature;
@@ -22,19 +21,20 @@ import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
import org.chromium.chrome.browser.download.DownloadTestBase;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver;
import org.chromium.chrome.browser.tabmodel.TabModel;
+import org.chromium.chrome.test.util.ChromeTabUtils;
import org.chromium.chrome.test.util.browser.contextmenu.ContextMenuUtils;
+import org.chromium.content.browser.test.util.CallbackHelper;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.content.browser.test.util.DOMUtils;
-import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
-import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageFinishedHelper;
import org.chromium.content.browser.test.util.TestTouchUtils;
import org.chromium.net.test.EmbeddedTestServer;
import java.io.IOException;
-import java.util.concurrent.Callable;
import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicReference;
/**
* Context menu related tests
@@ -111,57 +111,51 @@ public class ContextMenuTest extends DownloadTestBase {
@MediumTest
@Feature({"Browser"})
+ @CommandLineFlags.Add(ChromeSwitches.DISABLE_DOCUMENT_MODE)
public void testLongPressOnImage() throws InterruptedException, TimeoutException {
- final Tab tab = getActivity().getActivityTab();
-
- TestCallbackHelperContainer helper =
- new TestCallbackHelperContainer(tab.getContentViewCore());
-
- OnPageFinishedHelper callback = helper.getOnPageFinishedHelper();
- int callbackCount = callback.getCallCount();
-
- ContextMenuUtils.selectContextMenuItem(this, tab, "testImage",
- R.id.contextmenu_open_image);
-
- callback.waitForCallback(callbackCount);
-
- String expectedUrl = mTestServer.getURL(
- "/chrome/test/data/android/contextmenu/test_image.png");
-
- String actualUrl = ThreadUtils.runOnUiThreadBlockingNoException(new Callable<String>() {
- @Override
- public String call() throws Exception {
- return tab.getUrl();
- }
- });
-
- assertEquals("Failed to navigate to the image", expectedUrl, actualUrl);
+ checkOpenImageInNewTab(
+ "testImage", "/chrome/test/data/android/contextmenu/test_image.png");
}
@MediumTest
@Feature({"Browser"})
+ @CommandLineFlags.Add(ChromeSwitches.DISABLE_DOCUMENT_MODE)
public void testLongPressOnImageLink() throws InterruptedException, TimeoutException {
- final Tab tab = getActivity().getActivityTab();
-
- TestCallbackHelperContainer helper =
- new TestCallbackHelperContainer(tab.getContentViewCore());
+ checkOpenImageInNewTab(
+ "testImageLink", "/chrome/test/data/android/contextmenu/test_image.png");
+ }
- OnPageFinishedHelper callback = helper.getOnPageFinishedHelper();
- int callbackCount = callback.getCallCount();
+ private void checkOpenImageInNewTab(String domId, String expectedUrl)
+ throws InterruptedException, TimeoutException {
+ final Tab activityTab = getActivity().getActivityTab();
- ContextMenuUtils.selectContextMenuItem(this, tab, "testImage",
- R.id.contextmenu_open_image);
+ final CallbackHelper newTabCallback = new CallbackHelper();
+ final AtomicReference<Tab> newTab = new AtomicReference<>();
+ getActivity().getTabModelSelector().addObserver(new EmptyTabModelSelectorObserver() {
+ @Override
+ public void onNewTabCreated(Tab tab) {
+ super.onNewTabCreated(tab);
- callback.waitForCallback(callbackCount);
+ if (tab.getParentId() != activityTab.getId()) return;
+ newTab.set(tab);
+ newTabCallback.notifyCalled();
- String actualTitle = ThreadUtils.runOnUiThreadBlockingNoException(new Callable<String>() {
- @Override
- public String call() throws Exception {
- return tab.getTitle();
+ getActivity().getTabModelSelector().removeObserver(this);
}
});
- assertTrue("Navigated to the wrong page.", actualTitle.startsWith("test_image.png"));
+ int callbackCount = newTabCallback.getCallCount();
+
+ ContextMenuUtils.selectContextMenuItem(this, activityTab, domId,
+ R.id.contextmenu_open_image_in_new_tab);
+
+ try {
+ newTabCallback.waitForCallback(callbackCount);
+ } catch (TimeoutException ex) {
+ fail("New tab never created from context menu press");
+ }
+
+ ChromeTabUtils.waitForTabPageLoaded(newTab.get(), mTestServer.getURL(expectedUrl));
}
@MediumTest
« no previous file with comments | « chrome/android/java/strings/android_chrome_strings.grd ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698