| Index: chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
|
| diff --git a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
|
| similarity index 80%
|
| rename from chrome/android/javatests_shell/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
|
| rename to chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
|
| index ccc4afb6736f99c3d1d88edc56aff391c961c461..c9675e9f186d4966693324552189cf28bee60380 100644
|
| --- a/chrome/android/javatests_shell/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
|
| @@ -15,21 +15,27 @@ import android.widget.ListView;
|
|
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.base.annotations.SuppressFBWarnings;
|
| +import org.chromium.base.test.util.CommandLineFlags;
|
| import org.chromium.base.test.util.DisabledTest;
|
| import org.chromium.base.test.util.Feature;
|
| -import org.chromium.chrome.shell.ChromeShellActivity;
|
| -import org.chromium.chrome.shell.ChromeShellActivity.AppMenuHandlerFactory;
|
| -import org.chromium.chrome.shell.ChromeShellTestBase;
|
| -import org.chromium.chrome.shell.R;
|
| +import org.chromium.base.test.util.UrlUtils;
|
| +import org.chromium.chrome.R;
|
| +import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| +import org.chromium.chrome.browser.ChromeTabbedActivity;
|
| +import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| +import org.chromium.chrome.test.util.ChromeTabUtils;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| import org.chromium.content.browser.test.util.CriteriaHelper;
|
|
|
| /**
|
| * Tests AppMenu popup
|
| */
|
| -public class AppMenuTest extends ChromeShellTestBase {
|
| +public class AppMenuTest extends ChromeActivityTestCaseBase<ChromeActivity> {
|
| + private static final String TEST_URL = UrlUtils.encodeHtmlDataUri("<html>poit.</html>");
|
| +
|
| private AppMenu mAppMenu;
|
| - private AppMenuHandlerForTest mAppMenuHandler;
|
| + private AppMenuHandler mAppMenuHandler;
|
|
|
| /**
|
| * AppMenuHandler that will be used to intercept item selections for testing.
|
| @@ -50,22 +56,34 @@ public class AppMenuTest extends ChromeShellTestBase {
|
| void onOptionsItemSelected(MenuItem item) {
|
| mLastSelectedItemId = item.getItemId();
|
| }
|
| + }
|
|
|
| + public AppMenuTest() {
|
| + super(ChromeActivity.class);
|
| + }
|
| +
|
| + @Override
|
| + public void startMainActivity() throws InterruptedException {
|
| + startMainActivityWithURL(TEST_URL);
|
| }
|
|
|
| @Override
|
| protected void setUp() throws Exception {
|
| + // We need list selection; ensure we are not in touch mode.
|
| + getInstrumentation().setInTouchMode(false);
|
| +
|
| + ChromeActivity.setAppMenuHandlerFactoryForTesting(
|
| + new ChromeActivity.AppMenuHandlerFactory() {
|
| + @Override
|
| + public AppMenuHandler get(Activity activity, AppMenuPropertiesDelegate delegate,
|
| + int menuResourceId) {
|
| + mAppMenuHandler =
|
| + new AppMenuHandlerForTest(activity, delegate, menuResourceId);
|
| + return mAppMenuHandler;
|
| + }
|
| + });
|
| +
|
| super.setUp();
|
| - ChromeShellActivity.setAppMenuHandlerFactory(new AppMenuHandlerFactory() {
|
| - @Override
|
| - public AppMenuHandler getAppMenuHandler(Activity activity,
|
| - AppMenuPropertiesDelegate delegate, int menuResourceId) {
|
| - mAppMenuHandler = new AppMenuHandlerForTest(activity, delegate, menuResourceId);
|
| - return mAppMenuHandler;
|
| - }
|
| - });
|
| - launchChromeShellWithBlankPage();
|
| - assertTrue("Page failed to load", waitForActiveShellToBeDoneLoading());
|
|
|
| showAppMenuAndAssertMenuShown();
|
| mAppMenu = getActivity().getAppMenuHandler().getAppMenuForTest();
|
| @@ -85,6 +103,20 @@ public class AppMenuTest extends ChromeShellTestBase {
|
| }
|
|
|
| /**
|
| + * Verify opening a new tab from the menu.
|
| + */
|
| + @CommandLineFlags.Add(ChromeSwitches.DISABLE_DOCUMENT_MODE)
|
| + @SmallTest
|
| + @Feature({"Browser", "Main"})
|
| + public void testMenuNewTab() throws InterruptedException {
|
| + final int tabCountBefore = getActivity().getCurrentTabModel().getCount();
|
| + ChromeTabUtils.newTabFromMenu(getInstrumentation(), (ChromeTabbedActivity) getActivity());
|
| + final int tabCountAfter = getActivity().getCurrentTabModel().getCount();
|
| + assertTrue("Expected: " + (tabCountBefore + 1) + " Got: " + tabCountAfter,
|
| + tabCountBefore + 1 == tabCountAfter);
|
| + }
|
| +
|
| + /**
|
| * Test bounds when accessing the menu through the keyboard.
|
| * Make sure that the menu stays open when trying to move past the first and last items.
|
| */
|
| @@ -181,11 +213,12 @@ public class AppMenuTest extends ChromeShellTestBase {
|
| }
|
|
|
| private void showAppMenuAndAssertMenuShown() throws InterruptedException {
|
| - final View menuButton = getActivity().findViewById(R.id.menu_button);
|
| + final View anchor = getActivity().findViewById(R.id.menu_anchor_stub);
|
| +
|
| ThreadUtils.runOnUiThread(new Runnable() {
|
| @Override
|
| public void run() {
|
| - menuButton.performClick();
|
| + mAppMenuHandler.showAppMenu(anchor, false, false);
|
| }
|
| });
|
| assertTrue("AppMenu did not show",
|
|
|