[email protected] | c107d49 | 2012-01-30 17:59:16 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 912256b3 | 2009-09-18 09:47:35 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include "chrome/browser/extensions/extension_apitest.h" |
[email protected] | f2cb3cf | 2013-03-21 01:40:53 | [diff] [blame] | 6 | #include "net/dns/mock_host_resolver.h" |
[email protected] | 912256b3 | 2009-09-18 09:47:35 | [diff] [blame] | 7 | |
[email protected] | 4712e85 | 2010-11-24 13:17:19 | [diff] [blame] | 8 | class ExecuteScriptApiTest : public ExtensionApiTest { |
| 9 | protected: |
| 10 | void SetupDelayedHostResolver() { |
| 11 | // We need a.com to be a little bit slow to trigger a race condition. |
| 12 | host_resolver()->AddRuleWithLatency("a.com", "127.0.0.1", 500); |
| 13 | host_resolver()->AddRule("b.com", "127.0.0.1"); |
| 14 | host_resolver()->AddRule("c.com", "127.0.0.1"); |
| 15 | } |
| 16 | }; |
[email protected] | 912256b3 | 2009-09-18 09:47:35 | [diff] [blame] | 17 | |
[email protected] | 59d8048a | 2012-02-09 19:27:00 | [diff] [blame] | 18 | // If failing, mark disabled and update http://crbug.com/92105. |
[email protected] | de4381e | 2012-11-26 22:43:14 | [diff] [blame] | 19 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptBasic) { |
[email protected] | 4712e85 | 2010-11-24 13:17:19 | [diff] [blame] | 20 | SetupDelayedHostResolver(); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 21 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | ad6530c | 2009-12-17 19:43:56 | [diff] [blame] | 22 | ASSERT_TRUE(RunExtensionTest("executescript/basic")) << message_; |
[email protected] | 4712e85 | 2010-11-24 13:17:19 | [diff] [blame] | 23 | } |
| 24 | |
[email protected] | 59d8048a | 2012-02-09 19:27:00 | [diff] [blame] | 25 | // If failing, mark disabled and update http://crbug.com/92105. |
[email protected] | de4381e | 2012-11-26 22:43:14 | [diff] [blame] | 26 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptInFrame) { |
[email protected] | 4712e85 | 2010-11-24 13:17:19 | [diff] [blame] | 27 | SetupDelayedHostResolver(); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 28 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | ad6530c | 2009-12-17 19:43:56 | [diff] [blame] | 29 | ASSERT_TRUE(RunExtensionTest("executescript/in_frame")) << message_; |
[email protected] | 4712e85 | 2010-11-24 13:17:19 | [diff] [blame] | 30 | } |
| 31 | |
[email protected] | 110642b | 2013-02-06 21:25:52 | [diff] [blame] | 32 | // Fails often on Windows. |
| 33 | // http://crbug.com/174715 |
| 34 | #if defined(OS_WIN) |
| 35 | #define MAYBE_ExecuteScriptPermissions DISABLED_ExecuteScriptPermissions |
| 36 | #else |
| 37 | #define MAYBE_ExecuteScriptPermissions ExecuteScriptPermissions |
| 38 | #endif // defined(OS_WIN) |
| 39 | |
| 40 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, MAYBE_ExecuteScriptPermissions) { |
[email protected] | 4712e85 | 2010-11-24 13:17:19 | [diff] [blame] | 41 | SetupDelayedHostResolver(); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 42 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | 61f5a7b | 2009-12-22 22:21:20 | [diff] [blame] | 43 | ASSERT_TRUE(RunExtensionTest("executescript/permissions")) << message_; |
[email protected] | 912256b3 | 2009-09-18 09:47:35 | [diff] [blame] | 44 | } |
[email protected] | a7664e1 | 2010-04-08 20:37:43 | [diff] [blame] | 45 | |
[email protected] | 59d8048a | 2012-02-09 19:27:00 | [diff] [blame] | 46 | // If failing, mark disabled and update http://crbug.com/84760. |
[email protected] | f34706be | 2012-09-04 07:32:09 | [diff] [blame] | 47 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptFileAfterClose) { |
[email protected] | a7664e1 | 2010-04-08 20:37:43 | [diff] [blame] | 48 | host_resolver()->AddRule("b.com", "127.0.0.1"); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 49 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | a7664e1 | 2010-04-08 20:37:43 | [diff] [blame] | 50 | ASSERT_TRUE(RunExtensionTest("executescript/file_after_close")) << message_; |
| 51 | } |
[email protected] | 10e40f31 | 2011-02-01 03:54:20 | [diff] [blame] | 52 | |
[email protected] | 59d8048a | 2012-02-09 19:27:00 | [diff] [blame] | 53 | // If crashing, mark disabled and update http://crbug.com/67774. |
| 54 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptFragmentNavigation) { |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 55 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | 10e40f31 | 2011-02-01 03:54:20 | [diff] [blame] | 56 | const char* extension_name = "executescript/fragment"; |
| 57 | ASSERT_TRUE(RunExtensionTest(extension_name)) << message_; |
| 58 | } |
[email protected] | 4b96a99 | 2011-04-07 19:47:07 | [diff] [blame] | 59 | |
[email protected] | e1b3f40a | 2013-05-24 10:40:08 | [diff] [blame] | 60 | // Fails often on Windows dbg bots. http://crbug.com/177163 |
| 61 | #if defined(OS_WIN) |
| 62 | #define MAYBE_NavigationRaceExecuteScript DISABLED_NavigationRaceExecuteScript |
| 63 | #else |
| 64 | #define MAYBE_NavigationRaceExecuteScript NavigationRaceExecuteScript |
| 65 | #endif // defined(OS_WIN) |
| 66 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, |
| 67 | MAYBE_NavigationRaceExecuteScript) { |
[email protected] | 4b96a99 | 2011-04-07 19:47:07 | [diff] [blame] | 68 | host_resolver()->AddRule("a.com", "127.0.0.1"); |
| 69 | host_resolver()->AddRule("b.com", "127.0.0.1"); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 70 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | 4b96a99 | 2011-04-07 19:47:07 | [diff] [blame] | 71 | ASSERT_TRUE(RunExtensionSubtest("executescript/navigation_race", |
| 72 | "execute_script.html")) << message_; |
[email protected] | c30cf4b | 2011-06-09 01:25:10 | [diff] [blame] | 73 | } |
| 74 | |
[email protected] | c107d49 | 2012-01-30 17:59:16 | [diff] [blame] | 75 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, NavigationRaceJavaScriptURL) { |
[email protected] | c30cf4b | 2011-06-09 01:25:10 | [diff] [blame] | 76 | host_resolver()->AddRule("a.com", "127.0.0.1"); |
| 77 | host_resolver()->AddRule("b.com", "127.0.0.1"); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 78 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | 4b96a99 | 2011-04-07 19:47:07 | [diff] [blame] | 79 | ASSERT_TRUE(RunExtensionSubtest("executescript/navigation_race", |
| 80 | "javascript_url.html")) << message_; |
| 81 | } |
[email protected] | d45ce25 | 2011-04-11 18:20:50 | [diff] [blame] | 82 | |
[email protected] | 59d8048a | 2012-02-09 19:27:00 | [diff] [blame] | 83 | // If failing, mark disabled and update http://crbug.com/92105. |
| 84 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptFrameAfterLoad) { |
[email protected] | d45ce25 | 2011-04-11 18:20:50 | [diff] [blame] | 85 | SetupDelayedHostResolver(); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 86 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | d45ce25 | 2011-04-11 18:20:50 | [diff] [blame] | 87 | ASSERT_TRUE(RunExtensionTest("executescript/frame_after_load")) << message_; |
| 88 | } |
[email protected] | e7d6ec8 | 2012-04-13 19:00:24 | [diff] [blame] | 89 | |
| 90 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptRunAt) { |
| 91 | SetupDelayedHostResolver(); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 92 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | e7d6ec8 | 2012-04-13 19:00:24 | [diff] [blame] | 93 | ASSERT_TRUE(RunExtensionTest("executescript/run_at")) << message_; |
| 94 | } |
[email protected] | cab8cd98 | 2012-07-20 20:57:03 | [diff] [blame] | 95 | |
| 96 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptCallback) { |
| 97 | SetupDelayedHostResolver(); |
[email protected] | c1dffe8 | 2013-06-26 20:59:05 | [diff] [blame] | 98 | ASSERT_TRUE(StartEmbeddedTestServer()); |
[email protected] | cab8cd98 | 2012-07-20 20:57:03 | [diff] [blame] | 99 | ASSERT_TRUE(RunExtensionTest("executescript/callback")) << message_; |
| 100 | } |
[email protected] | 0df4943 | 2014-03-04 01:02:50 | [diff] [blame^] | 101 | |
| 102 | IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, UserGesture) { |
| 103 | SetupDelayedHostResolver(); |
| 104 | ASSERT_TRUE(StartEmbeddedTestServer()); |
| 105 | ASSERT_TRUE(RunExtensionTest("executescript/user_gesture")) << message_; |
| 106 | } |