Index: chrome/android/javatests/src/org/chromium/chrome/browser/input/SelectFileDialogTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/input/SelectFileDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/input/SelectFileDialogTest.java |
deleted file mode 100644 |
index 3ddd7aee7126a71a239f37a73ccf26b4d2344b8d..0000000000000000000000000000000000000000 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/input/SelectFileDialogTest.java |
+++ /dev/null |
@@ -1,141 +0,0 @@ |
-// Copyright 2014 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.input; |
- |
-import android.annotation.TargetApi; |
-import android.app.Activity; |
-import android.content.Intent; |
-import android.os.Build; |
-import android.provider.MediaStore; |
-import android.test.suitebuilder.annotation.MediumTest; |
- |
-import org.chromium.base.ThreadUtils; |
-import org.chromium.base.test.util.Feature; |
-import org.chromium.base.test.util.UrlUtils; |
-import org.chromium.chrome.shell.ChromeShellActivity; |
-import org.chromium.chrome.shell.ChromeShellActivity.ActivityWindowAndroidFactory; |
-import org.chromium.chrome.shell.ChromeShellTestBase; |
-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.DOMUtils; |
-import org.chromium.ui.base.ActivityWindowAndroid; |
- |
-/** |
- * Integration test for select file dialog used for <input type="file" /> |
- */ |
-public class SelectFileDialogTest extends ChromeShellTestBase { |
- private static final String DATA_URL = UrlUtils.encodeHtmlDataUri( |
- "<html><head><meta name=\"viewport\"" |
- + "content=\"width=device-width, initial-scale=2.0, maximum-scale=2.0\" /></head>" |
- + "<body><form action=\"about:blank\">" |
- + "<input id=\"input_file\" type=\"file\" /><br/>" |
- + "<input id=\"input_file_multiple\" type=\"file\" multiple /><br />" |
- + "<input id=\"input_image\" type=\"file\" accept=\"image/*\" capture /><br/>" |
- + "<input id=\"input_audio\" type=\"file\" accept=\"audio/*\" capture />" |
- + "</form>" |
- + "</body></html>"); |
- |
- private ContentViewCore mContentViewCore; |
- private ActivityWindowAndroidForTest mActivityWindowAndroidForTest; |
- |
- private static class ActivityWindowAndroidForTest extends ActivityWindowAndroid { |
- public Intent lastIntent; |
- public IntentCallback lastCallback; |
- /** |
- * @param activity |
- */ |
- public ActivityWindowAndroidForTest(Activity activity) { |
- super(activity); |
- } |
- |
- @Override |
- public int showCancelableIntent(Intent intent, IntentCallback callback, Integer errorId) { |
- lastIntent = intent; |
- lastCallback = callback; |
- return 1; |
- } |
- } |
- |
- private class IntentSentCriteria implements Criteria { |
- @Override |
- public boolean isSatisfied() { |
- return mActivityWindowAndroidForTest.lastIntent != null; |
- } |
- } |
- |
- @Override |
- public void setUp() throws Exception { |
- super.setUp(); |
- |
- ChromeShellActivity.setActivityWindowAndroidFactory(new ActivityWindowAndroidFactory() { |
- @Override |
- public ActivityWindowAndroid getActivityWindowAndroid(Activity activity) { |
- mActivityWindowAndroidForTest = new ActivityWindowAndroidForTest(activity); |
- return mActivityWindowAndroidForTest; |
- } |
- }); |
- launchChromeShellWithUrl(DATA_URL); |
- assertTrue("Page failed to load", waitForActiveShellToBeDoneLoading()); |
- |
- mContentViewCore = getActivity().getActiveContentViewCore(); |
- // TODO(aurimas) remove this wait once crbug.com/179511 is fixed. |
- assertWaitForPageScaleFactorMatch(2); |
- assertTrue( |
- DOMUtils.waitForNonZeroNodeBounds(mContentViewCore.getWebContents(), "input_file")); |
- } |
- |
- /** |
- * Tests that clicks on <input type="file" /> trigger intent calls to ActivityWindowAndroid. |
- */ |
- @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) |
- @MediumTest |
- @Feature({"TextInput", "Main"}) |
- public void testSelectFileAndCancelRequest() throws Throwable { |
- DOMUtils.clickNode(this, mContentViewCore, "input_file"); |
- assertTrue("SelectFileDialog never sent an intent.", |
- CriteriaHelper.pollForCriteria(new IntentSentCriteria())); |
- assertEquals(Intent.ACTION_CHOOSER, mActivityWindowAndroidForTest.lastIntent.getAction()); |
- resetActivityWindowAndroidForTest(); |
- |
- DOMUtils.clickNode(this, mContentViewCore, "input_file_multiple"); |
- assertTrue("SelectFileDialog never sent an intent.", |
- CriteriaHelper.pollForCriteria(new IntentSentCriteria())); |
- assertEquals(Intent.ACTION_CHOOSER, mActivityWindowAndroidForTest.lastIntent.getAction()); |
- Intent contentIntent = (Intent) |
- mActivityWindowAndroidForTest.lastIntent.getParcelableExtra(Intent.EXTRA_INTENT); |
- assertNotNull(contentIntent); |
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { |
- assertTrue(contentIntent.hasExtra(Intent.EXTRA_ALLOW_MULTIPLE)); |
- } |
- resetActivityWindowAndroidForTest(); |
- |
- DOMUtils.clickNode(this, mContentViewCore, "input_image"); |
- assertTrue("SelectFileDialog never sent an intent.", |
- CriteriaHelper.pollForCriteria(new IntentSentCriteria())); |
- assertEquals(MediaStore.ACTION_IMAGE_CAPTURE, |
- mActivityWindowAndroidForTest.lastIntent.getAction()); |
- resetActivityWindowAndroidForTest(); |
- |
- DOMUtils.clickNode(this, mContentViewCore, "input_audio"); |
- assertTrue("SelectFileDialog never sent an intent.", |
- CriteriaHelper.pollForCriteria(new IntentSentCriteria())); |
- assertEquals(MediaStore.Audio.Media.RECORD_SOUND_ACTION, |
- mActivityWindowAndroidForTest.lastIntent.getAction()); |
- resetActivityWindowAndroidForTest(); |
- } |
- |
- private void resetActivityWindowAndroidForTest() { |
- ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
- @Override |
- public void run() { |
- mActivityWindowAndroidForTest.lastCallback.onIntentCompleted( |
- mActivityWindowAndroidForTest, Activity.RESULT_CANCELED, null, null); |
- } |
- }); |
- mActivityWindowAndroidForTest.lastCallback = null; |
- mActivityWindowAndroidForTest.lastIntent = null; |
- } |
-} |