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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/ShortcutHelperTest.java

Issue 934183002: Make the ShortcutHelper toast instead of send the user home for web app banners (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix existing null access, change for comments Created 5 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/ShortcutHelperTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ShortcutHelperTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ShortcutHelperTest.java
index addf158cd805e2d9dee975a49dc11f68329d595b..3890d9800a784a9857ece3a314cf23949c1f6f27 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ShortcutHelperTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ShortcutHelperTest.java
@@ -1,17 +1,20 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
+// Copyright 2015 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.
package org.chromium.chrome.browser;
import android.content.Intent;
-import android.test.FlakyTest;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.TextUtils;
+import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.UrlUtils;
import org.chromium.chrome.shell.ChromeShellActivity;
import org.chromium.chrome.shell.ChromeShellApplication;
import org.chromium.chrome.shell.ChromeShellApplicationObserver;
import org.chromium.chrome.shell.ChromeShellTestBase;
+import org.chromium.chrome.test.util.browser.TabLoadObserver;
import org.chromium.content.browser.test.util.Criteria;
import org.chromium.content.browser.test.util.CriteriaHelper;
@@ -42,12 +45,13 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
+ "<head><title>" + NORMAL_TITLE + "</title></head>"
+ "<body>Not Webapp capable</body></html>");
+ private static final String META_APP_NAME_PAGE_TITLE = "Not the right title";
private static final String META_APP_NAME_TITLE = "Web application-name";
private static final String META_APP_NAME_HTML = UrlUtils.encodeHtmlDataUri(
"<html><head>"
+ "<meta name=\"mobile-web-app-capable\" content=\"yes\" />"
+ "<meta name=\"application-name\" content=\"" + META_APP_NAME_TITLE + "\">"
- + "<title>Not the right title</title>"
+ + "<title>" + META_APP_NAME_PAGE_TITLE + "</title>"
+ "</head><body>Webapp capable</body></html>");
private static class TestObserver implements ChromeShellApplicationObserver {
@@ -74,6 +78,8 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
@Override
public void setUp() throws Exception {
+ super.setUp();
+
ShortcutHelper.setFullScreenAction(WEBAPP_ACTION_NAME);
mActivity = launchChromeShellWithBlankPage();
@@ -82,19 +88,13 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
ChromeShellApplication application =
(ChromeShellApplication) mActivity.getApplication();
application.addObserver(mTestObserver);
-
- super.setUp();
}
- /**
- * @MediumTest
- * @Feature("{Webapp}")
- * crbug.com/303486
- */
- @FlakyTest
+ @SmallTest
+ @Feature("{Webapp}")
public void testAddWebappShortcuts() throws InterruptedException {
// Add a webapp shortcut and make sure the intent's parameters make sense.
- addShortcutToURL(WEBAPP_HTML, "");
+ addShortcutToURL(WEBAPP_HTML, WEBAPP_TITLE, "");
Intent firedIntent = mTestObserver.mFiredIntent;
assertEquals(WEBAPP_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
@@ -105,7 +105,7 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
// Add a second shortcut and make sure it matches the second webapp's parameters.
mTestObserver.reset();
- addShortcutToURL(SECOND_WEBAPP_HTML, "");
+ addShortcutToURL(SECOND_WEBAPP_HTML, SECOND_WEBAPP_TITLE, "");
Intent newFiredIntent = mTestObserver.mFiredIntent;
assertEquals(SECOND_WEBAPP_TITLE,
newFiredIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
@@ -116,14 +116,10 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
assertEquals(mActivity.getPackageName(), newLaunchIntent.getPackage());
}
- /**
- * @MediumTest
- * @Feature("{Webapp}")
- * crbug.com/303486
- */
- @FlakyTest
+ @SmallTest
+ @Feature("{Webapp}")
public void testAddBookmarkShortcut() throws InterruptedException {
- addShortcutToURL(NORMAL_HTML, "");
+ addShortcutToURL(NORMAL_HTML, NORMAL_TITLE, "");
// Make sure the intent's parameters make sense.
Intent firedIntent = mTestObserver.mFiredIntent;
@@ -135,48 +131,45 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
assertEquals(NORMAL_HTML, launchIntent.getDataString());
}
- /**
- * @MediumTest
- * @Feature("{Webapp}")
- * crbug.com/303486
- */
- @FlakyTest
+ @SmallTest
+ @Feature("{Webapp}")
public void testAddWebappShortcutsWithoutTitleEdit() throws InterruptedException {
- // Add a webapp shortcut to check unedited title.
- addShortcutToURL(WEBAPP_HTML, "");
+ // Add a webapp shortcut using the page's title.
+ addShortcutToURL(WEBAPP_HTML, WEBAPP_TITLE, "");
Intent firedIntent = mTestObserver.mFiredIntent;
assertEquals(WEBAPP_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
}
- /**
- * @MediumTest
- * @Feature("{Webapp}")
- * crbug.com/303486
- */
- @FlakyTest
+ @SmallTest
+ @Feature("{Webapp}")
public void testAddWebappShortcutsWithTitleEdit() throws InterruptedException {
- // Add a webapp shortcut to check edited title.
- addShortcutToURL(WEBAPP_HTML, EDITED_WEBAPP_TITLE);
+ // Add a webapp shortcut with a custom title.
+ addShortcutToURL(WEBAPP_HTML, WEBAPP_TITLE, EDITED_WEBAPP_TITLE);
Intent firedIntent = mTestObserver.mFiredIntent;
- assertEquals(EDITED_WEBAPP_TITLE , firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
+ assertEquals(EDITED_WEBAPP_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
}
- /**
- * @MediumTest
- * @Feature("{Webapp}")
- * crbug.com/303486
- */
- @FlakyTest
+ @SmallTest
+ @Feature("{Webapp}")
public void testAddWebappShortcutsWithApplicationName() throws InterruptedException {
- // Add a webapp shortcut to check edited title.
- addShortcutToURL(META_APP_NAME_HTML, "");
+ addShortcutToURL(META_APP_NAME_HTML, META_APP_NAME_PAGE_TITLE, "");
Intent firedIntent = mTestObserver.mFiredIntent;
- assertEquals(META_APP_NAME_TITLE , firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
+ assertEquals(META_APP_NAME_TITLE, firedIntent.getStringExtra(Intent.EXTRA_SHORTCUT_NAME));
}
- private void addShortcutToURL(String url, final String title) throws InterruptedException {
- loadUrlWithSanitization(url);
- assertTrue(waitForActiveShellToBeDoneLoading());
+ private void addShortcutToURL(String url, final String expectedPageTitle, final String title)
+ throws InterruptedException {
+ final Tab activeTab = getActivity().getActiveTab();
+ TabLoadObserver observer = new TabLoadObserver(activeTab, url) {
+ @Override
+ public boolean isSatisfied() {
+ // The page title is often updated over several iterations. Wait until the right
+ // one appears.
+ return super.isSatisfied()
+ && TextUtils.equals(activeTab.getTitle(), expectedPageTitle);
+ }
+ };
+ assertTrue(CriteriaHelper.pollForUIThreadCriteria(observer));
// Add the shortcut.
getInstrumentation().runOnMainSync(new Runnable() {
@@ -184,8 +177,7 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
public void run() {
final ShortcutHelper shortcutHelper = new ShortcutHelper(
mActivity.getApplicationContext(), mActivity.getActiveTab());
- // Calling initialize() isn't strictly required but it is
- // testing this code path.
+ // Calling initialize() isn't strictly required but it is testing this code path.
shortcutHelper.initialize(new ShortcutHelper.OnInitialized() {
@Override
public void onInitialized(String t) {
@@ -196,7 +188,7 @@ public class ShortcutHelperTest extends ChromeShellTestBase {
});
// Make sure that the shortcut was added.
- assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
+ assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() {
@Override
public boolean isSatisfied() {
return mTestObserver.mFiredIntent != null;
« no previous file with comments | « chrome/android/java/strings/android_chrome_strings.grd ('k') | chrome/browser/android/banners/app_banner_infobar_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698