Commit b587039b authored by Xing Liu's avatar Xing Liu Committed by Commit Bot

Download location: Add field trial testing config.

This CL adds field trial testing config for downloads location change
feature.

TBR=nyquist@chromium.org

Change-Id: I249063d963cd46ff47940c6fd04ebbb65fca0712
Reviewed-on: https://chromium-review.googlesource.com/1081683
Commit-Queue: Xing Liu <xingliu@chromium.org>
Reviewed-by: default avatarTommy Nyquist <nyquist@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Reviewed-by: default avatarGayane Petrosyan <gayane@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565487}
parent 2cc3a9ce
......@@ -221,8 +221,10 @@ public abstract class PathUtils {
public static String[] getAllPrivateDownloadsDirectories() {
File[] files;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
files = ContextUtils.getApplicationContext().getExternalFilesDirs(
Environment.DIRECTORY_DOWNLOADS);
try (StrictModeContext unused = StrictModeContext.allowDiskWrites()) {
files = ContextUtils.getApplicationContext().getExternalFilesDirs(
Environment.DIRECTORY_DOWNLOADS);
}
} else {
files = new File[] {Environment.getExternalStorageDirectory()};
}
......
......@@ -25,6 +25,7 @@ import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.ObserverList;
import org.chromium.base.StrictModeContext;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
......@@ -1543,7 +1544,11 @@ public class DownloadManagerService
String[] downloadDirs = DownloadUtils.getAllDownloadDirectories();
if (downloadDirs.length > 1) return;
String externalStorageDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String externalStorageDir = null;
try (StrictModeContext unused = StrictModeContext.allowDiskWrites()) {
externalStorageDir = Environment.getExternalStorageDirectory().getAbsolutePath();
}
for (DownloadItem item : list) {
boolean missingOnSDCard = isFilePathOnMissingExternalDrive(
item.getDownloadInfo().getFilePath(), externalStorageDir, downloadDirs);
......
......@@ -31,6 +31,7 @@ import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.Restriction;
import org.chromium.base.test.util.RetryOnFailure;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.download.ui.DownloadHistoryAdapter;
import org.chromium.chrome.browser.download.ui.DownloadHistoryItemViewHolder;
import org.chromium.chrome.browser.download.ui.DownloadHistoryItemWrapper;
......@@ -40,6 +41,7 @@ import org.chromium.chrome.browser.download.ui.DownloadManagerToolbar;
import org.chromium.chrome.browser.download.ui.DownloadManagerUi;
import org.chromium.chrome.browser.download.ui.SpaceDisplay;
import org.chromium.chrome.browser.download.ui.StubbedProvider;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.util.IntentUtils;
import org.chromium.chrome.browser.widget.ListMenuButton.Item;
......@@ -124,6 +126,11 @@ public class DownloadActivityTest {
Editor editor = ContextUtils.getAppSharedPreferences().edit();
editor.putBoolean(PREF_SHOW_STORAGE_INFO_HEADER, true).apply();
ThreadUtils.runOnUiThreadBlocking(() -> {
PrefServiceBridge.getInstance().setPromptForDownloadAndroid(
DownloadPromptStatus.DONT_SHOW);
});
mStubbedProvider = new StubbedProvider();
DownloadManagerUi.setProviderForTests(mStubbedProvider);
......@@ -627,6 +634,7 @@ public class DownloadActivityTest {
@Test
@MediumTest
@DisableFeatures(ChromeFeatureList.DOWNLOADS_LOCATION_CHANGE)
public void testToggleSelection() throws Exception {
// The selection toolbar should not be showing.
Assert.assertTrue(mAdapterObserver.mOnSelectionItems.isEmpty());
......@@ -681,6 +689,7 @@ public class DownloadActivityTest {
@Test
@MediumTest
@DisableFeatures(ChromeFeatureList.DOWNLOADS_LOCATION_CHANGE)
public void testSearchView() throws Exception {
final DownloadManagerToolbar toolbar = mUi.getDownloadManagerToolbarForTests();
View toolbarSearchView = toolbar.getSearchViewForTests();
......
......@@ -175,6 +175,7 @@ public class DownloadTest implements CustomMainActivityStart {
@Test
@MediumTest
@DisabledTest(message = "crbug.com/849876")
@Feature({"Downloads"})
@RetryOnFailure
public void testDuplicateHttpPostDownload_Download() throws Exception {
......
......@@ -21,6 +21,7 @@ import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.CallbackHelper;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.test.ChromeActivityTestRule;
import java.io.File;
......@@ -209,6 +210,11 @@ public class DownloadTestRule extends ChromeActivityTestRule<ChromeActivity> {
private void setUp() throws Exception {
mActivityStart.customMainActivityStart();
ThreadUtils.runOnUiThreadBlocking(() -> {
PrefServiceBridge.getInstance().setPromptForDownloadAndroid(
DownloadPromptStatus.DONT_SHOW);
});
cleanUpAllDownloads();
final Context context = InstrumentationRegistry.getTargetContext().getApplicationContext();
......
......@@ -1291,6 +1291,21 @@
]
}
],
"DownloadsLocationChange": [
{
"platforms": [
"android"
],
"experiments": [
{
"name": "Enabled",
"enable_features": [
"DownloadsLocationChange"
]
}
]
}
],
"DownloadsUi": [
{
"platforms": [
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment