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/files/file_util.h" | 6 #include "base/files/file_util.h" |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "content/browser/loader/resource_dispatcher_host_impl.h" | 10 #include "content/browser/loader/resource_dispatcher_host_impl.h" |
11 #include "content/public/browser/browser_thread.h" | 11 #include "content/public/browser/browser_thread.h" |
12 #include "content/public/browser/resource_dispatcher_host_delegate.h" | 12 #include "content/public/browser/resource_dispatcher_host_delegate.h" |
13 #include "content/public/common/content_switches.h" | 13 #include "content/public/common/content_switches.h" |
14 #include "content/public/test/browser_test_utils.h" | 14 #include "content/public/test/browser_test_utils.h" |
15 #include "content/public/test/content_browser_test.h" | 15 #include "content/public/test/content_browser_test.h" |
16 #include "content/public/test/content_browser_test_utils.h" | 16 #include "content/public/test/content_browser_test_utils.h" |
17 #include "content/public/test/test_utils.h" | 17 #include "content/public/test/test_utils.h" |
18 #include "content/shell/browser/shell.h" | 18 #include "content/shell/browser/shell.h" |
19 #include "content/shell/common/shell_switches.h" | 19 #include "content/shell/common/shell_switches.h" |
20 #include "content/test/net/url_request_mock_http_job.h" | |
21 #include "net/test/embedded_test_server/embedded_test_server.h" | 20 #include "net/test/embedded_test_server/embedded_test_server.h" |
| 21 #include "net/test/url_request/url_request_mock_http_job.h" |
22 #include "net/url_request/url_request.h" | 22 #include "net/url_request/url_request.h" |
23 #include "ui/gfx/rect.h" | 23 #include "ui/gfx/rect.h" |
24 | 24 |
25 #if defined(OS_WIN) | 25 #if defined(OS_WIN) |
26 #include "base/win/registry.h" | 26 #include "base/win/registry.h" |
27 #endif | 27 #endif |
28 | 28 |
29 // TODO(jschuh): Finish plugins on Win64. crbug.com/180861 | 29 // TODO(jschuh): Finish plugins on Win64. crbug.com/180861 |
30 #if defined(OS_WIN) && defined(ARCH_CPU_X86_64) | 30 #if defined(OS_WIN) && defined(ARCH_CPU_X86_64) |
31 #define MAYBE(x) DISABLED_##x | 31 #define MAYBE(x) DISABLED_##x |
32 #else | 32 #else |
33 #define MAYBE(x) x | 33 #define MAYBE(x) x |
34 #endif | 34 #endif |
35 | 35 |
36 using base::ASCIIToUTF16; | 36 using base::ASCIIToUTF16; |
37 | 37 |
38 namespace content { | 38 namespace content { |
39 namespace { | 39 namespace { |
40 | 40 |
41 void SetUrlRequestMock(const base::FilePath& path) { | 41 void SetUrlRequestMock(const base::FilePath& path) { |
42 URLRequestMockHTTPJob::AddUrlHandler(path); | 42 net::URLRequestMockHTTPJob::AddUrlHandler( |
| 43 path, content::BrowserThread::GetBlockingPool()); |
43 } | 44 } |
44 | 45 |
45 } | 46 } |
46 | 47 |
47 class PluginTest : public ContentBrowserTest { | 48 class PluginTest : public ContentBrowserTest { |
48 protected: | 49 protected: |
49 PluginTest() {} | 50 PluginTest() {} |
50 | 51 |
51 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 52 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
52 // Some NPAPI tests schedule garbage collection to force object tear-down. | 53 // Some NPAPI tests schedule garbage collection to force object tear-down. |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 #endif | 180 #endif |
180 | 181 |
181 // Flaky, http://crbug.com/302274. | 182 // Flaky, http://crbug.com/302274. |
182 #if defined(OS_MACOSX) | 183 #if defined(OS_MACOSX) |
183 #define MAYBE_GetURLRequest404Response DISABLED_GetURLRequest404Response | 184 #define MAYBE_GetURLRequest404Response DISABLED_GetURLRequest404Response |
184 #else | 185 #else |
185 #define MAYBE_GetURLRequest404Response MAYBE(GetURLRequest404Response) | 186 #define MAYBE_GetURLRequest404Response MAYBE(GetURLRequest404Response) |
186 #endif | 187 #endif |
187 | 188 |
188 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE_GetURLRequest404Response) { | 189 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE_GetURLRequest404Response) { |
189 GURL url(URLRequestMockHTTPJob::GetMockUrl( | 190 GURL url(net::URLRequestMockHTTPJob::GetMockUrl( |
190 base::FilePath().AppendASCII("npapi"). | 191 base::FilePath().AppendASCII("npapi").AppendASCII( |
191 AppendASCII("plugin_url_request_404.html"))); | 192 "plugin_url_request_404.html"))); |
192 LoadAndWait(url); | 193 LoadAndWait(url); |
193 } | 194 } |
194 | 195 |
195 // Tests if a plugin executing a self deleting script using Invoke with | 196 // Tests if a plugin executing a self deleting script using Invoke with |
196 // a modal dialog showing works without crashing or hanging | 197 // a modal dialog showing works without crashing or hanging |
197 // Disabled, flakily exceeds timeout, http://crbug.com/46257. | 198 // Disabled, flakily exceeds timeout, http://crbug.com/46257. |
198 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(SelfDeletePluginInvokeAlert)) { | 199 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(SelfDeletePluginInvokeAlert)) { |
199 // Navigate asynchronously because if we waitd until it completes, there's a | 200 // Navigate asynchronously because if we waitd until it completes, there's a |
200 // race condition where the alert can come up before we start watching for it. | 201 // race condition where the alert can come up before we start watching for it. |
201 shell()->LoadURL(GetURL("self_delete_plugin_invoke_alert.html")); | 202 shell()->LoadURL(GetURL("self_delete_plugin_invoke_alert.html")); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 | 371 |
371 // These used to run on Windows: http://crbug.com/396373 | 372 // These used to run on Windows: http://crbug.com/396373 |
372 #if defined(OS_MACOSX) | 373 #if defined(OS_MACOSX) |
373 // Test a browser hang due to special case of multiple | 374 // Test a browser hang due to special case of multiple |
374 // plugin instances indulged in sync calls across renderer. | 375 // plugin instances indulged in sync calls across renderer. |
375 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(MultipleInstancesSyncCalls)) { | 376 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(MultipleInstancesSyncCalls)) { |
376 LoadAndWait(GetURL("multiple_instances_sync_calls.html")); | 377 LoadAndWait(GetURL("multiple_instances_sync_calls.html")); |
377 } | 378 } |
378 | 379 |
379 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(GetURLRequestFailWrite)) { | 380 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(GetURLRequestFailWrite)) { |
380 GURL url(URLRequestMockHTTPJob::GetMockUrl( | 381 GURL url(net::URLRequestMockHTTPJob::GetMockUrl( |
381 base::FilePath().AppendASCII("npapi"). | 382 base::FilePath().AppendASCII("npapi").AppendASCII( |
382 AppendASCII("plugin_url_request_fail_write.html"))); | 383 "plugin_url_request_fail_write.html"))); |
383 LoadAndWait(url); | 384 LoadAndWait(url); |
384 } | 385 } |
385 #endif | 386 #endif |
386 | 387 |
387 #if defined(OS_WIN) | 388 #if defined(OS_WIN) |
388 // Flaky on Windows x86. http://crbug.com/388245 | 389 // Flaky on Windows x86. http://crbug.com/388245 |
389 IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_EnsureScriptingWorksInDestroy) { | 390 IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_EnsureScriptingWorksInDestroy) { |
390 LoadAndWait(GetURL("ensure_scripting_works_in_destroy.html")); | 391 LoadAndWait(GetURL("ensure_scripting_works_in_destroy.html")); |
391 } | 392 } |
392 | 393 |
393 // This test uses a Windows Event to signal to the plugin that it should crash | 394 // This test uses a Windows Event to signal to the plugin that it should crash |
394 // on NP_Initialize. | 395 // on NP_Initialize. |
395 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(NoHangIfInitCrashes)) { | 396 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(NoHangIfInitCrashes)) { |
396 HANDLE crash_event = CreateEvent(NULL, TRUE, FALSE, L"TestPluginCrashOnInit"); | 397 HANDLE crash_event = CreateEvent(NULL, TRUE, FALSE, L"TestPluginCrashOnInit"); |
397 SetEvent(crash_event); | 398 SetEvent(crash_event); |
398 LoadAndWait(GetURL("no_hang_if_init_crashes.html")); | 399 LoadAndWait(GetURL("no_hang_if_init_crashes.html")); |
399 CloseHandle(crash_event); | 400 CloseHandle(crash_event); |
400 } | 401 } |
401 #endif | 402 #endif |
402 | 403 |
403 // If this flakes on Mac, use http://crbug.com/111508 | 404 // If this flakes on Mac, use http://crbug.com/111508 |
404 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(PluginReferrerTest)) { | 405 IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(PluginReferrerTest)) { |
405 GURL url(URLRequestMockHTTPJob::GetMockUrl( | 406 GURL url(net::URLRequestMockHTTPJob::GetMockUrl( |
406 base::FilePath().AppendASCII("npapi"). | 407 base::FilePath().AppendASCII("npapi").AppendASCII( |
407 AppendASCII("plugin_url_request_referrer_test.html"))); | 408 "plugin_url_request_referrer_test.html"))); |
408 LoadAndWait(url); | 409 LoadAndWait(url); |
409 } | 410 } |
410 | 411 |
411 #if defined(OS_MACOSX) | 412 #if defined(OS_MACOSX) |
412 // Test is flaky, see http://crbug.com/134515. | 413 // Test is flaky, see http://crbug.com/134515. |
413 IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_PluginConvertPointTest) { | 414 IN_PROC_BROWSER_TEST_F(PluginTest, DISABLED_PluginConvertPointTest) { |
414 gfx::Rect bounds(50, 50, 400, 400); | 415 gfx::Rect bounds(50, 50, 400, 400); |
415 SetWindowBounds(shell()->window(), bounds); | 416 SetWindowBounds(shell()->window(), bounds); |
416 | 417 |
417 NavigateToURL(shell(), GetURL("convert_point.html")); | 418 NavigateToURL(shell(), GetURL("convert_point.html")); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 ResourceDispatcherHostDelegate* old_delegate = | 558 ResourceDispatcherHostDelegate* old_delegate = |
558 ResourceDispatcherHostImpl::Get()->delegate(); | 559 ResourceDispatcherHostImpl::Get()->delegate(); |
559 ResourceDispatcherHostImpl::Get()->SetDelegate(&test_delegate); | 560 ResourceDispatcherHostImpl::Get()->SetDelegate(&test_delegate); |
560 LoadAndWait(url); | 561 LoadAndWait(url); |
561 test_delegate.WaitForPluginRequest(); | 562 test_delegate.WaitForPluginRequest(); |
562 ASSERT_TRUE(test_delegate.found_cookie()); | 563 ASSERT_TRUE(test_delegate.found_cookie()); |
563 ResourceDispatcherHostImpl::Get()->SetDelegate(old_delegate); | 564 ResourceDispatcherHostImpl::Get()->SetDelegate(old_delegate); |
564 } | 565 } |
565 | 566 |
566 } // namespace content | 567 } // namespace content |
OLD | NEW |