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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java

Issue 1509713004: Add a default share button to the menu of Custom Tabs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.customtabs; 5 package org.chromium.chrome.browser.customtabs;
6 6
7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E ND_DEVICE; 7 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_E ND_DEVICE;
8 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_PHONE; 8 import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_PHONE;
9 9
10 import android.app.Activity; 10 import android.app.Activity;
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 171
172 CriteriaHelper.pollForUIThreadCriteria(new Criteria("App menu was not sh own") { 172 CriteriaHelper.pollForUIThreadCriteria(new Criteria("App menu was not sh own") {
173 @Override 173 @Override
174 public boolean isSatisfied() { 174 public boolean isSatisfied() {
175 return mActivity.getAppMenuHandler().isAppMenuShowing(); 175 return mActivity.getAppMenuHandler().isAppMenuShowing();
176 } 176 }
177 }); 177 });
178 } 178 }
179 179
180 /** 180 /**
181 * @return The number of visible and enabled items in the given menu.
182 */
183 private int getActualMenuSize(Menu menu) {
184 int actualMenuSize = 0;
185 for (int i = 0; i < menu.size(); i++) {
186 MenuItem item = menu.getItem(i);
187 if (item.isVisible() && item.isEnabled()) actualMenuSize++;
188 }
189 return actualMenuSize;
190 }
191
192 /**
181 * Test the entries in the context menu shown when long clicking an image. 193 * Test the entries in the context menu shown when long clicking an image.
182 */ 194 */
183 @SmallTest 195 @SmallTest
184 public void testContextMenuEntriesForImage() throws InterruptedException, Ti meoutException { 196 public void testContextMenuEntriesForImage() throws InterruptedException, Ti meoutException {
185 startCustomTabActivityWithIntent(createMinimalCustomTabIntent()); 197 startCustomTabActivityWithIntent(createMinimalCustomTabIntent());
186 198
187 final int expectedMenuSize = 9; 199 final int expectedMenuSize = 9;
188 Menu menu = ContextMenuUtils.openContextMenu(this, getActivity().getActi vityTab(), "logo"); 200 Menu menu = ContextMenuUtils.openContextMenu(this, getActivity().getActi vityTab(), "logo");
189 assertEquals(expectedMenuSize, menu.size()); 201 assertEquals(expectedMenuSize, menu.size());
190 202
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 assertFalse(menu.findItem(R.id.contextmenu_save_image).isVisible()); 251 assertFalse(menu.findItem(R.id.contextmenu_save_image).isVisible());
240 assertFalse(menu.findItem(R.id.contextmenu_open_image).isVisible()); 252 assertFalse(menu.findItem(R.id.contextmenu_open_image).isVisible());
241 assertFalse(menu.findItem(R.id.contextmenu_search_by_image).isVisible()) ; 253 assertFalse(menu.findItem(R.id.contextmenu_search_by_image).isVisible()) ;
242 assertFalse(menu.findItem(R.id.contextmenu_save_video).isVisible()); 254 assertFalse(menu.findItem(R.id.contextmenu_save_video).isVisible());
243 } 255 }
244 256
245 /** 257 /**
246 * Test the entries in the app menu. 258 * Test the entries in the app menu.
247 */ 259 */
248 @SmallTest 260 @SmallTest
249 public void testCustomTabAppMenu() throws InterruptedException { 261 public void testAppMenu() throws InterruptedException {
250 Intent intent = createMinimalCustomTabIntent(); 262 Intent intent = createMinimalCustomTabIntent();
251 int numMenuEntries = 1; 263 int numMenuEntries = 1;
252 addMenuEntriesToIntent(intent, numMenuEntries); 264 addMenuEntriesToIntent(intent, numMenuEntries);
253 startCustomTabActivityWithIntent(intent); 265 startCustomTabActivityWithIntent(intent);
254 266
255 openAppMenuAndAssertMenuShown(); 267 openAppMenuAndAssertMenuShown();
268 Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu();
256 final int expectedMenuSize = numMenuEntries + NUM_CHROME_MENU_ITEMS; 269 final int expectedMenuSize = numMenuEntries + NUM_CHROME_MENU_ITEMS;
257 Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu(); 270 final int actualMenuSize = getActualMenuSize(menu);
271
258 assertNotNull("App menu is not initialized: ", menu); 272 assertNotNull("App menu is not initialized: ", menu);
259 assertEquals(expectedMenuSize, menu.size()); 273 assertEquals(expectedMenuSize, actualMenuSize);
260 assertNotNull(menu.findItem(R.id.forward_menu_id)); 274 assertNotNull(menu.findItem(R.id.forward_menu_id));
261 assertNotNull(menu.findItem(R.id.info_menu_id)); 275 assertNotNull(menu.findItem(R.id.info_menu_id));
262 assertNotNull(menu.findItem(R.id.reload_menu_id)); 276 assertNotNull(menu.findItem(R.id.reload_menu_id));
263 assertNotNull(menu.findItem(R.id.find_in_page_id)); 277 assertNotNull(menu.findItem(R.id.find_in_page_id));
264 assertNotNull(menu.findItem(R.id.open_in_chrome_id)); 278 assertNotNull(menu.findItem(R.id.open_in_chrome_id));
279 assertFalse(menu.findItem(R.id.share_menu_id).isVisible());
280 assertFalse(menu.findItem(R.id.share_menu_id).isEnabled());
265 } 281 }
266 282
267 /** 283 /**
284 * Tests if the default share item can be shown in the app menu.
285 */
286 @SmallTest
287 public void testShareMenuItem() throws InterruptedException {
288 Intent intent = createMinimalCustomTabIntent();
289 intent.putExtra(CustomTabsIntent.EXTRA_DEFAULT_SHARE_MENU_ITEM, true);
290 startCustomTabActivityWithIntent(intent);
291
292 openAppMenuAndAssertMenuShown();
293 Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu();
294 assertTrue(menu.findItem(R.id.share_menu_id).isVisible());
295 assertTrue(menu.findItem(R.id.share_menu_id).isEnabled());
296 }
297
298
299 /**
268 * Test that only up to 5 entries are added to the custom menu. 300 * Test that only up to 5 entries are added to the custom menu.
269 */ 301 */
270 @SmallTest 302 @SmallTest
271 public void testCustomTabMaxMenuItems() throws InterruptedException { 303 public void testMaxMenuItems() throws InterruptedException {
272 Intent intent = createMinimalCustomTabIntent(); 304 Intent intent = createMinimalCustomTabIntent();
273 int numMenuEntries = 7; 305 int numMenuEntries = 7;
274 addMenuEntriesToIntent(intent, numMenuEntries); 306 addMenuEntriesToIntent(intent, numMenuEntries);
275 startCustomTabActivityWithIntent(intent); 307 startCustomTabActivityWithIntent(intent);
276 308
277 openAppMenuAndAssertMenuShown(); 309 openAppMenuAndAssertMenuShown();
278 int expectedMenuSize = MAX_MENU_CUSTOM_ITEMS + NUM_CHROME_MENU_ITEMS;
279 Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu(); 310 Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu();
311 final int expectedMenuSize = MAX_MENU_CUSTOM_ITEMS + NUM_CHROME_MENU_ITE MS;
312 final int actualMenuSize = getActualMenuSize(menu);
280 assertNotNull("App menu is not initialized: ", menu); 313 assertNotNull("App menu is not initialized: ", menu);
281 assertEquals(expectedMenuSize, menu.size()); 314 assertEquals(expectedMenuSize, actualMenuSize);
282 } 315 }
283 316
284 /** 317 /**
285 * Test whether the custom menu is correctly shown and clicking it sends the right 318 * Test whether the custom menu is correctly shown and clicking it sends the right
286 * {@link PendingIntent}. 319 * {@link PendingIntent}.
287 */ 320 */
288 @SmallTest 321 @SmallTest
289 public void testCustomMenuEntry() throws InterruptedException { 322 public void testCustomMenuEntry() throws InterruptedException {
290 Intent intent = createMinimalCustomTabIntent(); 323 Intent intent = createMinimalCustomTabIntent();
291 final PendingIntent pi = addMenuEntriesToIntent(intent, 1); 324 final PendingIntent pi = addMenuEntriesToIntent(intent, 1);
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after
777 @Override 810 @Override
778 public void onSendFinished(PendingIntent pendingIntent, Intent intent, i nt resultCode, 811 public void onSendFinished(PendingIntent pendingIntent, Intent intent, i nt resultCode,
779 String resultData, Bundle resultExtras) { 812 String resultData, Bundle resultExtras) {
780 if (pendingIntent.equals(mPi)) { 813 if (pendingIntent.equals(mPi)) {
781 mUri = intent.getDataString(); 814 mUri = intent.getDataString();
782 mIsSent.set(true); 815 mIsSent.set(true);
783 } 816 }
784 } 817 }
785 } 818 }
786 } 819 }
OLDNEW
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698