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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/AddToHomescreenManagerTest.java

Issue 2379923002: Implement "appinstalled" event on Android. (Closed)
Patch Set: Fix up some includes. Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 package org.chromium.chrome.browser.webapps; 5 package org.chromium.chrome.browser.webapps;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.graphics.Bitmap; 10 import android.graphics.Bitmap;
11 import android.test.suitebuilder.annotation.SmallTest; 11 import android.test.suitebuilder.annotation.SmallTest;
12 12
13 import org.chromium.base.ThreadUtils; 13 import org.chromium.base.ThreadUtils;
14 import org.chromium.base.test.util.CommandLineFlags; 14 import org.chromium.base.test.util.CommandLineFlags;
15 import org.chromium.base.test.util.Feature; 15 import org.chromium.base.test.util.Feature;
16 import org.chromium.base.test.util.Restriction; 16 import org.chromium.base.test.util.Restriction;
17 import org.chromium.base.test.util.RetryOnFailure; 17 import org.chromium.base.test.util.RetryOnFailure;
18 import org.chromium.base.test.util.UrlUtils; 18 import org.chromium.base.test.util.UrlUtils;
19 import org.chromium.chrome.R; 19 import org.chromium.chrome.R;
20 import org.chromium.chrome.browser.ChromeActivity; 20 import org.chromium.chrome.browser.ChromeActivity;
21 import org.chromium.chrome.browser.ShortcutHelper; 21 import org.chromium.chrome.browser.ShortcutHelper;
22 import org.chromium.chrome.browser.tab.Tab; 22 import org.chromium.chrome.browser.tab.Tab;
23 import org.chromium.chrome.browser.tabmodel.TabModel; 23 import org.chromium.chrome.browser.tabmodel.TabModel;
24 import org.chromium.chrome.test.ChromeActivityTestCaseBase; 24 import org.chromium.chrome.test.ChromeActivityTestCaseBase;
25 import org.chromium.chrome.test.util.browser.TabLoadObserver; 25 import org.chromium.chrome.test.util.browser.TabLoadObserver;
26 import org.chromium.chrome.test.util.browser.TabTitleObserver;
26 import org.chromium.content.browser.test.util.Criteria; 27 import org.chromium.content.browser.test.util.Criteria;
27 import org.chromium.content.browser.test.util.CriteriaHelper; 28 import org.chromium.content.browser.test.util.CriteriaHelper;
28 import org.chromium.content.common.ContentSwitches; 29 import org.chromium.content.common.ContentSwitches;
29 import org.chromium.net.test.EmbeddedTestServer; 30 import org.chromium.net.test.EmbeddedTestServer;
30 31
31 import java.util.concurrent.Callable; 32 import java.util.concurrent.Callable;
32 33
33 /** 34 /**
34 * Tests org.chromium.chrome.browser.webapps.AddToHomescreenManager and its C++ counterpart. 35 * Tests org.chromium.chrome.browser.webapps.AddToHomescreenManager and its C++ counterpart.
35 */ 36 */
(...skipping 27 matching lines...) Expand all
63 private static final String META_APP_NAME_HTML = UrlUtils.encodeHtmlDataUri( 64 private static final String META_APP_NAME_HTML = UrlUtils.encodeHtmlDataUri(
64 "<html><head>" 65 "<html><head>"
65 + "<meta name=\"mobile-web-app-capable\" content=\"yes\" />" 66 + "<meta name=\"mobile-web-app-capable\" content=\"yes\" />"
66 + "<meta name=\"application-name\" content=\"" + META_APP_NAME_TITLE + "\">" 67 + "<meta name=\"application-name\" content=\"" + META_APP_NAME_TITLE + "\">"
67 + "<title>" + META_APP_NAME_PAGE_TITLE + "</title>" 68 + "<title>" + META_APP_NAME_PAGE_TITLE + "</title>"
68 + "</head><body>Webapp capable</body></html>"); 69 + "</head><body>Webapp capable</body></html>");
69 70
70 private static final String MANIFEST_PATH = "/chrome/test/data/banners/manif est_test_page.html"; 71 private static final String MANIFEST_PATH = "/chrome/test/data/banners/manif est_test_page.html";
71 private static final String MANIFEST_TITLE = "Web app banner test page"; 72 private static final String MANIFEST_TITLE = "Web app banner test page";
72 73
74 private static final String EVENT_WEBAPP_PATH =
75 "/chrome/test/data/banners/appinstalled_test_page.html";
76 private static final String EVENT_WEBAPP_TITLE = "appinstalled event test pa ge";
77
73 private static class TestShortcutHelperDelegate extends ShortcutHelper.Deleg ate { 78 private static class TestShortcutHelperDelegate extends ShortcutHelper.Deleg ate {
74 public Intent mBroadcastedIntent; 79 public Intent mBroadcastedIntent;
75 80
76 @Override 81 @Override
77 public void sendBroadcast(Context context, Intent intent) { 82 public void sendBroadcast(Context context, Intent intent) {
78 mBroadcastedIntent = intent; 83 mBroadcastedIntent = intent;
79 } 84 }
80 85
81 @Override 86 @Override
82 public String getFullscreenAction() { 87 public String getFullscreenAction() {
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 R.dimen.webapp_splash_image_size_ideal); 277 R.dimen.webapp_splash_image_size_ideal);
273 Bitmap splashImage = 278 Bitmap splashImage =
274 ShortcutHelper.decodeBitmapFromString(dataStorageFactory.mSp lashImage); 279 ShortcutHelper.decodeBitmapFromString(dataStorageFactory.mSp lashImage);
275 assertEquals(idealSize, splashImage.getWidth()); 280 assertEquals(idealSize, splashImage.getWidth());
276 assertEquals(idealSize, splashImage.getHeight()); 281 assertEquals(idealSize, splashImage.getHeight());
277 } finally { 282 } finally {
278 mTestServer.stopAndDestroyServer(); 283 mTestServer.stopAndDestroyServer();
279 } 284 }
280 } 285 }
281 286
287 /** Tests that the appinstalled event is fired when an app is installed.
288 */
289 @SmallTest
290 @Feature("{Webapp}")
291 public void testAddWebappShortcutAppInstalledEvent() throws Exception {
292 try {
293 loadUrl(mTestServer.getURL(EVENT_WEBAPP_PATH), EVENT_WEBAPP_TITLE);
294 addShortcutToTab(mTab, "");
295
296 // Wait for the tab title to change. This will happen (due to the Ja vaScript that runs
297 // in the page) once the appinstalled event has been fired.
298 new TabTitleObserver(mTab, "Got appinstalled").waitForTitleUpdate(3) ;
299 } finally {
300 mTestServer.stopAndDestroyServer();
301 }
302 }
303
282 private void loadUrl(String url, String expectedPageTitle) throws Exception { 304 private void loadUrl(String url, String expectedPageTitle) throws Exception {
283 new TabLoadObserver(mTab, expectedPageTitle, null).fullyLoadUrl(url); 305 new TabLoadObserver(mTab, expectedPageTitle, null).fullyLoadUrl(url);
284 } 306 }
285 307
286 private void addShortcutToTab(Tab tab, String title) throws Exception { 308 private void addShortcutToTab(Tab tab, String title) throws Exception {
287 // Add the shortcut. 309 // Add the shortcut.
288 TestAddToHomescreenManager manager = new TestAddToHomescreenManager(mAct ivity, tab, title); 310 TestAddToHomescreenManager manager = new TestAddToHomescreenManager(mAct ivity, tab, title);
289 startManagerOnUiThread(manager); 311 startManagerOnUiThread(manager);
290 312
291 // Make sure that the shortcut was added. 313 // Make sure that the shortcut was added.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 public Integer call() { 359 public Integer call() {
338 return getActivity().getTabModelSelector().getModel(false).getCo unt(); 360 return getActivity().getTabModelSelector().getModel(false).getCo unt();
339 } 361 }
340 })); 362 }));
341 363
342 TabModel tabModel = getActivity().getTabModelSelector().getModel(false); 364 TabModel tabModel = getActivity().getTabModelSelector().getModel(false);
343 assertEquals(0, tabModel.indexOf(mTab)); 365 assertEquals(0, tabModel.indexOf(mTab));
344 return getActivity().getTabModelSelector().getModel(false).getTabAt(1); 366 return getActivity().getTabModelSelector().getModel(false).getTabAt(1);
345 } 367 }
346 } 368 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698