| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 | 308 |
| 309 protected: | 309 protected: |
| 310 void SetUp() override { | 310 void SetUp() override { |
| 311 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir_)); | 311 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_dir_)); |
| 312 ASSERT_TRUE(save_dir_.CreateUniqueTempDir()); | 312 ASSERT_TRUE(save_dir_.CreateUniqueTempDir()); |
| 313 InProcessBrowserTest::SetUp(); | 313 InProcessBrowserTest::SetUp(); |
| 314 } | 314 } |
| 315 | 315 |
| 316 void SetUpOnMainThread() override { | 316 void SetUpOnMainThread() override { |
| 317 browser()->profile()->GetPrefs()->SetFilePath( | 317 browser()->profile()->GetPrefs()->SetFilePath( |
| 318 prefs::kDownloadDefaultDirectory, save_dir_.path()); | 318 prefs::kDownloadDefaultDirectory, save_dir_.GetPath()); |
| 319 browser()->profile()->GetPrefs()->SetFilePath( | 319 browser()->profile()->GetPrefs()->SetFilePath( |
| 320 prefs::kSaveFileDefaultDirectory, save_dir_.path()); | 320 prefs::kSaveFileDefaultDirectory, save_dir_.GetPath()); |
| 321 BrowserThread::PostTask( | 321 BrowserThread::PostTask( |
| 322 BrowserThread::IO, FROM_HERE, | 322 BrowserThread::IO, FROM_HERE, |
| 323 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); | 323 base::Bind(&chrome_browser_net::SetUrlRequestMocksEnabled, true)); |
| 324 } | 324 } |
| 325 | 325 |
| 326 GURL NavigateToMockURL(const std::string& prefix) { | 326 GURL NavigateToMockURL(const std::string& prefix) { |
| 327 GURL url = URLRequestMockHTTPJob::GetMockUrl( | 327 GURL url = URLRequestMockHTTPJob::GetMockUrl( |
| 328 "save_page/" + prefix + ".htm"); | 328 "save_page/" + prefix + ".htm"); |
| 329 ui_test_utils::NavigateToURL(browser(), url); | 329 ui_test_utils::NavigateToURL(browser(), url); |
| 330 return url; | 330 return url; |
| 331 } | 331 } |
| 332 | 332 |
| 333 // Returns full paths of destination file and directory. | 333 // Returns full paths of destination file and directory. |
| 334 void GetDestinationPaths(const std::string& prefix, | 334 void GetDestinationPaths(const std::string& prefix, |
| 335 base::FilePath* full_file_name, | 335 base::FilePath* full_file_name, |
| 336 base::FilePath* dir, | 336 base::FilePath* dir, |
| 337 content::SavePageType save_page_type = | 337 content::SavePageType save_page_type = |
| 338 content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML) { | 338 content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML) { |
| 339 std::string extension = | 339 std::string extension = |
| 340 (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML) ? ".mht" : ".htm"; | 340 (save_page_type == content::SAVE_PAGE_TYPE_AS_MHTML) ? ".mht" : ".htm"; |
| 341 *full_file_name = save_dir_.path().AppendASCII(prefix + extension); | 341 *full_file_name = save_dir_.GetPath().AppendASCII(prefix + extension); |
| 342 *dir = save_dir_.path().AppendASCII(prefix + "_files"); | 342 *dir = save_dir_.GetPath().AppendASCII(prefix + "_files"); |
| 343 } | 343 } |
| 344 | 344 |
| 345 WebContents* GetCurrentTab(Browser* browser) const { | 345 WebContents* GetCurrentTab(Browser* browser) const { |
| 346 WebContents* current_tab = | 346 WebContents* current_tab = |
| 347 browser->tab_strip_model()->GetActiveWebContents(); | 347 browser->tab_strip_model()->GetActiveWebContents(); |
| 348 EXPECT_TRUE(current_tab); | 348 EXPECT_TRUE(current_tab); |
| 349 return current_tab; | 349 return current_tab; |
| 350 } | 350 } |
| 351 | 351 |
| 352 // Returns true if and when there was a single download created, and its url | 352 // Returns true if and when there was a single download created, and its url |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 } | 605 } |
| 606 | 606 |
| 607 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, NoSave) { | 607 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, NoSave) { |
| 608 ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); | 608 ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); |
| 609 EXPECT_FALSE(chrome::CanSavePage(browser())); | 609 EXPECT_FALSE(chrome::CanSavePage(browser())); |
| 610 } | 610 } |
| 611 | 611 |
| 612 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, FileNameFromPageTitle) { | 612 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, FileNameFromPageTitle) { |
| 613 GURL url = NavigateToMockURL("b"); | 613 GURL url = NavigateToMockURL("b"); |
| 614 | 614 |
| 615 base::FilePath full_file_name = save_dir_.path().AppendASCII( | 615 base::FilePath full_file_name = save_dir_.GetPath().AppendASCII( |
| 616 std::string("Test page for saving page feature") + kAppendedExtension); | 616 std::string("Test page for saving page feature") + kAppendedExtension); |
| 617 base::FilePath dir = save_dir_.path().AppendASCII( | 617 base::FilePath dir = save_dir_.GetPath().AppendASCII( |
| 618 "Test page for saving page feature_files"); | 618 "Test page for saving page feature_files"); |
| 619 DownloadPersistedObserver persisted(browser()->profile(), base::Bind( | 619 DownloadPersistedObserver persisted(browser()->profile(), base::Bind( |
| 620 &DownloadStoredProperly, url, full_file_name, 3, | 620 &DownloadStoredProperly, url, full_file_name, 3, |
| 621 history::DownloadState::COMPLETE)); | 621 history::DownloadState::COMPLETE)); |
| 622 scoped_refptr<content::MessageLoopRunner> loop_runner( | 622 scoped_refptr<content::MessageLoopRunner> loop_runner( |
| 623 new content::MessageLoopRunner); | 623 new content::MessageLoopRunner); |
| 624 SavePackageFinishedObserver observer( | 624 SavePackageFinishedObserver observer( |
| 625 content::BrowserContext::GetDownloadManager(browser()->profile()), | 625 content::BrowserContext::GetDownloadManager(browser()->profile()), |
| 626 loop_runner->QuitClosure()); | 626 loop_runner->QuitClosure()); |
| 627 ASSERT_TRUE(GetCurrentTab(browser())->SavePage( | 627 ASSERT_TRUE(GetCurrentTab(browser())->SavePage( |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 815 | 815 |
| 816 // Test that file: URI won't be saved when referred to from an HTTP page. | 816 // Test that file: URI won't be saved when referred to from an HTTP page. |
| 817 // See also https://crbug.com/616429. | 817 // See also https://crbug.com/616429. |
| 818 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveUnauthorizedResource) { | 818 IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveUnauthorizedResource) { |
| 819 GURL url = NavigateToMockURL("unauthorized-access"); | 819 GURL url = NavigateToMockURL("unauthorized-access"); |
| 820 | 820 |
| 821 // Create a test file (that the web page should not have access to). | 821 // Create a test file (that the web page should not have access to). |
| 822 base::ScopedTempDir temp_dir2; | 822 base::ScopedTempDir temp_dir2; |
| 823 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir()); | 823 ASSERT_TRUE(temp_dir2.CreateUniqueTempDir()); |
| 824 base::FilePath file_path = | 824 base::FilePath file_path = |
| 825 temp_dir2.path().Append(FILE_PATH_LITERAL("should-not-save.jpg")); | 825 temp_dir2.GetPath().Append(FILE_PATH_LITERAL("should-not-save.jpg")); |
| 826 std::string file_content("fake-jpg"); | 826 std::string file_content("fake-jpg"); |
| 827 ASSERT_LT( | 827 ASSERT_LT( |
| 828 0, base::WriteFile(file_path, file_content.data(), file_content.size())); | 828 0, base::WriteFile(file_path, file_content.data(), file_content.size())); |
| 829 | 829 |
| 830 // Refer to the test file from the test page. | 830 // Refer to the test file from the test page. |
| 831 GURL file_url = net::FilePathToFileURL(file_path); | 831 GURL file_url = net::FilePathToFileURL(file_path); |
| 832 ASSERT_TRUE(ExecuteScript( | 832 ASSERT_TRUE(ExecuteScript( |
| 833 browser()->tab_strip_model()->GetWebContentsAt(0), | 833 browser()->tab_strip_model()->GetWebContentsAt(0), |
| 834 base::StringPrintf("document.getElementById('resource1').src = '%s';", | 834 base::StringPrintf("document.getElementById('resource1').src = '%s';", |
| 835 file_url.spec().data()))); | 835 file_url.spec().data()))); |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1317 TestOriginalVsSavedPage(save_page_type, url, 1, expected_substrings); | 1317 TestOriginalVsSavedPage(save_page_type, url, 1, expected_substrings); |
| 1318 } | 1318 } |
| 1319 | 1319 |
| 1320 INSTANTIATE_TEST_CASE_P( | 1320 INSTANTIATE_TEST_CASE_P( |
| 1321 SaveType, | 1321 SaveType, |
| 1322 SavePageOriginalVsSavedComparisonTest, | 1322 SavePageOriginalVsSavedComparisonTest, |
| 1323 ::testing::Values(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, | 1323 ::testing::Values(content::SAVE_PAGE_TYPE_AS_COMPLETE_HTML, |
| 1324 content::SAVE_PAGE_TYPE_AS_MHTML)); | 1324 content::SAVE_PAGE_TYPE_AS_MHTML)); |
| 1325 | 1325 |
| 1326 } // namespace | 1326 } // namespace |
| OLD | NEW |