OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/macros.h" | 5 #include "base/macros.h" |
6 #include "base/run_loop.h" | 6 #include "base/run_loop.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
10 #include "content/browser/frame_host/navigation_entry_impl.h" | 10 #include "content/browser/frame_host/navigation_entry_impl.h" |
(...skipping 1156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 MOCK_METHOD5(OnFinishDownloadImage, void( | 1167 MOCK_METHOD5(OnFinishDownloadImage, void( |
1168 int id, | 1168 int id, |
1169 int status_code, | 1169 int status_code, |
1170 const GURL& image_url, | 1170 const GURL& image_url, |
1171 const std::vector<SkBitmap>& bitmap, | 1171 const std::vector<SkBitmap>& bitmap, |
1172 const std::vector<gfx::Size>& sizes)); | 1172 const std::vector<gfx::Size>& sizes)); |
1173 ~DownloadImageObserver() = default; | 1173 ~DownloadImageObserver() = default; |
1174 }; | 1174 }; |
1175 | 1175 |
1176 void DownloadImageTestInternal(Shell* shell, | 1176 void DownloadImageTestInternal(Shell* shell, |
1177 const GURL &image_url, | 1177 const GURL& image_url, |
1178 int expected_http_status) { | 1178 int expected_http_status, |
| 1179 int expected_number_of_images) { |
1179 using ::testing::_; | 1180 using ::testing::_; |
1180 using ::testing::InvokeWithoutArgs; | 1181 using ::testing::InvokeWithoutArgs; |
| 1182 using ::testing::SizeIs; |
1181 | 1183 |
1182 // Set up everything. | 1184 // Set up everything. |
1183 DownloadImageObserver download_image_observer; | 1185 DownloadImageObserver download_image_observer; |
1184 scoped_refptr<MessageLoopRunner> loop_runner = | 1186 scoped_refptr<MessageLoopRunner> loop_runner = |
1185 new MessageLoopRunner(); | 1187 new MessageLoopRunner(); |
1186 | 1188 |
1187 // Set up expectation and stub. | 1189 // Set up expectation and stub. |
1188 EXPECT_CALL(download_image_observer, | 1190 EXPECT_CALL(download_image_observer, |
1189 OnFinishDownloadImage(_, expected_http_status, _, _, _)); | 1191 OnFinishDownloadImage(_, expected_http_status, _, |
| 1192 SizeIs(expected_number_of_images), _)); |
1190 ON_CALL(download_image_observer, OnFinishDownloadImage(_, _, _, _, _)) | 1193 ON_CALL(download_image_observer, OnFinishDownloadImage(_, _, _, _, _)) |
1191 .WillByDefault( | 1194 .WillByDefault( |
1192 InvokeWithoutArgs(loop_runner.get(), &MessageLoopRunner::Quit)); | 1195 InvokeWithoutArgs(loop_runner.get(), &MessageLoopRunner::Quit)); |
1193 | 1196 |
1194 shell->LoadURL(GURL("about:blank")); | 1197 shell->LoadURL(GURL("about:blank")); |
1195 shell->web_contents()->DownloadImage( | 1198 shell->web_contents()->DownloadImage( |
1196 image_url, false, 1024, false, | 1199 image_url, false, 1024, false, |
1197 base::Bind(&DownloadImageObserver::OnFinishDownloadImage, | 1200 base::Bind(&DownloadImageObserver::OnFinishDownloadImage, |
1198 base::Unretained(&download_image_observer))); | 1201 base::Unretained(&download_image_observer))); |
1199 | 1202 |
(...skipping 11 matching lines...) Expand all Loading... |
1211 EXPECT_TRUE(bitmap.empty()); | 1214 EXPECT_TRUE(bitmap.empty()); |
1212 EXPECT_TRUE(sizes.empty()); | 1215 EXPECT_TRUE(sizes.empty()); |
1213 quit_closure.Run(); | 1216 quit_closure.Run(); |
1214 } | 1217 } |
1215 | 1218 |
1216 } // anonymous namespace | 1219 } // anonymous namespace |
1217 | 1220 |
1218 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, | 1221 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, |
1219 DownloadImage_HttpImage) { | 1222 DownloadImage_HttpImage) { |
1220 ASSERT_TRUE(embedded_test_server()->Start()); | 1223 ASSERT_TRUE(embedded_test_server()->Start()); |
1221 const GURL kImageUrl = | 1224 const GURL kImageUrl = embedded_test_server()->GetURL("/single_face.jpg"); |
1222 embedded_test_server()->GetURL("/image.jpg"); | 1225 DownloadImageTestInternal(shell(), kImageUrl, 200, 1); |
1223 DownloadImageTestInternal(shell(), kImageUrl, 200); | |
1224 } | 1226 } |
1225 | 1227 |
1226 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, | 1228 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, |
1227 DownloadImage_Deny_FileImage) { | 1229 DownloadImage_Deny_FileImage) { |
| 1230 ASSERT_TRUE(embedded_test_server()->Start()); |
| 1231 shell()->LoadURL(embedded_test_server()->GetURL("/simple_page.html")); |
| 1232 |
| 1233 const GURL kImageUrl = GetTestUrl("", "single_face.jpg"); |
| 1234 DownloadImageTestInternal(shell(), kImageUrl, 0, 0); |
| 1235 } |
| 1236 |
| 1237 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, |
| 1238 DownloadImage_Allow_FileImage) { |
| 1239 shell()->LoadURL(GetTestUrl("", "simple_page.html")); |
| 1240 |
1228 const GURL kImageUrl = | 1241 const GURL kImageUrl = |
1229 GetTestUrl("", "image.jpg"); | 1242 GetTestUrl("", "image.jpg"); |
1230 DownloadImageTestInternal(shell(), kImageUrl, 0); | 1243 DownloadImageTestInternal(shell(), kImageUrl, 0, 0); |
1231 } | 1244 } |
1232 | 1245 |
1233 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, DownloadImage_NoValidImage) { | 1246 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, DownloadImage_NoValidImage) { |
1234 ASSERT_TRUE(embedded_test_server()->Start()); | 1247 ASSERT_TRUE(embedded_test_server()->Start()); |
1235 const GURL kImageUrl = embedded_test_server()->GetURL("/invalid.ico"); | 1248 const GURL kImageUrl = embedded_test_server()->GetURL("/invalid.ico"); |
1236 shell()->LoadURL(GURL("about:blank")); | 1249 shell()->LoadURL(GURL("about:blank")); |
1237 base::RunLoop run_loop; | 1250 base::RunLoop run_loop; |
1238 shell()->web_contents()->DownloadImage( | 1251 shell()->web_contents()->DownloadImage( |
1239 kImageUrl, false, 2, false, | 1252 kImageUrl, false, 2, false, |
1240 base::Bind(&ExpectNoValidImageCallback, run_loop.QuitClosure())); | 1253 base::Bind(&ExpectNoValidImageCallback, run_loop.QuitClosure())); |
1241 | 1254 |
1242 run_loop.Run(); | 1255 run_loop.Run(); |
1243 } | 1256 } |
1244 | 1257 |
| 1258 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, DownloadImage_DataImage) { |
| 1259 const GURL kImageUrl = GURL( |
| 1260 "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHE" |
| 1261 "lEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="); |
| 1262 DownloadImageTestInternal(shell(), kImageUrl, 0, 1); |
| 1263 } |
| 1264 |
| 1265 IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, |
| 1266 DownloadImage_InvalidDataImage) { |
| 1267 const GURL kImageUrl = GURL("data:image/png;invalid"); |
| 1268 DownloadImageTestInternal(shell(), kImageUrl, 0, 0); |
| 1269 } |
| 1270 |
1245 class MouseLockDelegate : public WebContentsDelegate { | 1271 class MouseLockDelegate : public WebContentsDelegate { |
1246 public: | 1272 public: |
1247 // WebContentsDelegate: | 1273 // WebContentsDelegate: |
1248 void RequestToLockMouse(WebContents* web_contents, | 1274 void RequestToLockMouse(WebContents* web_contents, |
1249 bool user_gesture, | 1275 bool user_gesture, |
1250 bool last_unlocked_by_target) override { | 1276 bool last_unlocked_by_target) override { |
1251 request_to_lock_mouse_called_ = true; | 1277 request_to_lock_mouse_called_ = true; |
1252 } | 1278 } |
1253 bool request_to_lock_mouse_called_ = false; | 1279 bool request_to_lock_mouse_called_ = false; |
1254 }; | 1280 }; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1296 // Make sure the WebContents cleaned up the previous pending request. A new | 1322 // Make sure the WebContents cleaned up the previous pending request. A new |
1297 // request should be forwarded to the WebContentsDelegate. | 1323 // request should be forwarded to the WebContentsDelegate. |
1298 delegate.get()->request_to_lock_mouse_called_ = false; | 1324 delegate.get()->request_to_lock_mouse_called_ = false; |
1299 ASSERT_TRUE(ExecuteScript(shell(), | 1325 ASSERT_TRUE(ExecuteScript(shell(), |
1300 "window.domAutomationController.send(document.body." | 1326 "window.domAutomationController.send(document.body." |
1301 "requestPointerLock());")); | 1327 "requestPointerLock());")); |
1302 EXPECT_TRUE(delegate.get()->request_to_lock_mouse_called_); | 1328 EXPECT_TRUE(delegate.get()->request_to_lock_mouse_called_); |
1303 } | 1329 } |
1304 | 1330 |
1305 } // namespace content | 1331 } // namespace content |
OLD | NEW |