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/logging.h" | 6 #include "base/logging.h" |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 #include "chrome/browser/extensions/extension_apitest.h" | 8 #include "chrome/browser/extensions/extension_apitest.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
11 #include "chrome/common/chrome_switches.h" | 11 #include "chrome/common/chrome_switches.h" |
12 #include "chrome/test/base/test_switches.h" | 12 #include "chrome/test/base/test_switches.h" |
13 #include "chrome/test/base/ui_test_utils.h" | 13 #include "chrome/test/base/ui_test_utils.h" |
14 #include "content/public/browser/navigation_handle.h" | 14 #include "content/public/browser/navigation_handle.h" |
15 #include "content/public/browser/notification_service.h" | |
15 #include "content/public/browser/web_contents.h" | 16 #include "content/public/browser/web_contents.h" |
16 #include "content/public/browser/web_contents_observer.h" | 17 #include "content/public/browser/web_contents_observer.h" |
17 #include "content/public/test/browser_test_utils.h" | 18 #include "content/public/test/browser_test_utils.h" |
18 #include "extensions/common/switches.h" | 19 #include "extensions/common/switches.h" |
19 #include "net/dns/mock_host_resolver.h" | 20 #include "net/dns/mock_host_resolver.h" |
20 #include "net/test/embedded_test_server/embedded_test_server.h" | 21 #include "net/test/embedded_test_server/embedded_test_server.h" |
21 #include "url/gurl.h" | 22 #include "url/gurl.h" |
22 | 23 |
23 class ExtensionResourceRequestPolicyTest : public ExtensionApiTest { | 24 class ExtensionResourceRequestPolicyTest : public ExtensionApiTest { |
24 protected: | 25 protected: |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
228 browser()->tab_strip_model()->GetActiveWebContents(), | 229 browser()->tab_strip_model()->GetActiveWebContents(), |
229 "window.domAutomationController.send(document.title)", | 230 "window.domAutomationController.send(document.title)", |
230 &result)); | 231 &result)); |
231 EXPECT_EQ("New Tab Page Loaded Successfully", result); | 232 EXPECT_EQ("New Tab Page Loaded Successfully", result); |
232 } | 233 } |
233 | 234 |
234 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, | 235 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, |
235 LinkToWebAccessibleResources) { | 236 LinkToWebAccessibleResources) { |
236 std::string result; | 237 std::string result; |
237 ASSERT_TRUE(embedded_test_server()->Start()); | 238 ASSERT_TRUE(embedded_test_server()->Start()); |
238 ASSERT_TRUE(LoadExtension(test_data_dir_ | 239 const extensions::Extension* extension = LoadExtension( |
239 .AppendASCII("extension_resource_request_policy") | 240 test_data_dir_.AppendASCII("extension_resource_request_policy") |
240 .AppendASCII("web_accessible"))); | 241 .AppendASCII("web_accessible")); |
Devlin
2016/08/10 20:42:35
nitty nit: leave in an ASSERT_TRUE(extension) so t
Charlie Harrison
2016/08/10 20:45:35
Done. Sorry about that.
| |
241 | 242 |
242 GURL accessible_linked_resource(embedded_test_server()->GetURL( | 243 GURL accessible_linked_resource(embedded_test_server()->GetURL( |
243 "/extensions/api_test/extension_resource_request_policy/" | 244 "/extensions/api_test/extension_resource_request_policy/" |
244 "web_accessible/accessible_link_resource.html")); | 245 "web_accessible/accessible_link_resource.html")); |
245 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 246 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
246 browser(), accessible_linked_resource, 1); | 247 browser(), accessible_linked_resource, 1); |
247 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 248 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
248 browser()->tab_strip_model()->GetActiveWebContents(), | 249 browser()->tab_strip_model()->GetActiveWebContents(), |
249 "window.domAutomationController.send(document.URL)", | 250 "window.domAutomationController.send(document.URL)", |
250 &result)); | 251 &result)); |
251 EXPECT_NE("about:blank", result); | 252 EXPECT_NE("about:blank", result); |
252 | 253 |
253 GURL nonaccessible_linked_resource(embedded_test_server()->GetURL( | 254 GURL nonaccessible_linked_resource(embedded_test_server()->GetURL( |
254 "/extensions/api_test/extension_resource_request_policy/" | 255 "/extensions/api_test/extension_resource_request_policy/" |
255 "web_accessible/nonaccessible_link_resource.html")); | 256 "web_accessible/nonaccessible_link_resource.html")); |
256 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(browser(), | 257 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(browser(), |
257 nonaccessible_linked_resource, 2); | 258 nonaccessible_linked_resource, 2); |
258 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 259 ASSERT_TRUE(content::ExecuteScriptAndExtractString( |
259 browser()->tab_strip_model()->GetActiveWebContents(), | 260 browser()->tab_strip_model()->GetActiveWebContents(), |
260 "window.domAutomationController.send(document.URL)", | 261 "window.domAutomationController.send(document.URL)", |
261 &result)); | 262 &result)); |
262 EXPECT_EQ("about:blank", result); | 263 EXPECT_EQ("about:blank", result); |
263 | 264 |
265 | |
266 // Redirects can sometimes occur before the load event, so use a | |
267 // UrlLoadObserver instead of blocking waiting for two load events. | |
268 GURL accessible_url = extension->GetResourceURL("/test.png"); | |
269 ui_test_utils::UrlLoadObserver accessible_observer( | |
270 accessible_url, content::NotificationService::AllSources()); | |
264 GURL accessible_client_redirect_resource(embedded_test_server()->GetURL( | 271 GURL accessible_client_redirect_resource(embedded_test_server()->GetURL( |
265 "/extensions/api_test/extension_resource_request_policy/" | 272 "/extensions/api_test/extension_resource_request_policy/" |
266 "web_accessible/accessible_redirect_resource.html")); | 273 "web_accessible/accessible_redirect_resource.html")); |
267 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(browser(), | 274 ui_test_utils::NavigateToURL(browser(), accessible_client_redirect_resource); |
268 accessible_client_redirect_resource, 2); | 275 accessible_observer.Wait(); |
269 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 276 EXPECT_EQ(browser() |
Devlin
2016/08/10 20:42:35
nitty nit: expected, actual
so
EXPECT_EQ(accessibl
Charlie Harrison
2016/08/10 20:45:35
Done.
| |
270 browser()->tab_strip_model()->GetActiveWebContents(), | 277 ->tab_strip_model() |
271 "window.domAutomationController.send(document.URL)", | 278 ->GetActiveWebContents() |
272 &result)); | 279 ->GetLastCommittedURL(), |
273 EXPECT_NE("about:blank", result); | 280 accessible_url); |
274 | 281 |
282 ui_test_utils::UrlLoadObserver nonaccessible_observer( | |
283 GURL("about:blank"), content::NotificationService::AllSources()); | |
275 GURL nonaccessible_client_redirect_resource(embedded_test_server()->GetURL( | 284 GURL nonaccessible_client_redirect_resource(embedded_test_server()->GetURL( |
276 "/extensions/api_test/extension_resource_request_policy/" | 285 "/extensions/api_test/extension_resource_request_policy/" |
277 "web_accessible/nonaccessible_redirect_resource.html")); | 286 "web_accessible/nonaccessible_redirect_resource.html")); |
278 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete(browser(), | 287 ui_test_utils::NavigateToURL(browser(), |
279 nonaccessible_client_redirect_resource, 2); | 288 nonaccessible_client_redirect_resource); |
280 ASSERT_TRUE(content::ExecuteScriptAndExtractString( | 289 nonaccessible_observer.Wait(); |
281 browser()->tab_strip_model()->GetActiveWebContents(), | 290 EXPECT_EQ(browser() |
282 "window.domAutomationController.send(document.URL)", | 291 ->tab_strip_model() |
283 &result)); | 292 ->GetActiveWebContents() |
284 EXPECT_EQ("about:blank", result); | 293 ->GetLastCommittedURL(), |
294 GURL("about:blank")); | |
285 } | 295 } |
286 | 296 |
287 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, | 297 IN_PROC_BROWSER_TEST_F(ExtensionResourceRequestPolicyTest, |
288 WebAccessibleResourcesWithCSP) { | 298 WebAccessibleResourcesWithCSP) { |
289 std::string result; | 299 std::string result; |
290 ASSERT_TRUE(embedded_test_server()->Start()); | 300 ASSERT_TRUE(embedded_test_server()->Start()); |
291 ASSERT_TRUE(LoadExtension(test_data_dir_ | 301 ASSERT_TRUE(LoadExtension(test_data_dir_ |
292 .AppendASCII("extension_resource_request_policy") | 302 .AppendASCII("extension_resource_request_policy") |
293 .AppendASCII("web_accessible"))); | 303 .AppendASCII("web_accessible"))); |
294 | 304 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
372 | 382 |
373 content::WebContents* web_contents = | 383 content::WebContents* web_contents = |
374 browser()->tab_strip_model()->GetActiveWebContents(); | 384 browser()->tab_strip_model()->GetActiveWebContents(); |
375 | 385 |
376 GURL private_page( | 386 GURL private_page( |
377 "chrome-extension://kegmjfcnjamahdnldjmlpachmpielcdk/private.html"); | 387 "chrome-extension://kegmjfcnjamahdnldjmlpachmpielcdk/private.html"); |
378 NavigationErrorObserver observer(web_contents, private_page); | 388 NavigationErrorObserver observer(web_contents, private_page); |
379 ASSERT_TRUE(content::ExecuteScript(web_contents, "navigateFrameNow()")); | 389 ASSERT_TRUE(content::ExecuteScript(web_contents, "navigateFrameNow()")); |
380 observer.Wait(); | 390 observer.Wait(); |
381 } | 391 } |
OLD | NEW |