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 |