| 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/message_loop/message_loop.h" | 6 #include "base/message_loop/message_loop.h" |
| 7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
| 8 #include "chrome/browser/download/download_prefs.h" | 8 #include "chrome/browser/download/download_prefs.h" |
| 9 #include "chrome/browser/extensions/extension_apitest.h" | 9 #include "chrome/browser/extensions/extension_apitest.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 scoped_ptr<EmbeddedTestServer> test_server_; | 237 scoped_ptr<EmbeddedTestServer> test_server_; |
| 238 base::ScopedTempDir downloads_dir_; | 238 base::ScopedTempDir downloads_dir_; |
| 239 }; | 239 }; |
| 240 | 240 |
| 241 // Tests that navigating to a resource with a MIME type handleable by an | 241 // Tests that navigating to a resource with a MIME type handleable by an |
| 242 // installed, white-listed extension invokes the extension's | 242 // installed, white-listed extension invokes the extension's |
| 243 // onExecuteContentHandler event (and does not start a download). | 243 // onExecuteContentHandler event (and does not start a download). |
| 244 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, Navigate) { | 244 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, Navigate) { |
| 245 #if defined(OS_WIN) && defined(USE_ASH) | 245 #if defined(OS_WIN) && defined(USE_ASH) |
| 246 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 246 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 247 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 247 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 248 switches::kAshBrowserTests)) |
| 248 return; | 249 return; |
| 249 #endif | 250 #endif |
| 250 | 251 |
| 251 ASSERT_TRUE(LoadTestExtension()) << message_; | 252 ASSERT_TRUE(LoadTestExtension()) << message_; |
| 252 | 253 |
| 253 ResultCatcher catcher; | 254 ResultCatcher catcher; |
| 254 | 255 |
| 255 ui_test_utils::NavigateToURL(browser(), | 256 ui_test_utils::NavigateToURL(browser(), |
| 256 test_server_->GetURL("/doc_path.doc")); | 257 test_server_->GetURL("/doc_path.doc")); |
| 257 | 258 |
| 258 // Wait for the response from the test server. | 259 // Wait for the response from the test server. |
| 259 base::MessageLoop::current()->RunUntilIdle(); | 260 base::MessageLoop::current()->RunUntilIdle(); |
| 260 | 261 |
| 261 // There should be no downloads started by the navigation. | 262 // There should be no downloads started by the navigation. |
| 262 DownloadManager* download_manager = GetDownloadManager(); | 263 DownloadManager* download_manager = GetDownloadManager(); |
| 263 std::vector<DownloadItem*> downloads; | 264 std::vector<DownloadItem*> downloads; |
| 264 download_manager->GetAllDownloads(&downloads); | 265 download_manager->GetAllDownloads(&downloads); |
| 265 ASSERT_EQ(0u, downloads.size()); | 266 ASSERT_EQ(0u, downloads.size()); |
| 266 | 267 |
| 267 // The test extension should receive onExecuteContentHandler event with MIME | 268 // The test extension should receive onExecuteContentHandler event with MIME |
| 268 // type 'application/msword' (and call chrome.test.notifySuccess). | 269 // type 'application/msword' (and call chrome.test.notifySuccess). |
| 269 EXPECT_TRUE(catcher.GetNextResult()); | 270 EXPECT_TRUE(catcher.GetNextResult()); |
| 270 } | 271 } |
| 271 | 272 |
| 272 // Tests that navigating to a file URL also intercepts despite there being no | 273 // Tests that navigating to a file URL also intercepts despite there being no |
| 273 // HTTP headers. This is a regression test for https://crbug.com/416433. | 274 // HTTP headers. This is a regression test for https://crbug.com/416433. |
| 274 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, FileURL) { | 275 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, FileURL) { |
| 275 #if defined(OS_WIN) && defined(USE_ASH) | 276 #if defined(OS_WIN) && defined(USE_ASH) |
| 276 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 277 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 277 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 278 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 279 switches::kAshBrowserTests)) |
| 278 return; | 280 return; |
| 279 #endif | 281 #endif |
| 280 | 282 |
| 281 ASSERT_TRUE(LoadTestExtension()) << message_; | 283 ASSERT_TRUE(LoadTestExtension()) << message_; |
| 282 | 284 |
| 283 ResultCatcher catcher; | 285 ResultCatcher catcher; |
| 284 | 286 |
| 285 ui_test_utils::NavigateToURL(browser(), ui_test_utils::GetTestUrl( | 287 ui_test_utils::NavigateToURL(browser(), ui_test_utils::GetTestUrl( |
| 286 base::FilePath(FILE_PATH_LITERAL("downloads")), | 288 base::FilePath(FILE_PATH_LITERAL("downloads")), |
| 287 base::FilePath(FILE_PATH_LITERAL("Picture_1.doc")))); | 289 base::FilePath(FILE_PATH_LITERAL("Picture_1.doc")))); |
| 288 | 290 |
| 289 // There should be no downloads started by the navigation. | 291 // There should be no downloads started by the navigation. |
| 290 DownloadManager* download_manager = GetDownloadManager(); | 292 DownloadManager* download_manager = GetDownloadManager(); |
| 291 std::vector<DownloadItem*> downloads; | 293 std::vector<DownloadItem*> downloads; |
| 292 download_manager->GetAllDownloads(&downloads); | 294 download_manager->GetAllDownloads(&downloads); |
| 293 ASSERT_EQ(0u, downloads.size()); | 295 ASSERT_EQ(0u, downloads.size()); |
| 294 | 296 |
| 295 // The test extension should receive onExecuteContentHandler event with MIME | 297 // The test extension should receive onExecuteContentHandler event with MIME |
| 296 // type 'application/msword' (and call chrome.test.notifySuccess). | 298 // type 'application/msword' (and call chrome.test.notifySuccess). |
| 297 EXPECT_TRUE(catcher.GetNextResult()); | 299 EXPECT_TRUE(catcher.GetNextResult()); |
| 298 } | 300 } |
| 299 | 301 |
| 300 // Tests that navigating cross-site to a resource with a MIME type handleable by | 302 // Tests that navigating cross-site to a resource with a MIME type handleable by |
| 301 // an installed, white-listed extension invokes the extension's | 303 // an installed, white-listed extension invokes the extension's |
| 302 // onExecuteContentHandler event (and does not start a download). | 304 // onExecuteContentHandler event (and does not start a download). |
| 303 // Regression test for http://crbug.com/342999. | 305 // Regression test for http://crbug.com/342999. |
| 304 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, NavigateCrossSite) { | 306 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, NavigateCrossSite) { |
| 305 #if defined(OS_WIN) && defined(USE_ASH) | 307 #if defined(OS_WIN) && defined(USE_ASH) |
| 306 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 308 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 307 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 309 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 310 switches::kAshBrowserTests)) |
| 308 return; | 311 return; |
| 309 #endif | 312 #endif |
| 310 | 313 |
| 311 ASSERT_TRUE(LoadTestExtension()) << message_; | 314 ASSERT_TRUE(LoadTestExtension()) << message_; |
| 312 | 315 |
| 313 ResultCatcher catcher; | 316 ResultCatcher catcher; |
| 314 | 317 |
| 315 // Navigate to a URL on a different hostname. | 318 // Navigate to a URL on a different hostname. |
| 316 std::string initial_host = "www.example.com"; | 319 std::string initial_host = "www.example.com"; |
| 317 host_resolver()->AddRule(initial_host, "127.0.0.1"); | 320 host_resolver()->AddRule(initial_host, "127.0.0.1"); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 // called by the extension). | 430 // called by the extension). |
| 428 SendDoneEvent(); | 431 SendDoneEvent(); |
| 429 EXPECT_TRUE(catcher.GetNextResult()); | 432 EXPECT_TRUE(catcher.GetNextResult()); |
| 430 } | 433 } |
| 431 | 434 |
| 432 // Tests that response headers are correctly passed to the API and that multiple | 435 // Tests that response headers are correctly passed to the API and that multiple |
| 433 // repsonse headers with the same name are merged correctly. | 436 // repsonse headers with the same name are merged correctly. |
| 434 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, Headers) { | 437 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, Headers) { |
| 435 #if defined(OS_WIN) && defined(USE_ASH) | 438 #if defined(OS_WIN) && defined(USE_ASH) |
| 436 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 439 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 437 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 440 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 441 switches::kAshBrowserTests)) |
| 438 return; | 442 return; |
| 439 #endif | 443 #endif |
| 440 | 444 |
| 441 ASSERT_TRUE(LoadTestExtension()) << message_; | 445 ASSERT_TRUE(LoadTestExtension()) << message_; |
| 442 | 446 |
| 443 ResultCatcher catcher; | 447 ResultCatcher catcher; |
| 444 | 448 |
| 445 ui_test_utils::NavigateToURL(browser(), | 449 ui_test_utils::NavigateToURL(browser(), |
| 446 test_server_->GetURL("/spreadsheet_path.xls")); | 450 test_server_->GetURL("/spreadsheet_path.xls")); |
| 447 | 451 |
| 448 // Wait for the response from the test server. | 452 // Wait for the response from the test server. |
| 449 base::MessageLoop::current()->RunUntilIdle(); | 453 base::MessageLoop::current()->RunUntilIdle(); |
| 450 | 454 |
| 451 // There should be no downloads started by the navigation. | 455 // There should be no downloads started by the navigation. |
| 452 DownloadManager* download_manager = GetDownloadManager(); | 456 DownloadManager* download_manager = GetDownloadManager(); |
| 453 std::vector<DownloadItem*> downloads; | 457 std::vector<DownloadItem*> downloads; |
| 454 download_manager->GetAllDownloads(&downloads); | 458 download_manager->GetAllDownloads(&downloads); |
| 455 ASSERT_EQ(0u, downloads.size()); | 459 ASSERT_EQ(0u, downloads.size()); |
| 456 | 460 |
| 457 // The test extension should receive onExecuteContentHandler event with MIME | 461 // The test extension should receive onExecuteContentHandler event with MIME |
| 458 // type 'application/msexcel' (and call chrome.test.notifySuccess). | 462 // type 'application/msexcel' (and call chrome.test.notifySuccess). |
| 459 EXPECT_TRUE(catcher.GetNextResult()); | 463 EXPECT_TRUE(catcher.GetNextResult()); |
| 460 } | 464 } |
| 461 | 465 |
| 462 // Tests that chrome.streamsPrivate.abort() works correctly. | 466 // Tests that chrome.streamsPrivate.abort() works correctly. |
| 463 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, Abort) { | 467 IN_PROC_BROWSER_TEST_F(StreamsPrivateApiTest, Abort) { |
| 464 #if defined(OS_WIN) && defined(USE_ASH) | 468 #if defined(OS_WIN) && defined(USE_ASH) |
| 465 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 469 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 466 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 470 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 471 switches::kAshBrowserTests)) |
| 467 return; | 472 return; |
| 468 #endif | 473 #endif |
| 469 | 474 |
| 470 ASSERT_TRUE(LoadTestExtension()) << message_; | 475 ASSERT_TRUE(LoadTestExtension()) << message_; |
| 471 | 476 |
| 472 ResultCatcher catcher; | 477 ResultCatcher catcher; |
| 473 ui_test_utils::NavigateToURL(browser(), | 478 ui_test_utils::NavigateToURL(browser(), |
| 474 test_server_->GetURL("/no_abort.rtf")); | 479 test_server_->GetURL("/no_abort.rtf")); |
| 475 base::MessageLoop::current()->RunUntilIdle(); | 480 base::MessageLoop::current()->RunUntilIdle(); |
| 476 EXPECT_TRUE(catcher.GetNextResult()); | 481 EXPECT_TRUE(catcher.GetNextResult()); |
| 477 | 482 |
| 478 ui_test_utils::NavigateToURL(browser(), | 483 ui_test_utils::NavigateToURL(browser(), |
| 479 test_server_->GetURL("/abort.rtf")); | 484 test_server_->GetURL("/abort.rtf")); |
| 480 base::MessageLoop::current()->RunUntilIdle(); | 485 base::MessageLoop::current()->RunUntilIdle(); |
| 481 EXPECT_TRUE(catcher.GetNextResult()); | 486 EXPECT_TRUE(catcher.GetNextResult()); |
| 482 } | 487 } |
| 483 | 488 |
| 484 } // namespace | 489 } // namespace |
| OLD | NEW |