Index: chrome/android/javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java |
index f5ab4de31b3a8d5b9efb42fe523cb6d06a4d4f70..e1737a3565fcbe6b2d59c7c3fb65bc3e363dee58 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsOpenedFromExternalAppTest.java |
@@ -146,8 +146,9 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
* Returns when the URL has been navigated to. |
* @throws InterruptedException |
*/ |
- private void launchUrlFromExternalApp(String url, String appId, boolean createNewTab) |
- throws InterruptedException { |
+ private void launchUrlFromExternalApp(String intentUrl, String expectedUrl, String appId, |
+ boolean createNewTab) |
+ throws InterruptedException { |
final Intent intent = new Intent(Intent.ACTION_VIEW); |
if (appId != null) { |
intent.putExtra(Browser.EXTRA_APPLICATION_ID, appId); |
@@ -155,7 +156,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
if (createNewTab) { |
intent.putExtra(Browser.EXTRA_CREATE_NEW_TAB, true); |
} |
- intent.setData(Uri.parse(url)); |
+ intent.setData(Uri.parse(intentUrl)); |
final Tab originalTab = getActivity().getActivityTab(); |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@@ -172,7 +173,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
} |
}); |
} |
- ChromeTabUtils.waitForTabPageLoaded(getActivity().getActivityTab(), url); |
+ ChromeTabUtils.waitForTabPageLoaded(getActivity().getActivityTab(), expectedUrl); |
} |
/** |
@@ -190,7 +191,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
int originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
// Launch a first URL from an app. |
- launchUrlFromExternalApp(url1, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url1, url1, EXTERNAL_APP_1_ID, false); |
// It should have opened in a new tab. |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
@@ -199,7 +200,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch a new URL from the same app, it should open in the same tab. |
originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url2, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url2, url2, EXTERNAL_APP_1_ID, false); |
newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url2, |
@@ -235,7 +236,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch a first URL with an app. |
- launchUrlFromExternalApp(url1, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url1, url1, EXTERNAL_APP_1_ID, false); |
assertEquals("Selected tab is not on the right URL.", url1, |
getActivity().getActivityTab().getUrl()); |
@@ -243,7 +244,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch the same URL without app ID. It should open a new tab. |
originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url1, null, false); |
+ launchUrlFromExternalApp(url1, url1, null, false); |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url1, |
@@ -251,7 +252,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch another URL without app ID. It should open a new tab. |
originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url2, null, false); |
+ launchUrlFromExternalApp(url2, url2, null, false); |
newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url2, |
@@ -286,7 +287,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
int originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
// Launch a first URL from an app. |
- launchUrlFromExternalApp(url1, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url1, url1, EXTERNAL_APP_1_ID, false); |
// It should have opened in a new tab. |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
@@ -295,7 +296,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch a new URL from the same app with the right extra to open in a new tab. |
originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url2, EXTERNAL_APP_1_ID, true); |
+ launchUrlFromExternalApp(url2, url2, EXTERNAL_APP_1_ID, true); |
newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url2, |
@@ -332,7 +333,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch a new URL from the same app, it should open in the same tab. |
int originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url2, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url2, url2, EXTERNAL_APP_1_ID, false); |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url2, |
@@ -365,12 +366,12 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
String url3 = mTestServer.getURL("/chrome/test/data/android/test.html"); |
// Launch a first URL from an app1. |
- launchUrlFromExternalApp(url1, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url1, url1, EXTERNAL_APP_1_ID, false); |
int originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
// Launch a second URL from an app2, it should open in a new tab. |
- launchUrlFromExternalApp(url2, EXTERNAL_APP_2_ID, false); |
+ launchUrlFromExternalApp(url2, url2, EXTERNAL_APP_2_ID, false); |
// It should have opened in a new tab. |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
@@ -380,7 +381,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Also try with no app id, it should also open in a new tab. |
originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url3, null, false); |
+ launchUrlFromExternalApp(url3, url3, null, false); |
newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url3, |
@@ -402,14 +403,14 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
String url3 = mTestServer.getURL("/chrome/test/data/android/test.html"); |
// Launch a first URL from an app. |
- launchUrlFromExternalApp(url1, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url1, url1, EXTERNAL_APP_1_ID, false); |
// Now simulate the user manually navigating to another URL. |
loadUrl(url3); |
// Launch a second URL from the same app, it should open in a new tab. |
int originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url2, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url2, url2, EXTERNAL_APP_1_ID, false); |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url2, |
@@ -434,7 +435,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
String url2 = mTestServer.getURL("/chrome/test/data/android/about.html"); |
// Launch a first URL from an app. |
- launchUrlFromExternalApp(url1, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url1, url1, EXTERNAL_APP_1_ID, false); |
// Focus the text-field and type something. |
Tab tab = getActivity().getActivityTab(); |
@@ -453,7 +454,7 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
// Launch a second URL from the same app, it should open in a new tab. |
int originalTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
- launchUrlFromExternalApp(url2, EXTERNAL_APP_1_ID, false); |
+ launchUrlFromExternalApp(url2, url2, EXTERNAL_APP_1_ID, false); |
int newTabCount = ChromeTabUtils.getNumOpenTabs(getActivity()); |
assertEquals("Incorrect number of tabs open", originalTabCount + 1, newTabCount); |
assertEquals("Selected tab is not on the right URL.", url2, |
@@ -561,4 +562,42 @@ public class TabsOpenedFromExternalAppTest extends ChromeTabbedActivityTestBase |
} |
}); |
} |
+ |
+ /** |
+ * Tests that a Weblite url from an external app uses the lite_url param when Data Reduction |
+ * Proxy previews are being used. |
+ */ |
+ @MediumTest |
+ @CommandLineFlags.Add({"enable-spdy-proxy-auth", "data-reduction-proxy-lo-fi=always-on", |
+ "enable-data-reduction-proxy-lo-fi-preview"}) |
+ public void testLaunchWebLiteURL() throws InterruptedException { |
+ startMainActivityFromLauncher(); |
+ |
+ String url = mTestServer.getURL("chrome/test/data/android/about.html"); |
+ |
+ // Launch a first URL from an app. |
+ launchUrlFromExternalApp("http://googleweblight.com/?lite_url=" + url, url, |
+ EXTERNAL_APP_1_ID, false); |
+ |
+ assertEquals("Selected tab is not on the right URL.", |
+ url, getActivity().getActivityTab().getUrl()); |
+ } |
+ |
+ /** |
+ * Tests that a Weblite url from an external app does not use the lite_url param when Data |
+ * Reduction Proxy previews are not being used. |
+ */ |
+ @MediumTest |
+ public void testLaunchWebLiteURLNoPreviews() throws InterruptedException { |
+ startMainActivityFromLauncher(); |
+ |
+ String url = mTestServer |
+ .getURL("http://googleweblight.com/?lite_url=chrome/test/data/android/about.html"); |
+ |
+ // Launch a first URL from an app. |
+ launchUrlFromExternalApp(url, url, EXTERNAL_APP_1_ID, false); |
+ |
+ assertEquals("Selected tab is not on the right URL.", |
+ url, getActivity().getActivityTab().getUrl()); |
+ } |
} |