| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "base/files/scoped_temp_dir.h" | 6 #include "base/files/scoped_temp_dir.h" |
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
| 8 #include "base/observer_list.h" | 8 #include "base/observer_list.h" |
| 9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 virtual void TearDown() OVERRIDE; | 186 virtual void TearDown() OVERRIDE; |
| 187 | 187 |
| 188 // Creates MockDownloadItem and sets up default expectations. | 188 // Creates MockDownloadItem and sets up default expectations. |
| 189 content::MockDownloadItem* CreateActiveDownloadItem( | 189 content::MockDownloadItem* CreateActiveDownloadItem( |
| 190 int32 id, | 190 int32 id, |
| 191 const DownloadTestCase& test_case); | 191 const DownloadTestCase& test_case); |
| 192 | 192 |
| 193 // Sets the AutoOpenBasedOnExtension user preference for |path|. | 193 // Sets the AutoOpenBasedOnExtension user preference for |path|. |
| 194 void EnableAutoOpenBasedOnExtension(const base::FilePath& path); | 194 void EnableAutoOpenBasedOnExtension(const base::FilePath& path); |
| 195 | 195 |
| 196 // Set the kDownloadDefaultDirectory user preference to |path|. | |
| 197 void SetDefaultDownloadPath(const base::FilePath& path); | |
| 198 | |
| 199 // Set the kDownloadDefaultDirectory managed preference to |path|. | 196 // Set the kDownloadDefaultDirectory managed preference to |path|. |
| 200 void SetManagedDownloadPath(const base::FilePath& path); | 197 void SetManagedDownloadPath(const base::FilePath& path); |
| 201 | 198 |
| 202 // Set the kPromptForDownload user preference to |prompt|. | 199 // Set the kPromptForDownload user preference to |prompt|. |
| 203 void SetPromptForDownload(bool prompt); | 200 void SetPromptForDownload(bool prompt); |
| 204 | 201 |
| 205 // Given the relative path |path|, returns the full path under the temporary | 202 // Given the relative path |path|, returns the full path under the temporary |
| 206 // downloads directory. | 203 // downloads directory. |
| 207 base::FilePath GetPathInDownloadDir(const base::FilePath::StringType& path); | 204 base::FilePath GetPathInDownloadDir(const base::FilePath::StringType& path); |
| 208 | 205 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 225 } | 222 } |
| 226 | 223 |
| 227 MockDownloadTargetDeterminerDelegate* delegate() { | 224 MockDownloadTargetDeterminerDelegate* delegate() { |
| 228 return &delegate_; | 225 return &delegate_; |
| 229 } | 226 } |
| 230 | 227 |
| 231 DownloadPrefs* download_prefs() { | 228 DownloadPrefs* download_prefs() { |
| 232 return download_prefs_.get(); | 229 return download_prefs_.get(); |
| 233 } | 230 } |
| 234 | 231 |
| 235 void set_last_selected_directory(const base::FilePath& path) { | |
| 236 last_selected_directory_ = path; | |
| 237 } | |
| 238 | |
| 239 private: | 232 private: |
| 240 // Verifies that |target_path|, |disposition|, |expected_danger_type| and | 233 // Verifies that |target_path|, |disposition|, |expected_danger_type| and |
| 241 // |intermediate_path| matches the expectations of |test_case|. Posts | 234 // |intermediate_path| matches the expectations of |test_case|. Posts |
| 242 // |closure| to the current message loop when done. | 235 // |closure| to the current message loop when done. |
| 243 void DownloadTargetVerifier(const base::Closure& closure, | 236 void DownloadTargetVerifier(const base::Closure& closure, |
| 244 const DownloadTestCase& test_case, | 237 const DownloadTestCase& test_case, |
| 245 const base::FilePath& local_path, | 238 const base::FilePath& local_path, |
| 246 DownloadItem::TargetDisposition disposition, | 239 DownloadItem::TargetDisposition disposition, |
| 247 content::DownloadDangerType danger_type, | 240 content::DownloadDangerType danger_type, |
| 248 const base::FilePath& intermediate_path); | 241 const base::FilePath& intermediate_path); |
| 249 | 242 |
| 250 scoped_ptr<DownloadPrefs> download_prefs_; | 243 scoped_ptr<DownloadPrefs> download_prefs_; |
| 251 ::testing::NiceMock<MockDownloadTargetDeterminerDelegate> delegate_; | 244 ::testing::NiceMock<MockDownloadTargetDeterminerDelegate> delegate_; |
| 252 NullWebContentsDelegate web_contents_delegate_; | 245 NullWebContentsDelegate web_contents_delegate_; |
| 253 base::ScopedTempDir test_download_dir_; | 246 base::ScopedTempDir test_download_dir_; |
| 254 base::FilePath test_virtual_dir_; | 247 base::FilePath test_virtual_dir_; |
| 255 base::FilePath last_selected_directory_; | |
| 256 content::TestBrowserThread ui_thread_; | 248 content::TestBrowserThread ui_thread_; |
| 257 content::TestBrowserThread file_thread_; | 249 content::TestBrowserThread file_thread_; |
| 258 }; | 250 }; |
| 259 | 251 |
| 260 DownloadTargetDeterminerTest::DownloadTargetDeterminerTest() | 252 DownloadTargetDeterminerTest::DownloadTargetDeterminerTest() |
| 261 : ChromeRenderViewHostTestHarness(), | 253 : ChromeRenderViewHostTestHarness(), |
| 262 ui_thread_(content::BrowserThread::UI, &message_loop_), | 254 ui_thread_(content::BrowserThread::UI, &message_loop_), |
| 263 file_thread_(content::BrowserThread::FILE, &message_loop_) { | 255 file_thread_(content::BrowserThread::FILE, &message_loop_) { |
| 264 } | 256 } |
| 265 | 257 |
| 266 void DownloadTargetDeterminerTest::SetUp() { | 258 void DownloadTargetDeterminerTest::SetUp() { |
| 267 ChromeRenderViewHostTestHarness::SetUp(); | 259 ChromeRenderViewHostTestHarness::SetUp(); |
| 268 CHECK(profile()); | 260 CHECK(profile()); |
| 269 download_prefs_.reset(new DownloadPrefs(profile())); | 261 download_prefs_.reset(new DownloadPrefs(profile())); |
| 270 web_contents()->SetDelegate(&web_contents_delegate_); | 262 web_contents()->SetDelegate(&web_contents_delegate_); |
| 271 ASSERT_TRUE(test_download_dir_.CreateUniqueTempDir()); | 263 ASSERT_TRUE(test_download_dir_.CreateUniqueTempDir()); |
| 272 test_virtual_dir_ = test_download_dir().Append(FILE_PATH_LITERAL("virtual")); | 264 test_virtual_dir_ = test_download_dir().Append(FILE_PATH_LITERAL("virtual")); |
| 273 SetDefaultDownloadPath(test_download_dir()); | 265 download_prefs_->SetDownloadPath(test_download_dir()); |
| 274 delegate_.SetupDefaults(); | 266 delegate_.SetupDefaults(); |
| 275 } | 267 } |
| 276 | 268 |
| 277 void DownloadTargetDeterminerTest::TearDown() { | 269 void DownloadTargetDeterminerTest::TearDown() { |
| 278 download_prefs_.reset(); | 270 download_prefs_.reset(); |
| 279 message_loop_.RunUntilIdle(); | 271 message_loop_.RunUntilIdle(); |
| 280 ChromeRenderViewHostTestHarness::TearDown(); | 272 ChromeRenderViewHostTestHarness::TearDown(); |
| 281 } | 273 } |
| 282 | 274 |
| 283 content::MockDownloadItem* | 275 content::MockDownloadItem* |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 ON_CALL(*item, IsTemporary()) | 327 ON_CALL(*item, IsTemporary()) |
| 336 .WillByDefault(Return(false)); | 328 .WillByDefault(Return(false)); |
| 337 return item; | 329 return item; |
| 338 } | 330 } |
| 339 | 331 |
| 340 void DownloadTargetDeterminerTest::EnableAutoOpenBasedOnExtension( | 332 void DownloadTargetDeterminerTest::EnableAutoOpenBasedOnExtension( |
| 341 const base::FilePath& path) { | 333 const base::FilePath& path) { |
| 342 EXPECT_TRUE(download_prefs_->EnableAutoOpenBasedOnExtension(path)); | 334 EXPECT_TRUE(download_prefs_->EnableAutoOpenBasedOnExtension(path)); |
| 343 } | 335 } |
| 344 | 336 |
| 345 void DownloadTargetDeterminerTest::SetDefaultDownloadPath( | |
| 346 const base::FilePath& path) { | |
| 347 profile()->GetTestingPrefService()-> | |
| 348 SetFilePath(prefs::kDownloadDefaultDirectory, path); | |
| 349 } | |
| 350 | |
| 351 void DownloadTargetDeterminerTest::SetManagedDownloadPath( | 337 void DownloadTargetDeterminerTest::SetManagedDownloadPath( |
| 352 const base::FilePath& path) { | 338 const base::FilePath& path) { |
| 353 profile()->GetTestingPrefService()-> | 339 profile()->GetTestingPrefService()-> |
| 354 SetManagedPref(prefs::kDownloadDefaultDirectory, | 340 SetManagedPref(prefs::kDownloadDefaultDirectory, |
| 355 base::CreateFilePathValue(path)); | 341 base::CreateFilePathValue(path)); |
| 356 } | 342 } |
| 357 | 343 |
| 358 void DownloadTargetDeterminerTest::SetPromptForDownload(bool prompt) { | 344 void DownloadTargetDeterminerTest::SetPromptForDownload(bool prompt) { |
| 359 profile()->GetTestingPrefService()-> | 345 profile()->GetTestingPrefService()-> |
| 360 SetBoolean(prefs::kPromptForDownload, prompt); | 346 SetBoolean(prefs::kPromptForDownload, prompt); |
| 361 } | 347 } |
| 362 | 348 |
| 363 base::FilePath DownloadTargetDeterminerTest::GetPathInDownloadDir( | 349 base::FilePath DownloadTargetDeterminerTest::GetPathInDownloadDir( |
| 364 const base::FilePath::StringType& relative_path) { | 350 const base::FilePath::StringType& relative_path) { |
| 365 if (relative_path.empty()) | 351 if (relative_path.empty()) |
| 366 return base::FilePath(); | 352 return base::FilePath(); |
| 367 base::FilePath full_path(test_download_dir().Append(relative_path)); | 353 base::FilePath full_path(test_download_dir().Append(relative_path)); |
| 368 return full_path.NormalizePathSeparators(); | 354 return full_path.NormalizePathSeparators(); |
| 369 } | 355 } |
| 370 | 356 |
| 371 void DownloadTargetDeterminerTest::RunTestCase( | 357 void DownloadTargetDeterminerTest::RunTestCase( |
| 372 const DownloadTestCase& test_case, | 358 const DownloadTestCase& test_case, |
| 373 content::MockDownloadItem* item) { | 359 content::MockDownloadItem* item) { |
| 374 // Kick off the test. | 360 // Kick off the test. |
| 375 base::WeakPtrFactory<DownloadTargetDeterminerTest> factory(this); | 361 base::WeakPtrFactory<DownloadTargetDeterminerTest> factory(this); |
| 376 base::RunLoop run_loop; | 362 base::RunLoop run_loop; |
| 377 DownloadTargetDeterminer::Start( | 363 DownloadTargetDeterminer::Start( |
| 378 item, download_prefs_.get(), last_selected_directory_, delegate(), | 364 item, download_prefs_.get(), delegate(), |
| 379 base::Bind(&DownloadTargetDeterminerTest::DownloadTargetVerifier, | 365 base::Bind(&DownloadTargetDeterminerTest::DownloadTargetVerifier, |
| 380 factory.GetWeakPtr(), run_loop.QuitClosure(), test_case)); | 366 factory.GetWeakPtr(), run_loop.QuitClosure(), test_case)); |
| 381 run_loop.Run(); | 367 run_loop.Run(); |
| 382 ::testing::Mock::VerifyAndClearExpectations(delegate()); | 368 ::testing::Mock::VerifyAndClearExpectations(delegate()); |
| 383 } | 369 } |
| 384 | 370 |
| 385 void DownloadTargetDeterminerTest::RunTestCasesWithActiveItem( | 371 void DownloadTargetDeterminerTest::RunTestCasesWithActiveItem( |
| 386 const DownloadTestCase test_cases[], | 372 const DownloadTestCase test_cases[], |
| 387 size_t test_case_count) { | 373 size_t test_case_count) { |
| 388 for (size_t i = 0; i < test_case_count; ++i) { | 374 for (size_t i = 0; i < test_case_count; ++i) { |
| (...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 794 FILE_PATH_LITERAL("virtual/foo/foo.txt"), | 780 FILE_PATH_LITERAL("virtual/foo/foo.txt"), |
| 795 FILE_PATH_LITERAL("bar.txt"), | 781 FILE_PATH_LITERAL("bar.txt"), |
| 796 DownloadItem::TARGET_DISPOSITION_PROMPT, | 782 DownloadItem::TARGET_DISPOSITION_PROMPT, |
| 797 | 783 |
| 798 EXPECT_LOCAL_PATH | 784 EXPECT_LOCAL_PATH |
| 799 }, | 785 }, |
| 800 }; | 786 }; |
| 801 | 787 |
| 802 { | 788 { |
| 803 SCOPED_TRACE(testing::Message() | 789 SCOPED_TRACE(testing::Message() |
| 804 << "Running with empty last_selected_directory"); | 790 << "Running with default download path"); |
| 805 base::FilePath prompt_path = | 791 base::FilePath prompt_path = |
| 806 GetPathInDownloadDir(FILE_PATH_LITERAL("foo.txt")); | 792 GetPathInDownloadDir(FILE_PATH_LITERAL("foo.txt")); |
| 807 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, prompt_path, _)); | 793 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, prompt_path, _)); |
| 808 RunTestCasesWithActiveItem(kLastSavePathTestCasesPre, | 794 RunTestCasesWithActiveItem(kLastSavePathTestCasesPre, |
| 809 arraysize(kLastSavePathTestCasesPre)); | 795 arraysize(kLastSavePathTestCasesPre)); |
| 810 } | 796 } |
| 811 | 797 |
| 812 // Try with a non-empty last save path. | 798 // Try with a non-empty last save path. |
| 813 { | 799 { |
| 814 SCOPED_TRACE(testing::Message() | 800 SCOPED_TRACE(testing::Message() |
| 815 << "Running with local last_selected_directory"); | 801 << "Running with local last_selected_directory"); |
| 816 set_last_selected_directory(test_download_dir().AppendASCII("foo")); | 802 download_prefs()->SetSaveFilePath(test_download_dir().AppendASCII("foo")); |
| 817 base::FilePath prompt_path = | 803 base::FilePath prompt_path = |
| 818 GetPathInDownloadDir(FILE_PATH_LITERAL("foo/foo.txt")); | 804 GetPathInDownloadDir(FILE_PATH_LITERAL("foo/foo.txt")); |
| 819 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, prompt_path, _)); | 805 EXPECT_CALL(*delegate(), PromptUserForDownloadPath(_, prompt_path, _)); |
| 820 RunTestCasesWithActiveItem(kLastSavePathTestCasesPost, | 806 RunTestCasesWithActiveItem(kLastSavePathTestCasesPost, |
| 821 arraysize(kLastSavePathTestCasesPost)); | 807 arraysize(kLastSavePathTestCasesPost)); |
| 822 } | 808 } |
| 823 | 809 |
| 824 // And again, but this time use a virtual directory. | 810 // And again, but this time use a virtual directory. |
| 825 { | 811 { |
| 826 SCOPED_TRACE(testing::Message() | 812 SCOPED_TRACE(testing::Message() |
| 827 << "Running with virtual last_selected_directory"); | 813 << "Running with virtual last_selected_directory"); |
| 828 base::FilePath last_selected_dir = test_virtual_dir().AppendASCII("foo"); | 814 base::FilePath last_selected_dir = test_virtual_dir().AppendASCII("foo"); |
| 829 base::FilePath virtual_path = last_selected_dir.AppendASCII("foo.txt"); | 815 base::FilePath virtual_path = last_selected_dir.AppendASCII("foo.txt"); |
| 830 set_last_selected_directory(last_selected_dir); | 816 download_prefs()->SetSaveFilePath(last_selected_dir); |
| 831 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( | 817 EXPECT_CALL(*delegate(), PromptUserForDownloadPath( |
| 832 _, last_selected_dir.AppendASCII("foo.txt"), _)); | 818 _, last_selected_dir.AppendASCII("foo.txt"), _)); |
| 833 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) | 819 EXPECT_CALL(*delegate(), DetermineLocalPath(_, virtual_path, _)) |
| 834 .WillOnce(WithArg<2>(ScheduleCallback( | 820 .WillOnce(WithArg<2>(ScheduleCallback( |
| 835 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); | 821 GetPathInDownloadDir(FILE_PATH_LITERAL("bar.txt"))))); |
| 836 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, | 822 RunTestCasesWithActiveItem(kLastSavePathTestCasesVirtual, |
| 837 arraysize(kLastSavePathTestCasesVirtual)); | 823 arraysize(kLastSavePathTestCasesVirtual)); |
| 838 } | 824 } |
| 839 } | 825 } |
| 840 | 826 |
| 841 // These tests are run with the default downloads folder set to a virtual | 827 // These tests are run with the default downloads folder set to a virtual |
| 842 // directory. | 828 // directory. |
| 843 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DefaultVirtual) { | 829 TEST_F(DownloadTargetDeterminerTest, TargetDeterminer_DefaultVirtual) { |
| 844 // The default download directory is the virutal path. | 830 // The default download directory is the virutal path. |
| 845 SetDefaultDownloadPath(test_virtual_dir()); | 831 download_prefs()->SetDownloadPath(test_virtual_dir()); |
| 846 | 832 |
| 847 { | 833 { |
| 848 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); | 834 SCOPED_TRACE(testing::Message() << "Automatic Safe Download"); |
| 849 const DownloadTestCase kAutomaticDownloadToVirtualDir = { | 835 const DownloadTestCase kAutomaticDownloadToVirtualDir = { |
| 850 AUTOMATIC, | 836 AUTOMATIC, |
| 851 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, | 837 content::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, |
| 852 "http://example.com/foo.txt", "text/plain", | 838 "http://example.com/foo.txt", "text/plain", |
| 853 FILE_PATH_LITERAL(""), | 839 FILE_PATH_LITERAL(""), |
| 854 | 840 |
| 855 // Downloaded to default virtual directory. | 841 // Downloaded to default virtual directory. |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 FILE_PATH_LITERAL(""), | 1006 FILE_PATH_LITERAL(""), |
| 1021 DownloadItem::TARGET_DISPOSITION_OVERWRITE, | 1007 DownloadItem::TARGET_DISPOSITION_OVERWRITE, |
| 1022 | 1008 |
| 1023 EXPECT_LOCAL_PATH | 1009 EXPECT_LOCAL_PATH |
| 1024 }, | 1010 }, |
| 1025 }; | 1011 }; |
| 1026 | 1012 |
| 1027 base::FilePath expected_virtual_path( | 1013 base::FilePath expected_virtual_path( |
| 1028 GetPathInDownloadDir(FILE_PATH_LITERAL("virtual/foo.txt"))); | 1014 GetPathInDownloadDir(FILE_PATH_LITERAL("virtual/foo.txt"))); |
| 1029 // The default download directory is the virtual path. | 1015 // The default download directory is the virtual path. |
| 1030 SetDefaultDownloadPath(test_virtual_dir()); | 1016 download_prefs()->SetDownloadPath(test_virtual_dir()); |
| 1031 // Simulate failed call to DetermineLocalPath. | 1017 // Simulate failed call to DetermineLocalPath. |
| 1032 EXPECT_CALL(*delegate(), DetermineLocalPath( | 1018 EXPECT_CALL(*delegate(), DetermineLocalPath( |
| 1033 _, GetPathInDownloadDir(FILE_PATH_LITERAL("virtual/foo.txt")), _)) | 1019 _, GetPathInDownloadDir(FILE_PATH_LITERAL("virtual/foo.txt")), _)) |
| 1034 .WillOnce(WithArg<2>(ScheduleCallback(base::FilePath()))); | 1020 .WillOnce(WithArg<2>(ScheduleCallback(base::FilePath()))); |
| 1035 RunTestCasesWithActiveItem(kLocalPathFailedCases, | 1021 RunTestCasesWithActiveItem(kLocalPathFailedCases, |
| 1036 arraysize(kLocalPathFailedCases)); | 1022 arraysize(kLocalPathFailedCases)); |
| 1037 } | 1023 } |
| 1038 | 1024 |
| 1039 // Downloads that have a danger level of AllowOnUserGesture should be marked as | 1025 // Downloads that have a danger level of AllowOnUserGesture should be marked as |
| 1040 // safe depending on whether there was a user gesture associated with the | 1026 // safe depending on whether there was a user gesture associated with the |
| (...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1454 EXPECT_CRDOWNLOAD | 1440 EXPECT_CRDOWNLOAD |
| 1455 }; | 1441 }; |
| 1456 | 1442 |
| 1457 const DownloadTestCase& test_case = kNotifyExtensionsTestCase; | 1443 const DownloadTestCase& test_case = kNotifyExtensionsTestCase; |
| 1458 scoped_ptr<content::MockDownloadItem> item( | 1444 scoped_ptr<content::MockDownloadItem> item( |
| 1459 CreateActiveDownloadItem(0, test_case)); | 1445 CreateActiveDownloadItem(0, test_case)); |
| 1460 base::FilePath overridden_path(FILE_PATH_LITERAL("overridden/foo.txt")); | 1446 base::FilePath overridden_path(FILE_PATH_LITERAL("overridden/foo.txt")); |
| 1461 base::FilePath full_overridden_path = | 1447 base::FilePath full_overridden_path = |
| 1462 GetPathInDownloadDir(overridden_path.value()); | 1448 GetPathInDownloadDir(overridden_path.value()); |
| 1463 | 1449 |
| 1464 // The last selected directory is this one. Since the test case is a SAVE_AS | 1450 download_prefs()->SetSaveFilePath(GetPathInDownloadDir( |
| 1465 // download, it should use this directory for the generated path. | |
| 1466 set_last_selected_directory(GetPathInDownloadDir( | |
| 1467 FILE_PATH_LITERAL("last_selected"))); | 1451 FILE_PATH_LITERAL("last_selected"))); |
| 1468 | 1452 |
| 1469 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) | 1453 EXPECT_CALL(*delegate(), NotifyExtensions(_, _, _)) |
| 1470 .WillOnce(WithArg<2>( | 1454 .WillOnce(WithArg<2>( |
| 1471 ScheduleCallback2(overridden_path, | 1455 ScheduleCallback2(overridden_path, |
| 1472 DownloadPathReservationTracker::UNIQUIFY))); | 1456 DownloadPathReservationTracker::UNIQUIFY))); |
| 1473 EXPECT_CALL(*delegate(), | 1457 EXPECT_CALL(*delegate(), |
| 1474 PromptUserForDownloadPath(_, full_overridden_path, _)) | 1458 PromptUserForDownloadPath(_, full_overridden_path, _)) |
| 1475 .WillOnce(WithArg<2>( | 1459 .WillOnce(WithArg<2>( |
| 1476 ScheduleCallback(full_overridden_path))); | 1460 ScheduleCallback(full_overridden_path))); |
| 1477 RunTestCase(test_case, item.get()); | 1461 RunTestCase(test_case, item.get()); |
| 1478 } | 1462 } |
| 1479 } // namespace | 1463 } // namespace |
| OLD | NEW |