| 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());
|
| + }
|
| }
|
|
|