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 <sstream> | 5 #include <sstream> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
991 // Try to start the download via Javascript and wait for the corresponding | 991 // Try to start the download via Javascript and wait for the corresponding |
992 // load stop event. | 992 // load stop event. |
993 content::TestNavigationObserver observer( | 993 content::TestNavigationObserver observer( |
994 content::Source<content::NavigationController>( | 994 content::Source<content::NavigationController>( |
995 &web_contents->GetController()), | 995 &web_contents->GetController()), |
996 NULL, | 996 NULL, |
997 1); | 997 1); |
998 bool download_assempted; | 998 bool download_assempted; |
999 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 999 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
1000 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), | 1000 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), |
1001 L"", | 1001 "", |
1002 L"window.domAutomationController.send(startDownload());", | 1002 "window.domAutomationController.send(startDownload());", |
1003 &download_assempted)); | 1003 &download_assempted)); |
1004 ASSERT_TRUE(download_assempted); | 1004 ASSERT_TRUE(download_assempted); |
1005 observer.WaitForObservation( | 1005 observer.WaitForObservation( |
1006 base::Bind(&content::RunMessageLoop), | 1006 base::Bind(&content::RunMessageLoop), |
1007 base::Bind(&MessageLoop::Quit, | 1007 base::Bind(&MessageLoop::Quit, |
1008 base::Unretained(MessageLoopForUI::current()))); | 1008 base::Unretained(MessageLoopForUI::current()))); |
1009 | 1009 |
1010 // Check that we did not download the file. | 1010 // Check that we did not download the file. |
1011 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1011 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
1012 FilePath file_path(DestinationFile(browser(), file)); | 1012 FilePath file_path(DestinationFile(browser(), file)); |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1420 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); | 1420 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); |
1421 | 1421 |
1422 ui_test_utils::NavigateToURL(browser(), flags_url); | 1422 ui_test_utils::NavigateToURL(browser(), flags_url); |
1423 DownloadAndWait(browser(), download_url); | 1423 DownloadAndWait(browser(), download_url); |
1424 ui_test_utils::NavigateToURL(browser(), extensions_url); | 1424 ui_test_utils::NavigateToURL(browser(), extensions_url); |
1425 WebContents* contents = chrome::GetActiveWebContents(browser()); | 1425 WebContents* contents = chrome::GetActiveWebContents(browser()); |
1426 ASSERT_TRUE(contents); | 1426 ASSERT_TRUE(contents); |
1427 bool webui_responded = false; | 1427 bool webui_responded = false; |
1428 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 1428 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
1429 contents->GetRenderViewHost(), | 1429 contents->GetRenderViewHost(), |
1430 L"", | 1430 "", |
1431 L"window.domAutomationController.send(window.webui_responded_);", | 1431 "window.domAutomationController.send(window.webui_responded_);", |
1432 &webui_responded)); | 1432 &webui_responded)); |
1433 EXPECT_TRUE(webui_responded); | 1433 EXPECT_TRUE(webui_responded); |
1434 } | 1434 } |
1435 | 1435 |
1436 // Test for crbug.com/12745. This tests that if a download is initiated from | 1436 // Test for crbug.com/12745. This tests that if a download is initiated from |
1437 // a chrome:// page that has registered and onunload handler, the browser | 1437 // a chrome:// page that has registered and onunload handler, the browser |
1438 // will be able to close. | 1438 // will be able to close. |
1439 IN_PROC_BROWSER_TEST_F(DownloadTest, BrowserCloseAfterDownload) { | 1439 IN_PROC_BROWSER_TEST_F(DownloadTest, BrowserCloseAfterDownload) { |
1440 GURL downloads_url(chrome::kChromeUIFlagsURL); | 1440 GURL downloads_url(chrome::kChromeUIFlagsURL); |
1441 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1441 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
1442 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1442 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); |
1443 | 1443 |
1444 ui_test_utils::NavigateToURL(browser(), downloads_url); | 1444 ui_test_utils::NavigateToURL(browser(), downloads_url); |
1445 WebContents* contents = chrome::GetActiveWebContents(browser()); | 1445 WebContents* contents = chrome::GetActiveWebContents(browser()); |
1446 ASSERT_TRUE(contents); | 1446 ASSERT_TRUE(contents); |
1447 bool result = false; | 1447 bool result = false; |
1448 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 1448 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
1449 contents->GetRenderViewHost(), | 1449 contents->GetRenderViewHost(), |
1450 L"", | 1450 "", |
1451 L"window.onunload = function() { var do_nothing = 0; }; " | 1451 "window.onunload = function() { var do_nothing = 0; }; " |
1452 L"window.domAutomationController.send(true);", | 1452 "window.domAutomationController.send(true);", |
1453 &result)); | 1453 &result)); |
1454 EXPECT_TRUE(result); | 1454 EXPECT_TRUE(result); |
1455 | 1455 |
1456 DownloadAndWait(browser(), download_url); | 1456 DownloadAndWait(browser(), download_url); |
1457 | 1457 |
1458 content::WindowedNotificationObserver signal( | 1458 content::WindowedNotificationObserver signal( |
1459 chrome::NOTIFICATION_BROWSER_CLOSED, | 1459 chrome::NOTIFICATION_BROWSER_CLOSED, |
1460 content::Source<Browser>(browser())); | 1460 content::Source<Browser>(browser())); |
1461 chrome::CloseWindow(browser()); | 1461 chrome::CloseWindow(browser()); |
1462 signal.Wait(); | 1462 signal.Wait(); |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2228 WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 2228 WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
2229 scoped_ptr<DownloadUrlParameters> params( | 2229 scoped_ptr<DownloadUrlParameters> params( |
2230 DownloadUrlParameters::FromWebContents(web_contents, url)); | 2230 DownloadUrlParameters::FromWebContents(web_contents, url)); |
2231 params->set_callback(base::Bind(&SetHiddenDownloadCallback)); | 2231 params->set_callback(base::Bind(&SetHiddenDownloadCallback)); |
2232 download_manager->DownloadUrl(params.Pass()); | 2232 download_manager->DownloadUrl(params.Pass()); |
2233 observer->WaitForFinished(); | 2233 observer->WaitForFinished(); |
2234 | 2234 |
2235 // Verify that download shelf is not shown. | 2235 // Verify that download shelf is not shown. |
2236 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 2236 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
2237 } | 2237 } |
OLD | NEW |