| Index: chrome/browser/download/download_target_determiner_unittest.cc
|
| diff --git a/chrome/browser/download/download_target_determiner_unittest.cc b/chrome/browser/download/download_target_determiner_unittest.cc
|
| index 53812ab44cd80554c8380d329f82789700d6c961..e62dbc66e569415d733be05fa7cab754bf1f83e4 100644
|
| --- a/chrome/browser/download/download_target_determiner_unittest.cc
|
| +++ b/chrome/browser/download/download_target_determiner_unittest.cc
|
| @@ -47,6 +47,10 @@
|
| #include "extensions/common/extension.h"
|
| #endif
|
|
|
| +#if defined(OS_ANDROID)
|
| +#include "chrome/browser/android/download/mock_download_controller_android.h"
|
| +#endif
|
| +
|
| using ::testing::AnyNumber;
|
| using ::testing::Invoke;
|
| using ::testing::Ref;
|
| @@ -257,12 +261,21 @@ class DownloadTargetDeterminerTest : public ChromeRenderViewHostTestHarness {
|
| return download_prefs_.get();
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| + chrome::android::MockDownloadControllerAndroid* download_controller() {
|
| + return &download_controller_;
|
| + }
|
| +#endif
|
| +
|
| private:
|
| scoped_ptr<DownloadPrefs> download_prefs_;
|
| ::testing::NiceMock<MockDownloadTargetDeterminerDelegate> delegate_;
|
| NullWebContentsDelegate web_contents_delegate_;
|
| base::ScopedTempDir test_download_dir_;
|
| base::FilePath test_virtual_dir_;
|
| +#if defined(OS_ANDROID)
|
| + chrome::android::MockDownloadControllerAndroid download_controller_;
|
| +#endif
|
| };
|
|
|
| void DownloadTargetDeterminerTest::SetUp() {
|
| @@ -274,10 +287,17 @@ void DownloadTargetDeterminerTest::SetUp() {
|
| test_virtual_dir_ = test_download_dir().Append(FILE_PATH_LITERAL("virtual"));
|
| download_prefs_->SetDownloadPath(test_download_dir());
|
| delegate_.SetupDefaults();
|
| +#if defined(OS_ANDROID)
|
| + content::DownloadControllerAndroid::SetDownloadControllerAndroid(
|
| + &download_controller_);
|
| +#endif
|
| }
|
|
|
| void DownloadTargetDeterminerTest::TearDown() {
|
| download_prefs_.reset();
|
| +#if defined(OS_ANDROID)
|
| + content::DownloadControllerAndroid::SetDownloadControllerAndroid(nullptr);
|
| +#endif
|
| ChromeRenderViewHostTestHarness::TearDown();
|
| }
|
|
|
| @@ -1154,6 +1174,30 @@ TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_PromptAlways) {
|
| arraysize(kPromptingTestCases));
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(DownloadTargetDeterminerTest,
|
| + TargetDeterminer_DisapprovePromptForUserPermission) {
|
| + const DownloadTestCase kUserPermissionTestCases[] = {
|
| + {
|
| + // 0: Automatic Safe
|
| + AUTOMATIC,
|
| + content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
|
| + "http://example.com/foo.txt", "text/plain",
|
| + FILE_PATH_LITERAL(""),
|
| +
|
| + FILE_PATH_LITERAL(""),
|
| + DownloadItem::TARGET_DISPOSITION_OVERWRITE,
|
| +
|
| + EXPECT_LOCAL_PATH
|
| + },
|
| + };
|
| + content::DownloadControllerAndroid::Get()->
|
| + SetApproveFileAccessRequestForTesting(false);
|
| + RunTestCasesWithActiveItem(kUserPermissionTestCases,
|
| + arraysize(kUserPermissionTestCases));
|
| +}
|
| +#endif
|
| +
|
| #if defined(ENABLE_EXTENSIONS)
|
| // These test cases are run with "Prompt for download" user preference set to
|
| // true. Automatic extension downloads shouldn't cause prompting.
|
|
|