Index: chrome/browser/apps/app_url_redirector_browsertest.cc |
diff --git a/chrome/browser/apps/app_url_redirector_browsertest.cc b/chrome/browser/apps/app_url_redirector_browsertest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..18408804631b0a827fe91d1e1dc765369167c2ae |
--- /dev/null |
+++ b/chrome/browser/apps/app_url_redirector_browsertest.cc |
@@ -0,0 +1,66 @@ |
+// Copyright 2013 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/apps/app_browsertest_util.h" |
benwells
2013/09/09 05:48:39
You also need tests to cover navigation with a url
sergeygs
2013/09/09 09:55:36
Already did. See the most recent patch with new te
|
+ |
+namespace extensions { |
+ |
+// Test that a click on a regular link in a tab launches an app that has |
+// matching url_handlers. |
+IN_PROC_BROWSER_TEST_F(PlatformAppUrlRedirectorBrowserTest, |
+ ClickInTabIntercepted) { |
+ TestNavigationInTab("url_handlers/launching_tabs/click_link.html", |
+ "url_handlers/handler", |
+ "Handler launched", |
+ 1U); |
benwells
2013/09/09 05:48:39
The InTab variants always have 1U, and the InApp v
sergeygs
2013/09/09 09:55:36
Already (re)done in a different way.
|
+} |
+ |
+// Test that a click on a target='_blank' link in a tab launches an app that has |
+// matching url_handlers. |
+IN_PROC_BROWSER_TEST_F(PlatformAppUrlRedirectorBrowserTest, |
+ BlankClickInTabIntercepted) { |
+ TestNavigationInTab("url_handlers/launching_tabs/click_blank_link.html", |
+ "url_handlers/handler", |
+ "Handler launched", |
+ 1U); |
+} |
+ |
+// Test that a call to window.open() in a tab launches an app that has |
+// matching url_handlers. |
+IN_PROC_BROWSER_TEST_F(PlatformAppUrlRedirectorBrowserTest, |
+ WindowOpenInTabIntercepted) { |
+ TestNavigationInTab("url_handlers/launching_tabs/call_window_open.html", |
+ "url_handlers/handler", |
+ "Handler launched", |
+ 1U); |
+} |
+ |
+// Test that a click on target='_blank' link in an app window launches an app |
+// that has matching url_handlers. |
+IN_PROC_BROWSER_TEST_F(PlatformAppUrlRedirectorBrowserTest, |
+ BlankClickInAppIntercepted) { |
+ TestNavigationInApp("url_handlers/launcher", |
+ "Launcher launched", |
+ "url_handlers/handler", |
+ "Handler launched", |
+ 2U); |
+} |
+ |
+// Test that a webview in an app can be navigated to a URL without interception |
+// even when there are other (or the same) apps that have matching url_handlers. |
+IN_PROC_BROWSER_TEST_F(PlatformAppUrlRedirectorBrowserTest, |
+ WebviewNavigationNotIntercepted) { |
+ // The launcher clicks on a link, which gets intercepted and launches the |
+ // handler. The handler also redirects an embedded webview to the URL. The |
+ // webview should just navigate without creating an endless loop of |
+ // navigate-intercept-launch sequences with multiplying handler's windows. |
+ // There should be 2 windows only: launcher's and handler's. |
+ TestNavigationInApp("url_handlers/launcher", |
+ "Launcher launched", |
+ "url_handlers/handler_with_webview", |
+ "Handler launched", |
+ 2U); |
+} |
+ |
+} // namespace extensions |