Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Side by Side Diff: chrome/browser/extensions/window_open_apitest.cc

Issue 2851103002: Update some host_resolver()->AddRules in chrome/browser. (Closed)
Patch Set: fix Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/test/histogram_tester.h" 9 #include "base/test/histogram_tester.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 26 matching lines...) Expand all
37 #include "testing/gtest/include/gtest/gtest.h" 37 #include "testing/gtest/include/gtest/gtest.h"
38 38
39 #if defined(USE_ASH) 39 #if defined(USE_ASH)
40 #include "extensions/browser/app_window/app_window_registry.h" 40 #include "extensions/browser/app_window/app_window_registry.h"
41 #endif 41 #endif
42 42
43 using content::OpenURLParams; 43 using content::OpenURLParams;
44 using content::Referrer; 44 using content::Referrer;
45 using content::WebContents; 45 using content::WebContents;
46 46
47 class WindowOpenApiTest : public ExtensionApiTest {
48 void SetUpOnMainThread() override {
49 ExtensionApiTest::SetUpOnMainThread();
50 host_resolver()->AddRule("*", "127.0.0.1");
51 }
52 };
53
47 // The test uses the chrome.browserAction.openPopup API, which requires that the 54 // The test uses the chrome.browserAction.openPopup API, which requires that the
48 // window can automatically be activated. 55 // window can automatically be activated.
49 // See comments at BrowserActionInteractiveTest::ShouldRunPopupTest 56 // See comments at BrowserActionInteractiveTest::ShouldRunPopupTest
50 // Fails flakily on all platforms. https://crbug.com/477691 57 // Fails flakily on all platforms. https://crbug.com/477691
51 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpen) { 58 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, DISABLED_WindowOpen) {
52 extensions::ResultCatcher catcher; 59 extensions::ResultCatcher catcher;
53 ASSERT_TRUE(LoadExtensionIncognito(test_data_dir_ 60 ASSERT_TRUE(LoadExtensionIncognito(test_data_dir_
54 .AppendASCII("window_open").AppendASCII("spanning"))); 61 .AppendASCII("window_open").AppendASCII("spanning")));
55 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); 62 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message();
56 } 63 }
57 64
58 bool WaitForTabsAndPopups(Browser* browser, 65 bool WaitForTabsAndPopups(Browser* browser,
59 int num_tabs, 66 int num_tabs,
60 int num_popups) { 67 int num_popups) {
61 SCOPED_TRACE( 68 SCOPED_TRACE(
(...skipping 24 matching lines...) Expand all
86 EXPECT_TRUE(b->is_type_popup()); 93 EXPECT_TRUE(b->is_type_popup());
87 ++num_popups_seen; 94 ++num_popups_seen;
88 } 95 }
89 EXPECT_EQ(num_popups, num_popups_seen); 96 EXPECT_EQ(num_popups, num_popups_seen);
90 97
91 return ((num_browsers == chrome::GetBrowserCount(browser->profile())) && 98 return ((num_browsers == chrome::GetBrowserCount(browser->profile())) &&
92 (num_tabs == browser->tab_strip_model()->count()) && 99 (num_tabs == browser->tab_strip_model()->count()) &&
93 (num_popups == num_popups_seen)); 100 (num_popups == num_popups_seen));
94 } 101 }
95 102
96 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BrowserIsApp) { 103 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, BrowserIsApp) {
97 host_resolver()->AddRule("a.com", "127.0.0.1");
98 ASSERT_TRUE(StartEmbeddedTestServer()); 104 ASSERT_TRUE(StartEmbeddedTestServer());
99 ASSERT_TRUE(LoadExtension( 105 ASSERT_TRUE(LoadExtension(
100 test_data_dir_.AppendASCII("window_open").AppendASCII("browser_is_app"))); 106 test_data_dir_.AppendASCII("window_open").AppendASCII("browser_is_app")));
101 107
102 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 0, 2)); 108 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 0, 2));
103 109
104 for (auto* b : *BrowserList::GetInstance()) { 110 for (auto* b : *BrowserList::GetInstance()) {
105 if (b == browser()) 111 if (b == browser())
106 ASSERT_FALSE(b->is_app()); 112 ASSERT_FALSE(b->is_app());
107 else 113 else
108 ASSERT_TRUE(b->is_app()); 114 ASSERT_TRUE(b->is_app());
109 } 115 }
110 } 116 }
111 117
112 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowOpenPopupDefault) { 118 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, WindowOpenPopupDefault) {
113 ASSERT_TRUE(StartEmbeddedTestServer()); 119 ASSERT_TRUE(StartEmbeddedTestServer());
114 ASSERT_TRUE(LoadExtension( 120 ASSERT_TRUE(LoadExtension(
115 test_data_dir_.AppendASCII("window_open").AppendASCII("popup"))); 121 test_data_dir_.AppendASCII("window_open").AppendASCII("popup")));
116 122
117 const int num_tabs = 1; 123 const int num_tabs = 1;
118 const int num_popups = 0; 124 const int num_popups = 0;
119 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups)); 125 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups));
120 } 126 }
121 127
122 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowOpenPopupIframe) { 128 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, WindowOpenPopupIframe) {
123 base::FilePath test_data_dir; 129 base::FilePath test_data_dir;
124 PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir); 130 PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir);
125 embedded_test_server()->ServeFilesFromDirectory(test_data_dir); 131 embedded_test_server()->ServeFilesFromDirectory(test_data_dir);
126 ASSERT_TRUE(StartEmbeddedTestServer()); 132 ASSERT_TRUE(StartEmbeddedTestServer());
127 ASSERT_TRUE(LoadExtension( 133 ASSERT_TRUE(LoadExtension(
128 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_iframe"))); 134 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_iframe")));
129 135
130 const int num_tabs = 1; 136 const int num_tabs = 1;
131 const int num_popups = 0; 137 const int num_popups = 0;
132 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups)); 138 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups));
133 } 139 }
134 140
135 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowOpenPopupLarge) { 141 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, WindowOpenPopupLarge) {
136 ASSERT_TRUE(StartEmbeddedTestServer()); 142 ASSERT_TRUE(StartEmbeddedTestServer());
137 ASSERT_TRUE(LoadExtension( 143 ASSERT_TRUE(LoadExtension(
138 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_large"))); 144 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_large")));
139 145
140 // On other systems this should open a new popup window. 146 // On other systems this should open a new popup window.
141 const int num_tabs = 0; 147 const int num_tabs = 0;
142 const int num_popups = 1; 148 const int num_popups = 1;
143 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups)); 149 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups));
144 } 150 }
145 151
146 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowOpenPopupSmall) { 152 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, WindowOpenPopupSmall) {
147 ASSERT_TRUE(StartEmbeddedTestServer()); 153 ASSERT_TRUE(StartEmbeddedTestServer());
148 ASSERT_TRUE(LoadExtension( 154 ASSERT_TRUE(LoadExtension(
149 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_small"))); 155 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_small")));
150 156
151 // On ChromeOS this should open a new panel (acts like a new popup window). 157 // On ChromeOS this should open a new panel (acts like a new popup window).
152 // On other systems this should open a new popup window. 158 // On other systems this should open a new popup window.
153 const int num_tabs = 0; 159 const int num_tabs = 0;
154 const int num_popups = 1; 160 const int num_popups = 1;
155 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups)); 161 EXPECT_TRUE(WaitForTabsAndPopups(browser(), num_tabs, num_popups));
156 } 162 }
157 163
158 // Disabled on Windows. Often times out or fails: crbug.com/177530 164 // Disabled on Windows. Often times out or fails: crbug.com/177530
159 #if defined(OS_WIN) 165 #if defined(OS_WIN)
160 #define MAYBE_PopupBlockingExtension DISABLED_PopupBlockingExtension 166 #define MAYBE_PopupBlockingExtension DISABLED_PopupBlockingExtension
161 #else 167 #else
162 #define MAYBE_PopupBlockingExtension PopupBlockingExtension 168 #define MAYBE_PopupBlockingExtension PopupBlockingExtension
163 #endif 169 #endif
164 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_PopupBlockingExtension) { 170 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, MAYBE_PopupBlockingExtension) {
165 host_resolver()->AddRule("*", "127.0.0.1");
166 ASSERT_TRUE(StartEmbeddedTestServer()); 171 ASSERT_TRUE(StartEmbeddedTestServer());
167 172
168 ASSERT_TRUE(LoadExtension( 173 ASSERT_TRUE(LoadExtension(
169 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_blocking") 174 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_blocking")
170 .AppendASCII("extension"))); 175 .AppendASCII("extension")));
171 176
172 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 5, 3)); 177 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 5, 3));
173 } 178 }
174 179
175 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, PopupBlockingHostedApp) { 180 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, PopupBlockingHostedApp) {
176 host_resolver()->AddRule("*", "127.0.0.1");
177 ASSERT_TRUE(embedded_test_server()->Start()); 181 ASSERT_TRUE(embedded_test_server()->Start());
178 182
179 ASSERT_TRUE(LoadExtension( 183 ASSERT_TRUE(LoadExtension(
180 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_blocking") 184 test_data_dir_.AppendASCII("window_open").AppendASCII("popup_blocking")
181 .AppendASCII("hosted_app"))); 185 .AppendASCII("hosted_app")));
182 186
183 // The app being tested owns the domain a.com . The test URLs we navigate 187 // The app being tested owns the domain a.com . The test URLs we navigate
184 // to below must be within that domain, so that they fall within the app's 188 // to below must be within that domain, so that they fall within the app's
185 // web extent. 189 // web extent.
186 GURL::Replacements replace_host; 190 GURL::Replacements replace_host;
(...skipping 12 matching lines...) Expand all
199 browser()->OpenURL(OpenURLParams(open_tab, Referrer(), 203 browser()->OpenURL(OpenURLParams(open_tab, Referrer(),
200 WindowOpenDisposition::NEW_FOREGROUND_TAB, 204 WindowOpenDisposition::NEW_FOREGROUND_TAB,
201 ui::PAGE_TRANSITION_TYPED, false)); 205 ui::PAGE_TRANSITION_TYPED, false));
202 browser()->OpenURL(OpenURLParams(open_popup, Referrer(), 206 browser()->OpenURL(OpenURLParams(open_popup, Referrer(),
203 WindowOpenDisposition::NEW_FOREGROUND_TAB, 207 WindowOpenDisposition::NEW_FOREGROUND_TAB,
204 ui::PAGE_TRANSITION_TYPED, false)); 208 ui::PAGE_TRANSITION_TYPED, false));
205 209
206 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 3, 1)); 210 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 3, 1));
207 } 211 }
208 212
209 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowArgumentsOverflow) { 213 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, WindowArgumentsOverflow) {
210 ASSERT_TRUE(RunExtensionTest("window_open/argument_overflow")) << message_; 214 ASSERT_TRUE(RunExtensionTest("window_open/argument_overflow")) << message_;
211 } 215 }
212 216
213 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpener) { 217 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, DISABLED_WindowOpener) {
214 ASSERT_TRUE(RunExtensionTest("window_open/opener")) << message_; 218 ASSERT_TRUE(RunExtensionTest("window_open/opener")) << message_;
215 } 219 }
216 220
217 #if defined(OS_MACOSX) 221 #if defined(OS_MACOSX)
218 // Extension popup windows are incorrectly sized on OSX, crbug.com/225601 222 // Extension popup windows are incorrectly sized on OSX, crbug.com/225601
219 #define MAYBE_WindowOpenSized DISABLED_WindowOpenSized 223 #define MAYBE_WindowOpenSized DISABLED_WindowOpenSized
220 #else 224 #else
221 #define MAYBE_WindowOpenSized WindowOpenSized 225 #define MAYBE_WindowOpenSized WindowOpenSized
222 #endif 226 #endif
223 // Ensure that the width and height properties of a window opened with 227 // Ensure that the width and height properties of a window opened with
224 // chrome.windows.create match the creation parameters. See crbug.com/173831. 228 // chrome.windows.create match the creation parameters. See crbug.com/173831.
225 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, MAYBE_WindowOpenSized) { 229 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest, MAYBE_WindowOpenSized) {
226 ASSERT_TRUE(RunExtensionTest("window_open/window_size")) << message_; 230 ASSERT_TRUE(RunExtensionTest("window_open/window_size")) << message_;
227 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 0, 1)); 231 EXPECT_TRUE(WaitForTabsAndPopups(browser(), 0, 1));
228 } 232 }
229 233
230 // Tests that an extension page can call window.open to an extension URL and 234 // Tests that an extension page can call window.open to an extension URL and
231 // the new window has extension privileges. 235 // the new window has extension privileges.
232 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, WindowOpenExtension) { 236 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, WindowOpenExtension) {
233 ASSERT_TRUE(LoadExtension( 237 ASSERT_TRUE(LoadExtension(
234 test_data_dir_.AppendASCII("uitest").AppendASCII("window_open"))); 238 test_data_dir_.AppendASCII("uitest").AppendASCII("window_open")));
235 239
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 ASSERT_TRUE(content::ExecuteScript( 362 ASSERT_TRUE(content::ExecuteScript(
359 tab, "location.href = '" + extension_url.spec() + "';")); 363 tab, "location.href = '" + extension_url.spec() + "';"));
360 observer.Wait(); 364 observer.Wait();
361 EXPECT_EQ(extension_url, tab->GetMainFrame()->GetLastCommittedURL()); 365 EXPECT_EQ(extension_url, tab->GetMainFrame()->GetLastCommittedURL());
362 std::string result; 366 std::string result;
363 ASSERT_TRUE(content::ExecuteScriptAndExtractString( 367 ASSERT_TRUE(content::ExecuteScriptAndExtractString(
364 tab, "domAutomationController.send(document.body.innerText)", &result)); 368 tab, "domAutomationController.send(document.body.innerText)", &result));
365 EXPECT_EQ("HOWDIE!!!", result); 369 EXPECT_EQ("HOWDIE!!!", result);
366 } 370 }
367 } 371 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/webstore_installer_test.cc ('k') | chrome/browser/net/cookie_policy_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698