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
3 // found in the LICENSE file.
5 #include "chrome/browser/extensions/extension_apitest.h"
6 #include "net/dns/mock_host_resolver.h"
8 class ExecuteScriptApiTest
: public ExtensionApiTest
{
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");
18 // If failing, mark disabled and update http://crbug.com/92105.
19 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptBasic
) {
20 SetupDelayedHostResolver();
21 ASSERT_TRUE(StartEmbeddedTestServer());
22 ASSERT_TRUE(RunExtensionTest("executescript/basic")) << message_
;
25 // If failing, mark disabled and update http://crbug.com/92105.
26 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptInFrame
) {
27 SetupDelayedHostResolver();
28 ASSERT_TRUE(StartEmbeddedTestServer());
29 ASSERT_TRUE(RunExtensionTest("executescript/in_frame")) << message_
;
32 // Fails often on Windows.
33 // http://crbug.com/174715
35 #define MAYBE_ExecuteScriptPermissions DISABLED_ExecuteScriptPermissions
37 #define MAYBE_ExecuteScriptPermissions ExecuteScriptPermissions
38 #endif // defined(OS_WIN)
40 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, MAYBE_ExecuteScriptPermissions
) {
41 SetupDelayedHostResolver();
42 ASSERT_TRUE(StartEmbeddedTestServer());
43 ASSERT_TRUE(RunExtensionTest("executescript/permissions")) << message_
;
46 // If failing, mark disabled and update http://crbug.com/84760.
47 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptFileAfterClose
) {
48 host_resolver()->AddRule("b.com", "127.0.0.1");
49 ASSERT_TRUE(StartEmbeddedTestServer());
50 ASSERT_TRUE(RunExtensionTest("executescript/file_after_close")) << message_
;
53 // If crashing, mark disabled and update http://crbug.com/67774.
54 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptFragmentNavigation
) {
55 ASSERT_TRUE(StartEmbeddedTestServer());
56 const char* extension_name
= "executescript/fragment";
57 ASSERT_TRUE(RunExtensionTest(extension_name
)) << message_
;
60 // Fails often on Windows dbg bots. http://crbug.com/177163
62 #define MAYBE_NavigationRaceExecuteScript DISABLED_NavigationRaceExecuteScript
64 #define MAYBE_NavigationRaceExecuteScript NavigationRaceExecuteScript
65 #endif // defined(OS_WIN)
66 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
,
67 MAYBE_NavigationRaceExecuteScript
) {
68 host_resolver()->AddRule("a.com", "127.0.0.1");
69 host_resolver()->AddRule("b.com", "127.0.0.1");
70 ASSERT_TRUE(StartEmbeddedTestServer());
71 ASSERT_TRUE(RunExtensionSubtest("executescript/navigation_race",
72 "execute_script.html")) << message_
;
75 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, NavigationRaceJavaScriptURL
) {
76 host_resolver()->AddRule("a.com", "127.0.0.1");
77 host_resolver()->AddRule("b.com", "127.0.0.1");
78 ASSERT_TRUE(StartEmbeddedTestServer());
79 ASSERT_TRUE(RunExtensionSubtest("executescript/navigation_race",
80 "javascript_url.html")) << message_
;
83 // If failing, mark disabled and update http://crbug.com/92105.
84 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptFrameAfterLoad
) {
85 SetupDelayedHostResolver();
86 ASSERT_TRUE(StartEmbeddedTestServer());
87 ASSERT_TRUE(RunExtensionTest("executescript/frame_after_load")) << message_
;
90 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptRunAt
) {
91 SetupDelayedHostResolver();
92 ASSERT_TRUE(StartEmbeddedTestServer());
93 ASSERT_TRUE(RunExtensionTest("executescript/run_at")) << message_
;
96 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, ExecuteScriptCallback
) {
97 SetupDelayedHostResolver();
98 ASSERT_TRUE(StartEmbeddedTestServer());
99 ASSERT_TRUE(RunExtensionTest("executescript/callback")) << message_
;
102 IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest
, UserGesture
) {
103 SetupDelayedHostResolver();
104 ASSERT_TRUE(StartEmbeddedTestServer());
105 ASSERT_TRUE(RunExtensionTest("executescript/user_gesture")) << message_
;