| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
| 7 #include "base/platform_thread.h" | 7 #include "base/platform_thread.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "chrome/app/chrome_dll_resource.h" | 9 #include "chrome/app/chrome_dll_resource.h" |
| 10 #include "chrome/browser/automation/url_request_mock_http_job.h" | 10 #include "chrome/browser/automation/url_request_mock_http_job.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 FilePath download_dir_; | 72 FilePath download_dir_; |
| 73 }; | 73 }; |
| 74 | 74 |
| 75 TEST_F(SavePageTest, SaveHTMLOnly) { | 75 TEST_F(SavePageTest, SaveHTMLOnly) { |
| 76 std::string file_name("a.htm"); | 76 std::string file_name("a.htm"); |
| 77 FilePath full_file_name = save_dir_.AppendASCII(file_name); | 77 FilePath full_file_name = save_dir_.AppendASCII(file_name); |
| 78 FilePath dir = save_dir_.AppendASCII("a_files"); | 78 FilePath dir = save_dir_.AppendASCII("a_files"); |
| 79 | 79 |
| 80 GURL url = URLRequestMockHTTPJob::GetMockUrl( | 80 GURL url = URLRequestMockHTTPJob::GetMockUrl( |
| 81 UTF8ToWide(kTestDir + "/" + file_name)); | 81 UTF8ToWide(kTestDir + "/" + file_name)); |
| 82 scoped_ptr<TabProxy> tab(GetActiveTab()); | 82 scoped_refptr<TabProxy> tab(GetActiveTab()); |
| 83 ASSERT_TRUE(tab->NavigateToURL(url)); | 83 ASSERT_TRUE(tab->NavigateToURL(url)); |
| 84 WaitUntilTabCount(1); | 84 WaitUntilTabCount(1); |
| 85 | 85 |
| 86 EXPECT_TRUE(tab->SavePage(full_file_name.ToWStringHack(), dir.ToWStringHack(), | 86 EXPECT_TRUE(tab->SavePage(full_file_name.ToWStringHack(), dir.ToWStringHack(), |
| 87 SavePackage::SAVE_AS_ONLY_HTML)); | 87 SavePackage::SAVE_AS_ONLY_HTML)); |
| 88 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); | 88 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); |
| 89 | 89 |
| 90 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), | 90 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), |
| 91 true); | 91 true); |
| 92 EXPECT_FALSE(file_util::PathExists(dir)); | 92 EXPECT_FALSE(file_util::PathExists(dir)); |
| 93 } | 93 } |
| 94 | 94 |
| 95 TEST_F(SavePageTest, SaveCompleteHTML) { | 95 TEST_F(SavePageTest, SaveCompleteHTML) { |
| 96 std::string file_name = "b.htm"; | 96 std::string file_name = "b.htm"; |
| 97 FilePath full_file_name = save_dir_.AppendASCII(file_name); | 97 FilePath full_file_name = save_dir_.AppendASCII(file_name); |
| 98 FilePath dir = save_dir_.AppendASCII("b_files"); | 98 FilePath dir = save_dir_.AppendASCII("b_files"); |
| 99 | 99 |
| 100 GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" + | 100 GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" + |
| 101 file_name)); | 101 file_name)); |
| 102 scoped_ptr<TabProxy> tab(GetActiveTab()); | 102 scoped_refptr<TabProxy> tab(GetActiveTab()); |
| 103 ASSERT_TRUE(tab->NavigateToURL(url)); | 103 ASSERT_TRUE(tab->NavigateToURL(url)); |
| 104 WaitUntilTabCount(1); | 104 WaitUntilTabCount(1); |
| 105 | 105 |
| 106 EXPECT_TRUE(tab->SavePage(full_file_name.ToWStringHack(), dir.ToWStringHack(), | 106 EXPECT_TRUE(tab->SavePage(full_file_name.ToWStringHack(), dir.ToWStringHack(), |
| 107 SavePackage::SAVE_AS_COMPLETE_HTML)); | 107 SavePackage::SAVE_AS_COMPLETE_HTML)); |
| 108 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); | 108 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); |
| 109 | 109 |
| 110 CheckFile(dir.AppendASCII("1.png"), FilePath(FILE_PATH_LITERAL("1.png")), | 110 CheckFile(dir.AppendASCII("1.png"), FilePath(FILE_PATH_LITERAL("1.png")), |
| 111 true); | 111 true); |
| 112 CheckFile(dir.AppendASCII("1.css"), FilePath(FILE_PATH_LITERAL("1.css")), | 112 CheckFile(dir.AppendASCII("1.css"), FilePath(FILE_PATH_LITERAL("1.css")), |
| 113 true); | 113 true); |
| 114 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), | 114 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), |
| 115 false); | 115 false); |
| 116 EXPECT_TRUE(DieFileDie(dir, true)); | 116 EXPECT_TRUE(DieFileDie(dir, true)); |
| 117 } | 117 } |
| 118 | 118 |
| 119 TEST_F(SavePageTest, NoSave) { | 119 TEST_F(SavePageTest, NoSave) { |
| 120 std::string file_name = "c.htm"; | 120 std::string file_name = "c.htm"; |
| 121 FilePath full_file_name = save_dir_.AppendASCII(file_name); | 121 FilePath full_file_name = save_dir_.AppendASCII(file_name); |
| 122 FilePath dir = save_dir_.AppendASCII("c_files"); | 122 FilePath dir = save_dir_.AppendASCII("c_files"); |
| 123 | 123 |
| 124 scoped_ptr<TabProxy> tab(GetActiveTab()); | 124 scoped_refptr<TabProxy> tab(GetActiveTab()); |
| 125 ASSERT_TRUE(tab->NavigateToURL(GURL("about:blank"))); | 125 ASSERT_TRUE(tab->NavigateToURL(GURL("about:blank"))); |
| 126 WaitUntilTabCount(1); | 126 WaitUntilTabCount(1); |
| 127 | 127 |
| 128 EXPECT_FALSE(tab->SavePage(full_file_name.ToWStringHack(), | 128 EXPECT_FALSE(tab->SavePage(full_file_name.ToWStringHack(), |
| 129 dir.ToWStringHack(), | 129 dir.ToWStringHack(), |
| 130 SavePackage::SAVE_AS_ONLY_HTML)); | 130 SavePackage::SAVE_AS_ONLY_HTML)); |
| 131 EXPECT_FALSE(WaitForDownloadShelfVisible(tab.get())); | 131 EXPECT_FALSE(WaitForDownloadShelfVisible(tab.get())); |
| 132 } | 132 } |
| 133 | 133 |
| 134 TEST_F(SavePageTest, FilenameFromPageTitle) { | 134 TEST_F(SavePageTest, FilenameFromPageTitle) { |
| 135 std::string file_name = "b.htm"; | 135 std::string file_name = "b.htm"; |
| 136 | 136 |
| 137 FilePath full_file_name = download_dir_.AppendASCII( | 137 FilePath full_file_name = download_dir_.AppendASCII( |
| 138 "Test page for saving page feature" + kAppendedExtension); | 138 "Test page for saving page feature" + kAppendedExtension); |
| 139 FilePath dir = download_dir_.AppendASCII( | 139 FilePath dir = download_dir_.AppendASCII( |
| 140 "Test page for saving page feature_files"); | 140 "Test page for saving page feature_files"); |
| 141 | 141 |
| 142 GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" + | 142 GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" + |
| 143 file_name)); | 143 file_name)); |
| 144 scoped_ptr<TabProxy> tab(GetActiveTab()); | 144 scoped_refptr<TabProxy> tab(GetActiveTab()); |
| 145 ASSERT_TRUE(tab->NavigateToURL(url)); | 145 ASSERT_TRUE(tab->NavigateToURL(url)); |
| 146 WaitUntilTabCount(1); | 146 WaitUntilTabCount(1); |
| 147 | 147 |
| 148 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); | 148 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); |
| 149 automation()->SavePackageShouldPromptUser(false); | 149 automation()->SavePackageShouldPromptUser(false); |
| 150 EXPECT_TRUE(browser->RunCommandAsync(IDC_SAVE_PAGE)); | 150 EXPECT_TRUE(browser->RunCommandAsync(IDC_SAVE_PAGE)); |
| 151 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); | 151 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); |
| 152 automation()->SavePackageShouldPromptUser(true); | 152 automation()->SavePackageShouldPromptUser(true); |
| 153 | 153 |
| 154 CheckFile(dir.AppendASCII("1.png"), FilePath(FILE_PATH_LITERAL("1.png")), | 154 CheckFile(dir.AppendASCII("1.png"), FilePath(FILE_PATH_LITERAL("1.png")), |
| 155 true); | 155 true); |
| 156 CheckFile(dir.AppendASCII("1.css"), FilePath(FILE_PATH_LITERAL("1.css")), | 156 CheckFile(dir.AppendASCII("1.css"), FilePath(FILE_PATH_LITERAL("1.css")), |
| 157 true); | 157 true); |
| 158 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), | 158 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), |
| 159 false); | 159 false); |
| 160 EXPECT_TRUE(DieFileDie(full_file_name, false)); | 160 EXPECT_TRUE(DieFileDie(full_file_name, false)); |
| 161 EXPECT_TRUE(DieFileDie(dir, true)); | 161 EXPECT_TRUE(DieFileDie(dir, true)); |
| 162 } | 162 } |
| 163 | 163 |
| 164 // This tests that a webpage with the title "test.exe" is saved as | 164 // This tests that a webpage with the title "test.exe" is saved as |
| 165 // "test.exe.htm". | 165 // "test.exe.htm". |
| 166 // We probably don't care to handle this on Linux or Mac. | 166 // We probably don't care to handle this on Linux or Mac. |
| 167 #if defined(OS_WIN) | 167 #if defined(OS_WIN) |
| 168 TEST_F(SavePageTest, CleanFilenameFromPageTitle) { | 168 TEST_F(SavePageTest, CleanFilenameFromPageTitle) { |
| 169 std::string file_name = "c.htm"; | 169 std::string file_name = "c.htm"; |
| 170 FilePath full_file_name = download_dir_.AppendASCII("test.exe" + | 170 FilePath full_file_name = download_dir_.AppendASCII("test.exe" + |
| 171 kAppendedExtension); | 171 kAppendedExtension); |
| 172 FilePath dir = download_dir_.AppendASCII("test.exe_files"); | 172 FilePath dir = download_dir_.AppendASCII("test.exe_files"); |
| 173 | 173 |
| 174 GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" + | 174 GURL url = URLRequestMockHTTPJob::GetMockUrl(UTF8ToWide(kTestDir + "/" + |
| 175 file_name)); | 175 file_name)); |
| 176 scoped_ptr<TabProxy> tab(GetActiveTab()); | 176 scoped_refptr<TabProxy> tab(GetActiveTab()); |
| 177 ASSERT_TRUE(tab->NavigateToURL(url)); | 177 ASSERT_TRUE(tab->NavigateToURL(url)); |
| 178 WaitUntilTabCount(1); | 178 WaitUntilTabCount(1); |
| 179 | 179 |
| 180 scoped_ptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); | 180 scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); |
| 181 automation()->SavePackageShouldPromptUser(false); | 181 automation()->SavePackageShouldPromptUser(false); |
| 182 EXPECT_TRUE(browser->RunCommandAsync(IDC_SAVE_PAGE)); | 182 EXPECT_TRUE(browser->RunCommandAsync(IDC_SAVE_PAGE)); |
| 183 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); | 183 EXPECT_TRUE(WaitForDownloadShelfVisible(tab.get())); |
| 184 automation()->SavePackageShouldPromptUser(true); | 184 automation()->SavePackageShouldPromptUser(true); |
| 185 | 185 |
| 186 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), | 186 CheckFile(full_file_name, FilePath::FromWStringHack(UTF8ToWide(file_name)), |
| 187 false); | 187 false); |
| 188 EXPECT_TRUE(DieFileDie(full_file_name, false)); | 188 EXPECT_TRUE(DieFileDie(full_file_name, false)); |
| 189 EXPECT_TRUE(DieFileDie(dir, true)); | 189 EXPECT_TRUE(DieFileDie(dir, true)); |
| 190 } | 190 } |
| 191 #endif | 191 #endif |
| OLD | NEW |