Index: chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
index bc66ce53982e1dd897ef01e8c931335bf0175f5b..c21c597060dadc6b1c6c1be566f429735c13cec7 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/customtabs/CustomTabActivityTest.java |
@@ -178,6 +178,18 @@ public class CustomTabActivityTest extends CustomTabActivityTestBase { |
} |
/** |
+ * @return The number of visible and enabled items in the given menu. |
+ */ |
+ private int getActualMenuSize(Menu menu) { |
+ int actualMenuSize = 0; |
+ for (int i = 0; i < menu.size(); i++) { |
+ MenuItem item = menu.getItem(i); |
+ if (item.isVisible() && item.isEnabled()) actualMenuSize++; |
+ } |
+ return actualMenuSize; |
+ } |
+ |
+ /** |
* Test the entries in the context menu shown when long clicking an image. |
*/ |
@SmallTest |
@@ -246,39 +258,60 @@ public class CustomTabActivityTest extends CustomTabActivityTestBase { |
* Test the entries in the app menu. |
*/ |
@SmallTest |
- public void testCustomTabAppMenu() throws InterruptedException { |
+ public void testAppMenu() throws InterruptedException { |
Intent intent = createMinimalCustomTabIntent(); |
int numMenuEntries = 1; |
addMenuEntriesToIntent(intent, numMenuEntries); |
startCustomTabActivityWithIntent(intent); |
openAppMenuAndAssertMenuShown(); |
- final int expectedMenuSize = numMenuEntries + NUM_CHROME_MENU_ITEMS; |
Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu(); |
+ final int expectedMenuSize = numMenuEntries + NUM_CHROME_MENU_ITEMS; |
+ final int actualMenuSize = getActualMenuSize(menu); |
+ |
assertNotNull("App menu is not initialized: ", menu); |
- assertEquals(expectedMenuSize, menu.size()); |
+ assertEquals(expectedMenuSize, actualMenuSize); |
assertNotNull(menu.findItem(R.id.forward_menu_id)); |
assertNotNull(menu.findItem(R.id.info_menu_id)); |
assertNotNull(menu.findItem(R.id.reload_menu_id)); |
assertNotNull(menu.findItem(R.id.find_in_page_id)); |
assertNotNull(menu.findItem(R.id.open_in_chrome_id)); |
+ assertFalse(menu.findItem(R.id.share_menu_id).isVisible()); |
+ assertFalse(menu.findItem(R.id.share_menu_id).isEnabled()); |
} |
/** |
+ * Tests if the default share item can be shown in the app menu. |
+ */ |
+ @SmallTest |
+ public void testShareMenuItem() throws InterruptedException { |
+ Intent intent = createMinimalCustomTabIntent(); |
+ intent.putExtra(CustomTabsIntent.EXTRA_DEFAULT_SHARE_MENU_ITEM, true); |
+ startCustomTabActivityWithIntent(intent); |
+ |
+ openAppMenuAndAssertMenuShown(); |
+ Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu(); |
+ assertTrue(menu.findItem(R.id.share_menu_id).isVisible()); |
+ assertTrue(menu.findItem(R.id.share_menu_id).isEnabled()); |
+ } |
+ |
+ |
+ /** |
* Test that only up to 5 entries are added to the custom menu. |
*/ |
@SmallTest |
- public void testCustomTabMaxMenuItems() throws InterruptedException { |
+ public void testMaxMenuItems() throws InterruptedException { |
Intent intent = createMinimalCustomTabIntent(); |
int numMenuEntries = 7; |
addMenuEntriesToIntent(intent, numMenuEntries); |
startCustomTabActivityWithIntent(intent); |
openAppMenuAndAssertMenuShown(); |
- int expectedMenuSize = MAX_MENU_CUSTOM_ITEMS + NUM_CHROME_MENU_ITEMS; |
Menu menu = getActivity().getAppMenuHandler().getAppMenu().getMenu(); |
+ final int expectedMenuSize = MAX_MENU_CUSTOM_ITEMS + NUM_CHROME_MENU_ITEMS; |
+ final int actualMenuSize = getActualMenuSize(menu); |
assertNotNull("App menu is not initialized: ", menu); |
- assertEquals(expectedMenuSize, menu.size()); |
+ assertEquals(expectedMenuSize, actualMenuSize); |
} |
/** |