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. 4 5#include "chrome/browser/extensions/extension_apitest.h" 6#include "net/dns/mock_host_resolver.h" 7 8class 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}; 17 18// If failing, mark disabled and update http://crbug.com/92105. 19IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptBasic) { 20 SetupDelayedHostResolver(); 21 ASSERT_TRUE(StartEmbeddedTestServer()); 22 ASSERT_TRUE(RunExtensionTest("executescript/basic")) << message_; 23} 24 25// If failing, mark disabled and update http://crbug.com/92105. 26IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptInFrame) { 27 SetupDelayedHostResolver(); 28 ASSERT_TRUE(StartEmbeddedTestServer()); 29 ASSERT_TRUE(RunExtensionTest("executescript/in_frame")) << message_; 30} 31 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 40IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, MAYBE_ExecuteScriptPermissions) { 41 SetupDelayedHostResolver(); 42 ASSERT_TRUE(StartEmbeddedTestServer()); 43 ASSERT_TRUE(RunExtensionTest("executescript/permissions")) << message_; 44} 45 46// If failing, mark disabled and update http://crbug.com/84760. 47IN_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_; 51} 52 53// If crashing, mark disabled and update http://crbug.com/67774. 54IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptFragmentNavigation) { 55 ASSERT_TRUE(StartEmbeddedTestServer()); 56 const char* extension_name = "executescript/fragment"; 57 ASSERT_TRUE(RunExtensionTest(extension_name)) << message_; 58} 59 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) 66IN_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_; 73} 74 75IN_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_; 81} 82 83// If failing, mark disabled and update http://crbug.com/92105. 84IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptFrameAfterLoad) { 85 SetupDelayedHostResolver(); 86 ASSERT_TRUE(StartEmbeddedTestServer()); 87 ASSERT_TRUE(RunExtensionTest("executescript/frame_after_load")) << message_; 88} 89 90IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptRunAt) { 91 SetupDelayedHostResolver(); 92 ASSERT_TRUE(StartEmbeddedTestServer()); 93 ASSERT_TRUE(RunExtensionTest("executescript/run_at")) << message_; 94} 95 96IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, ExecuteScriptCallback) { 97 SetupDelayedHostResolver(); 98 ASSERT_TRUE(StartEmbeddedTestServer()); 99 ASSERT_TRUE(RunExtensionTest("executescript/callback")) << message_; 100} 101 102IN_PROC_BROWSER_TEST_F(ExecuteScriptApiTest, UserGesture) { 103 SetupDelayedHostResolver(); 104 ASSERT_TRUE(StartEmbeddedTestServer()); 105 ASSERT_TRUE(RunExtensionTest("executescript/user_gesture")) << message_; 106} 107