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

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

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 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
Index: chrome/android/javatests/src/org/chromium/chrome/browser/download/ContextMenuTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/ContextMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/ContextMenuTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..de8be56a2937ebe14cd35aea6fdd798e5967138f
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/ContextMenuTest.java
@@ -0,0 +1,144 @@
+// 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.download;
+
+import android.test.FlakyTest;
+
+import com.google.android.apps.chrome.R;
+
+import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.chrome.browser.ChromeSwitches;
+import org.chromium.chrome.browser.CompositorChromeActivity;
+import org.chromium.chrome.browser.Tab;
+import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
+import org.chromium.chrome.test.util.ChromeTabUtils;
+import org.chromium.chrome.test.util.TestHttpServerClient;
+import org.chromium.chrome.test.util.browser.contextmenu.ContextMenuUtils;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
+
+import java.io.IOException;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * Context menu related tests
+ */
+@CommandLineFlags.Add(ChromeSwitches.GOOGLE_BASE_URL + "=http://example.com/")
+public class ContextMenuTest extends DownloadTestBase {
+ private static final String TEST_URL =
+ TestHttpServerClient.getUrl("chrome/test/data/android/context_menu_test.html");
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ loadUrl(TEST_URL);
+ assertWaitForPageScaleFactorMatch(0.5f);
+ }
+
+ @Override
+ public void startMainActivity() throws InterruptedException {
+ startMainActivityFromLauncher();
+ }
+
+ /*
+ * Bug: http://crbug.com/332154
+ * @LargeTest
+ * @Feature({"Browser"})
+ */
+ @FlakyTest
+ public void testSaveDataUrl()
+ throws InterruptedException, TimeoutException, SecurityException, IOException {
+ saveMediaFromContextMenu("dataUrlIcon", R.id.contextmenu_save_image, "download.gif");
+ }
+
+ /*
+ * Bug: http://crbug.com/332154
+ * @LargeTest
+ * @Feature({"Browser"})
+ */
+ @FlakyTest
+ public void testSaveImage()
+ throws InterruptedException, TimeoutException, SecurityException, IOException {
+ saveMediaFromContextMenu("testImage", R.id.contextmenu_save_image, "google.png");
+ }
+
+ /*
+ * Bug: http://crbug.com/332154
+ * @LargeTest
+ * @Feature({"Browser"})
+ */
+ @FlakyTest
+ public void testSaveVideo()
+ throws InterruptedException, TimeoutException, SecurityException, IOException {
+ saveMediaFromContextMenu("videoDOMElement", R.id.contextmenu_save_video, "test.mp4");
+ }
+
+ // Open link and image in new tabs and Verify the order of indices of the tabs in the TabModel.
+ // Also verify, that the parent page remains in front after opening links in new tabs.
+ /*
+ * Bug: http://crbug.com/412816
+ * @LargeTest
+ * @Feature({"Browser"})
+ */
+ @FlakyTest
+ public void testOpenLinksInNewTabsAndVerifyTabIndexOrdering()
+ throws InterruptedException, TimeoutException {
+ int nOpenedTabs = getActivity().getCurrentTabModel().getCount();
+ Tab tab = getActivity().getActivityTab();
+ ContextMenuUtils.selectContextMenuItem(this, tab, "testLink",
+ R.id.contextmenu_open_in_new_tab);
+ getInstrumentation().waitForIdleSync();
+ int indexOfLinkPage = nOpenedTabs;
+ nOpenedTabs += 1;
+ assertEquals("Number of open tabs does not match",
+ nOpenedTabs , getActivity().getCurrentTabModel().getCount());
+
+ // Wait for any new tab animation to finish if we're being driven by the compositor.
+ if (getActivity() instanceof CompositorChromeActivity) {
+ final LayoutManager layoutDriver = ((CompositorChromeActivity) getActivity())
+ .getCompositorViewHolder().getLayoutManager();
+ assertTrue("Background tab animation not finished.",
+ CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
+ @Override
+ public boolean isSatisfied() {
+ return layoutDriver.getActiveLayout().shouldDisplayContentOverlay();
+ }
+ }));
+ }
+
+ ContextMenuUtils.selectContextMenuItem(this, tab, "testImage",
+ R.id.contextmenu_open_image_in_new_tab);
+ getInstrumentation().waitForIdleSync();
+ int indexOfLogoPage = nOpenedTabs;
+ nOpenedTabs += 1;
+ assertEquals("Number of open tabs does not match",
+ nOpenedTabs, getActivity().getCurrentTabModel().getCount());
+
+ // Verify the Url is still the same of Parent page.
+ assertEquals(TEST_URL, getActivity().getActivityTab().getUrl());
+
+ // Switch to child tab page and verify Url.
+ ChromeTabUtils.switchTabInCurrentTabModel(getActivity(), indexOfLinkPage);
+ String newTabUrl = TestHttpServerClient.getUrl("chrome/test/data/android/about.html");
+ assertEquals(newTabUrl, getActivity().getActivityTab().getUrl());
+
+ // Switch to another child tab page and verify Url.
+ ChromeTabUtils.switchTabInCurrentTabModel(getActivity(), indexOfLogoPage);
+ String logoTabUrl = TestHttpServerClient.getUrl("chrome/test/data/android/google.png");
+ assertEquals(logoTabUrl, getActivity().getActivityTab().getUrl());
+ }
+
+ private void saveMediaFromContextMenu(String mediaDOMElement, int saveMenuID,
+ String expectedFilename) throws InterruptedException, TimeoutException,
+ SecurityException, IOException {
+ // Select "save [image/video]" in that menu.
+ Tab tab = getActivity().getActivityTab();
+ ContextMenuUtils.selectContextMenuItem(this, tab, mediaDOMElement, saveMenuID);
+
+ // Wait for the download to complete and see if we got the right file
+ assertTrue(waitForChromeDownloadToFinish());
+ checkLastDownload(expectedFilename);
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698