Index: chrome/browser/download/save_page_browsertest.cc |
=================================================================== |
--- chrome/browser/download/save_page_browsertest.cc (revision 91868) |
+++ chrome/browser/download/save_page_browsertest.cc (working copy) |
@@ -4,25 +4,16 @@ |
#include "base/file_path.h" |
#include "base/file_util.h" |
-#include "base/i18n/file_util_icu.h" |
#include "base/path_service.h" |
#include "base/scoped_temp_dir.h" |
-#include "base/string_util.h" |
-#include "base/utf_string_conversions.h" |
#include "chrome/app/chrome_command_ids.h" |
#include "chrome/browser/download/download_item.h" |
-#include "chrome/browser/download/download_manager.h" |
-#include "chrome/browser/download/download_prefs.h" |
-#include "chrome/browser/download/download_util.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_window.h" |
#include "chrome/browser/ui/download/download_tab_helper.h" |
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
#include "chrome/browser/ui/webui/active_downloads_ui.h" |
#include "chrome/common/chrome_paths.h" |
-#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/test/in_process_browser_test.h" |
#include "chrome/test/ui_test_utils.h" |
@@ -82,73 +73,13 @@ |
#endif |
} |
- // Changes the default folder prefs. This method saves the current folder |
- // for saving HTML, the current folder for saving downloaded files, |
- // the current user's "Downloads" folder and a save type (HTML only or |
- // complete HTML files), and then changes them to |website_save_dir|, |
- // |download_save_dir| and |save_type|, respectively. |
- // If we call this method, we must call RestoreDirectoryPrefs() |
- // after the test to restore the default folder prefs. |
- void ChangeDirectoryPrefs( |
- Profile* profile, |
- const FilePath& website_save_dir, |
- const FilePath& download_save_dir, |
- const SavePackage::SavePackageType save_type) { |
- DCHECK(profile); |
- PrefService* prefs = profile->GetPrefs(); |
- |
- DCHECK(prefs->FindPreference(prefs::kDownloadDefaultDirectory)); |
- prev_download_save_dir_ = prefs->GetFilePath( |
- prefs::kDownloadDefaultDirectory); |
- |
- // Check whether the preference has the default folder for saving HTML. |
- // If not, initialize it with the default folder for downloaded files. |
- if (!prefs->FindPreference(prefs::kSaveFileDefaultDirectory)) { |
- prefs->RegisterFilePathPref(prefs::kSaveFileDefaultDirectory, |
- prev_download_save_dir_, |
- PrefService::UNSYNCABLE_PREF); |
- } |
- prev_website_save_dir_ = prefs->GetFilePath( |
- prefs::kSaveFileDefaultDirectory); |
- |
- DownloadPrefs* download_prefs = |
- profile->GetDownloadManager()->download_prefs(); |
- prev_save_type_ = |
- static_cast<SavePackage::SavePackageType> |
- (download_prefs->save_file_type()); |
- |
- prefs->SetFilePath( |
- prefs::kSaveFileDefaultDirectory, website_save_dir); |
- prefs->SetFilePath( |
- prefs::kDownloadDefaultDirectory, download_save_dir); |
- prefs->SetInteger(prefs::kSaveFileType, save_type); |
- } |
- |
- // Restores the default folder prefs. |
- void RestoreDirectoryPrefs(Profile* profile) { |
- DCHECK(profile); |
- PrefService* prefs = profile->GetPrefs(); |
- prefs->SetFilePath( |
- prefs::kSaveFileDefaultDirectory, prev_website_save_dir_); |
- prefs->SetFilePath( |
- prefs::kDownloadDefaultDirectory, prev_download_save_dir_); |
- prefs->SetInteger(prefs::kSaveFileType, prev_save_type_); |
- } |
- |
// Path to directory containing test data. |
FilePath test_dir_; |
// Temporary directory we will save pages to. |
ScopedTempDir save_dir_; |
- |
- // Temporarily stores the default folder prefs. |
- FilePath prev_website_save_dir_; |
- FilePath prev_download_save_dir_; |
- SavePackage::SavePackageType prev_save_type_; |
}; |
-} // namespace |
- |
IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveHTMLOnly) { |
FilePath file_name(FILE_PATH_LITERAL("a.htm")); |
GURL url = URLRequestMockHTTPJob::GetMockUrl( |
@@ -233,179 +164,6 @@ |
dir.AppendASCII("1.css"))); |
} |
-// Checks if an HTML page is saved to the default folder for saving HTML |
-// in the following situation: |
-// The default folder for saving HTML exists. |
-// The default folder for downloaded files exists. |
-// The user's "Downloads" folder exists. |
-IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveFolder1) { |
- FilePath file_name(FILE_PATH_LITERAL("a.htm")); |
- GURL url = URLRequestMockHTTPJob::GetMockUrl( |
- FilePath(kTestDir).Append(file_name)); |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- TabContentsWrapper* current_tab = browser()->GetSelectedTabContentsWrapper(); |
- ASSERT_TRUE(current_tab); |
- ASSERT_TRUE(current_tab->tab_contents()); |
- ASSERT_TRUE(current_tab->tab_contents()->profile()); |
- |
- ScopedTempDir website_save_dir, download_save_dir; |
- // Prepare the default folder for saving HTML. |
- ASSERT_TRUE(website_save_dir.CreateUniqueTempDir()); |
- // Prepare the default folder for downloaded files. |
- ASSERT_TRUE(download_save_dir.CreateUniqueTempDir()); |
- |
- // Changes the default prefs. |
- ChangeDirectoryPrefs( |
- current_tab->tab_contents()->profile(), |
- website_save_dir.path(), |
- download_save_dir.path(), |
- SavePackage::SAVE_AS_ONLY_HTML); |
- |
- |
- std::string ascii_basename = |
- UTF16ToASCII(current_tab->download_tab_helper()-> |
- SavePageBasedOnDefaultPrefs()) + ".html"; |
- FilePath::StringType basename; |
-#if defined(OS_WIN) |
- basename = ASCIIToWide(ascii_basename); |
-#else |
- basename = ascii_basename; |
-#endif |
- file_util::ReplaceIllegalCharactersInPath(&basename, ' '); |
- FilePath full_file_name = website_save_dir.path().Append(FilePath(basename)); |
- |
- EXPECT_EQ(url, WaitForSavePackageToFinish()); |
- |
- CheckDownloadUI(full_file_name); |
- |
- // Is the file downloaded to the default folder for saving HTML? |
- EXPECT_TRUE(file_util::PathExists(full_file_name)); |
- EXPECT_TRUE(file_util::ContentsEqual( |
- test_dir_.Append(FilePath(kTestDir)).Append(file_name), |
- full_file_name)); |
- |
- RestoreDirectoryPrefs(current_tab->tab_contents()->profile()); |
-} |
- |
-// Checks if an HTML page is saved to the default folder for downloaded files |
-// in the following situation: |
-// The default folder for saving HTML does not exist. |
-// The default folder for downloaded files exists. |
-// The user's "Downloads" folder exists. |
-IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveFolder2) { |
- FilePath file_name(FILE_PATH_LITERAL("a.htm")); |
- GURL url = URLRequestMockHTTPJob::GetMockUrl( |
- FilePath(kTestDir).Append(file_name)); |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- TabContentsWrapper* current_tab = browser()->GetSelectedTabContentsWrapper(); |
- ASSERT_TRUE(current_tab); |
- ASSERT_TRUE(current_tab->tab_contents()); |
- ASSERT_TRUE(current_tab->tab_contents()->profile()); |
- |
- ScopedTempDir download_save_dir; |
- // Prepare the default folder for saving downloaded files. |
- ASSERT_TRUE(download_save_dir.CreateUniqueTempDir()); |
- // Prepare non-existent folder. |
- FilePath nonexistent_path( |
- FILE_PATH_LITERAL("/tmp/koakuma_mikity_moemoe_nyannyan")); |
- ASSERT_FALSE(file_util::PathExists(nonexistent_path)); |
- |
- // Changes the default prefs. |
- ChangeDirectoryPrefs( |
- current_tab->tab_contents()->profile(), |
- nonexistent_path, |
- download_save_dir.path(), |
- SavePackage::SAVE_AS_ONLY_HTML); |
- |
- std::string ascii_basename = |
- UTF16ToASCII(current_tab->download_tab_helper()-> |
- SavePageBasedOnDefaultPrefs()) + ".html"; |
- FilePath::StringType basename; |
-#if defined(OS_WIN) |
- basename = ASCIIToWide(ascii_basename); |
-#else |
- basename = ascii_basename; |
-#endif |
- file_util::ReplaceIllegalCharactersInPath(&basename, ' '); |
- FilePath full_file_name = download_save_dir.path().Append(FilePath(basename)); |
- |
- EXPECT_EQ(url, WaitForSavePackageToFinish()); |
- |
- CheckDownloadUI(full_file_name); |
- |
- // Is the file downloaded to the default folder for downloaded files? |
- EXPECT_TRUE(file_util::PathExists(full_file_name)); |
- EXPECT_FALSE(file_util::PathExists(nonexistent_path)); |
- EXPECT_TRUE(file_util::ContentsEqual( |
- test_dir_.Append(FilePath(kTestDir)).Append(file_name), |
- full_file_name)); |
- |
- RestoreDirectoryPrefs(current_tab->tab_contents()->profile()); |
-} |
- |
-// Checks if an HTML page is saved to the user's "Downloads" directory |
-// in the following situation: |
-// The default folder for saving HTML does not exist. |
-// The default folder for downloaded files does not exist. |
-// The user's "Downloads" folder exists. |
-IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, SaveFolder3) { |
- FilePath file_name(FILE_PATH_LITERAL("a.htm")); |
- GURL url = URLRequestMockHTTPJob::GetMockUrl( |
- FilePath(kTestDir).Append(file_name)); |
- ui_test_utils::NavigateToURL(browser(), url); |
- |
- TabContentsWrapper* current_tab = browser()->GetSelectedTabContentsWrapper(); |
- ASSERT_TRUE(current_tab); |
- ASSERT_TRUE(current_tab->tab_contents()); |
- ASSERT_TRUE(current_tab->tab_contents()->profile()); |
- |
- // Prepare non-existent folder. |
- FilePath nonexistent_path1( |
- FILE_PATH_LITERAL("/tmp/koakuma_mikity_moemoe_nyannyan")); |
- FilePath nonexistent_path2( |
- FILE_PATH_LITERAL("/tmp/koakuma_mikity_moemoe_pyonpyon")); |
- ASSERT_FALSE(file_util::PathExists(nonexistent_path1)); |
- ASSERT_FALSE(file_util::PathExists(nonexistent_path2)); |
- |
- // Changes the default prefs. |
- ChangeDirectoryPrefs( |
- current_tab->tab_contents()->profile(), |
- nonexistent_path1, |
- nonexistent_path2, |
- SavePackage::SAVE_AS_ONLY_HTML); |
- |
- std::string ascii_basename = |
- UTF16ToASCII(current_tab->download_tab_helper()-> |
- SavePageBasedOnDefaultPrefs()) + ".html"; |
- FilePath::StringType basename; |
-#if defined(OS_WIN) |
- basename = ASCIIToWide(ascii_basename); |
-#else |
- basename = ascii_basename; |
-#endif |
- file_util::ReplaceIllegalCharactersInPath(&basename, ' '); |
- FilePath default_download_dir = |
- download_util::GetDefaultDownloadDirectoryFromPathService(); |
- FilePath full_file_name = |
- default_download_dir.Append(FilePath(basename)); |
- |
- EXPECT_EQ(url, WaitForSavePackageToFinish()); |
- |
- CheckDownloadUI(full_file_name); |
- |
- // Is the file downloaded to the user's "Downloads" directory? |
- EXPECT_TRUE(file_util::PathExists(full_file_name)); |
- EXPECT_FALSE(file_util::PathExists(nonexistent_path1)); |
- EXPECT_FALSE(file_util::PathExists(nonexistent_path2)); |
- EXPECT_TRUE(file_util::ContentsEqual( |
- test_dir_.Append(FilePath(kTestDir)).Append(file_name), |
- full_file_name)); |
- |
- RestoreDirectoryPrefs(current_tab->tab_contents()->profile()); |
-} |
- |
IN_PROC_BROWSER_TEST_F(SavePageBrowserTest, NoSave) { |
ui_test_utils::NavigateToURL(browser(), GURL(chrome::kAboutBlankURL)); |
ASSERT_TRUE(browser()->command_updater()->SupportsCommand(IDC_SAVE_PAGE)); |
@@ -446,3 +204,5 @@ |
test_dir_.Append(FilePath(kTestDir)).AppendASCII("1.css"), |
dir.AppendASCII("1.css"))); |
} |
+ |
+} // namespace |