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

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

Issue 1139643006: Rename chrome/android/javatests to javatests_shell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 7 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/appmenu/AppMenuTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
deleted file mode 100644
index d1f7cc2091a9c94ca6b09a598e23507a7a3b11b4..0000000000000000000000000000000000000000
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/AppMenuTest.java
+++ /dev/null
@@ -1,268 +0,0 @@
-// Copyright 2014 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.appmenu;
-
-import android.app.Activity;
-import android.content.pm.ActivityInfo;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.KeyEvent;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.ListPopupWindow;
-import android.widget.ListView;
-
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.annotations.SuppressFBWarnings;
-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.content.browser.test.util.Criteria;
-import org.chromium.content.browser.test.util.CriteriaHelper;
-
-/**
- * Tests AppMenu popup
- */
-public class AppMenuTest extends ChromeShellTestBase {
- private AppMenu mAppMenu;
- private AppMenuHandlerForTest mAppMenuHandler;
-
- /**
- * AppMenuHandler that will be used to intercept item selections for testing.
- */
- @SuppressFBWarnings("URF_UNREAD_FIELD")
- public static class AppMenuHandlerForTest extends AppMenuHandler {
- int mLastSelectedItemId = -1;
-
- /**
- * AppMenuHandler for intercepting options item selections.
- */
- public AppMenuHandlerForTest(Activity activity, AppMenuPropertiesDelegate delegate,
- int menuResourceId) {
- super(activity, delegate, menuResourceId);
- }
-
- @Override
- void onOptionsItemSelected(MenuItem item) {
- mLastSelectedItemId = item.getItemId();
- }
-
- }
-
- @Override
- protected void setUp() throws Exception {
- 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().getAppMenu();
- ThreadUtils.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- mAppMenu.getPopup().getListView().setSelection(0);
- }
- });
- assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return getCurrentFocusedRow() == 0;
- }
- }));
- getInstrumentation().waitForIdleSync();
- }
-
- /**
- * 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.
- */
- @SmallTest
- @Feature({"Browser", "Main"})
- public void testKeyboardMenuBoundaries() throws InterruptedException {
- moveToBoundary(false, true);
- assertEquals(getCount() - 1, getCurrentFocusedRow());
- moveToBoundary(true, true);
- assertEquals(0, getCurrentFocusedRow());
- moveToBoundary(false, true);
- assertEquals(getCount() - 1, getCurrentFocusedRow());
- }
-
- /**
- * Test that typing ENTER immediately opening the menu works.
- */
- @SmallTest
- @Feature({"Browser", "Main"})
- public void testKeyboardMenuEnterOnOpen() throws InterruptedException {
- hitEnterAndAssertAppMenuDismissed();
- }
-
- /**
- * Test that hitting ENTER past the top item doesn't crash Chrome.
- */
- @SmallTest
- @Feature({"Browser", "Main"})
- public void testKeyboardEnterAfterMovePastTopItem() throws InterruptedException {
- moveToBoundary(true, true);
- assertEquals(0, getCurrentFocusedRow());
- hitEnterAndAssertAppMenuDismissed();
- }
-
- /**
- * Test that hitting ENTER past the bottom item doesn't crash Chrome.
- * Catches regressions for http://crbug.com/181067
- */
- @SmallTest
- @Feature({"Browser", "Main"})
- public void testKeyboardEnterAfterMovePastBottomItem() throws InterruptedException {
- moveToBoundary(false, true);
- assertEquals(getCount() - 1, getCurrentFocusedRow());
- hitEnterAndAssertAppMenuDismissed();
- }
-
- /**
- * Test that hitting ENTER on the top item actually triggers the top item.
- * Catches regressions for https://crbug.com/191239 for shrunken menus.
- */
- @SmallTest
- @Feature({"Browser", "Main"})
- public void testKeyboardMenuEnterOnTopItemLandscape() throws InterruptedException {
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- showAppMenuAndAssertMenuShown();
- moveToBoundary(true, false);
- assertEquals(0, getCurrentFocusedRow());
- hitEnterAndAssertAppMenuDismissed();
- }
-
- /**
- * Test that hitting ENTER on the top item doesn't crash Chrome.
- */
- @SmallTest
- @Feature({"Browser", "Main"})
- public void testKeyboardMenuEnterOnTopItemPortrait() throws InterruptedException {
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- showAppMenuAndAssertMenuShown();
- moveToBoundary(true, false);
- assertEquals(0, getCurrentFocusedRow());
- hitEnterAndAssertAppMenuDismissed();
- }
-
- /**
- * Test that changing orientation hides the menu.
- */
- /*
- @SmallTest
- @Feature({"Browser", "Main"})
- crbug.com/458193
- */
- @DisabledTest
- public void testChangingOrientationHidesMenu() throws InterruptedException {
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- showAppMenuAndAssertMenuShown();
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- assertTrue("AppMenu did not dismiss",
- CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return !mAppMenuHandler.isAppMenuShowing();
- }
- }));
- }
-
- private void showAppMenuAndAssertMenuShown() throws InterruptedException {
- final View menuButton = getActivity().findViewById(R.id.menu_button);
- ThreadUtils.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- menuButton.performClick();
- }
- });
- assertTrue("AppMenu did not show",
- CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return mAppMenuHandler.isAppMenuShowing();
- }
- }));
- }
-
- private void hitEnterAndAssertAppMenuDismissed() throws InterruptedException {
- getInstrumentation().waitForIdleSync();
- pressKey(KeyEvent.KEYCODE_ENTER);
- assertTrue("AppMenu did not dismiss",
- CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return !mAppMenuHandler.isAppMenuShowing();
- }
- }));
- }
-
- private void moveToBoundary(boolean towardsTop, boolean movePast) throws InterruptedException {
- // Move to the boundary.
- final int end = towardsTop ? 0 : getCount() - 1;
- int increment = towardsTop ? -1 : 1;
- for (int index = getCurrentFocusedRow(); index != end; index += increment) {
- pressKey(towardsTop ? KeyEvent.KEYCODE_DPAD_UP : KeyEvent.KEYCODE_DPAD_DOWN);
- final int expectedPosition = index + increment;
- assertTrue("Focus did not move to the next menu item",
- CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return getCurrentFocusedRow() == expectedPosition;
- }
- }));
- }
-
- // Try moving past it by one.
- if (movePast) {
- pressKey(towardsTop ? KeyEvent.KEYCODE_DPAD_UP : KeyEvent.KEYCODE_DPAD_DOWN);
- assertTrue("Focus moved past the edge menu item",
- CriteriaHelper.pollForCriteria(new Criteria() {
- @Override
- public boolean isSatisfied() {
- return getCurrentFocusedRow() == end;
- }
- }));
- }
-
- // The menu should stay open.
- assertTrue(mAppMenu.isShowing());
- }
-
- private void pressKey(final int keycode) {
- final View view = mAppMenu.getPopup().getListView();
- ThreadUtils.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- view.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, keycode));
- view.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, keycode));
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- private int getCurrentFocusedRow() {
- ListPopupWindow popup = mAppMenu.getPopup();
- if (popup == null || popup.getListView() == null) return ListView.INVALID_POSITION;
- ListView listView = popup.getListView();
- return listView.getSelectedItemPosition();
- }
-
- private int getCount() {
- ListPopupWindow popup = mAppMenu.getPopup();
- if (popup == null || popup.getListView() == null) return 0;
- return popup.getListView().getCount();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698