| Index: content/public/android/junit/src/org/chromium/content/browser/input/GamepadMappingsTest.java
 | 
| diff --git a/content/public/android/junit/src/org/chromium/content/browser/input/GamepadMappingsTest.java b/content/public/android/junit/src/org/chromium/content/browser/input/GamepadMappingsTest.java
 | 
| deleted file mode 100644
 | 
| index 58e16e7eb6d2ee511f37607e80a48d86732eb0d7..0000000000000000000000000000000000000000
 | 
| --- a/content/public/android/junit/src/org/chromium/content/browser/input/GamepadMappingsTest.java
 | 
| +++ /dev/null
 | 
| @@ -1,309 +0,0 @@
 | 
| -// Copyright 2015 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.content.browser.input;
 | 
| -
 | 
| -import android.view.KeyEvent;
 | 
| -import android.view.MotionEvent;
 | 
| -
 | 
| -import org.chromium.base.test.util.Feature;
 | 
| -import org.chromium.testing.local.LocalRobolectricTestRunner;
 | 
| -
 | 
| -import org.junit.Assert;
 | 
| -import org.junit.Before;
 | 
| -import org.junit.Test;
 | 
| -import org.junit.runner.RunWith;
 | 
| -
 | 
| -import org.robolectric.annotation.Config;
 | 
| -
 | 
| -import java.util.Arrays;
 | 
| -import java.util.BitSet;
 | 
| -
 | 
| -/**
 | 
| - * Verify no regressions in gamepad mappings.
 | 
| - */
 | 
| -@RunWith(LocalRobolectricTestRunner.class)
 | 
| -@Config(manifest = Config.NONE)
 | 
| -public class GamepadMappingsTest {
 | 
| -    private static final float ERROR_TOLERANCE = 0.000001f;
 | 
| -    /**
 | 
| -     * Set bits indicate that we don't expect the button at mMappedButtons[index] to be mapped.
 | 
| -     */
 | 
| -    private BitSet mUnmappedButtons = new BitSet(CanonicalButtonIndex.COUNT);
 | 
| -    /**
 | 
| -     * Set bits indicate that we don't expect the axis at mMappedAxes[index] to be mapped.
 | 
| -     */
 | 
| -    private BitSet mUnmappedAxes = new BitSet(CanonicalAxisIndex.COUNT);
 | 
| -    private float[] mMappedButtons = new float[CanonicalButtonIndex.COUNT];
 | 
| -    private float[] mMappedAxes = new float[CanonicalAxisIndex.COUNT];
 | 
| -    private float[] mRawButtons = new float[GamepadDevice.MAX_RAW_BUTTON_VALUES];
 | 
| -    private float[] mRawAxes = new float[GamepadDevice.MAX_RAW_AXIS_VALUES];
 | 
| -
 | 
| -    @Before
 | 
| -    public void setUp() throws Exception {
 | 
| -
 | 
| -        // By default, we expect every button and axis to be mapped.
 | 
| -        mUnmappedButtons.clear();
 | 
| -        mUnmappedAxes.clear();
 | 
| -
 | 
| -        // Start with all the mapped values as unmapped.
 | 
| -        Arrays.fill(mMappedButtons, Float.NaN);
 | 
| -        Arrays.fill(mMappedAxes, Float.NaN);
 | 
| -
 | 
| -        // Set each raw value to something unique.
 | 
| -        for (int i = 0; i < GamepadDevice.MAX_RAW_AXIS_VALUES; i++) {
 | 
| -            mRawAxes[i] = -i - 1.0f;
 | 
| -        }
 | 
| -        for (int i = 0; i < GamepadDevice.MAX_RAW_BUTTON_VALUES; i++) {
 | 
| -            mRawButtons[i] = i + 1.0f;
 | 
| -        }
 | 
| -    }
 | 
| -
 | 
| -    @Test
 | 
| -    @Feature({"Gamepad"})
 | 
| -    public void testShieldGamepadMappings() throws Exception {
 | 
| -        GamepadMappings.mapToStandardGamepad(mMappedAxes, mMappedButtons, mRawAxes, mRawButtons,
 | 
| -                GamepadMappings.NVIDIA_SHIELD_DEVICE_NAME_PREFIX);
 | 
| -
 | 
| -        assertShieldGamepadMappings();
 | 
| -    }
 | 
| -
 | 
| -    @Test
 | 
| -    @Feature({"Gamepad"})
 | 
| -    public void testXBox360GamepadMappings() throws Exception {
 | 
| -        GamepadMappings.mapToStandardGamepad(mMappedAxes, mMappedButtons, mRawAxes, mRawButtons,
 | 
| -                GamepadMappings.MICROSOFT_XBOX_PAD_DEVICE_NAME);
 | 
| -
 | 
| -        assertShieldGamepadMappings();
 | 
| -    }
 | 
| -
 | 
| -    @Test
 | 
| -    @Feature({"Gamepad"})
 | 
| -    public void testPS3SixAxisGamepadMappings() throws Exception {
 | 
| -        GamepadMappings.mapToStandardGamepad(mMappedAxes, mMappedButtons, mRawAxes, mRawButtons,
 | 
| -                GamepadMappings.PS3_SIXAXIS_DEVICE_NAME);
 | 
| -
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.PRIMARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_X], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.SECONDARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_Y], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.TERTIARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_A], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.QUATERNARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_B], ERROR_TOLERANCE);
 | 
| -
 | 
| -        assertMappedCommonTriggerButtons();
 | 
| -        assertMappedCommonThumbstickButtons();
 | 
| -        assertMappedCommonDpadButtons();
 | 
| -        assertMappedCommonStartSelectMetaButtons();
 | 
| -        assertMappedTriggerAxexToShoulderButtons();
 | 
| -        assertMappedXYAxes();
 | 
| -        assertMappedZAndRZAxesToRightStick();
 | 
| -
 | 
| -        assertMapping();
 | 
| -    }
 | 
| -
 | 
| -    @Test
 | 
| -    @Feature({"Gamepad"})
 | 
| -    public void testSamsungEIGP20GamepadMappings() throws Exception {
 | 
| -        GamepadMappings.mapToStandardGamepad(mMappedAxes, mMappedButtons, mRawAxes, mRawButtons,
 | 
| -                GamepadMappings.SAMSUNG_EI_GP20_DEVICE_NAME);
 | 
| -
 | 
| -        assertMappedCommonXYABButtons();
 | 
| -        assertMappedCommonTriggerButtons();
 | 
| -        assertMappedCommonThumbstickButtons();
 | 
| -        assertMappedCommonStartSelectMetaButtons();
 | 
| -        assertMappedHatAxisToDpadButtons();
 | 
| -        assertMappedXYAxes();
 | 
| -        assertMappedRXAndRYAxesToRightStick();
 | 
| -
 | 
| -        expectNoShoulderButtons();
 | 
| -        assertMapping();
 | 
| -    }
 | 
| -
 | 
| -    @Test
 | 
| -    @Feature({"Gamepad"})
 | 
| -    public void testAmazonFireGamepadMappings() throws Exception {
 | 
| -        GamepadMappings.mapToStandardGamepad(mMappedAxes, mMappedButtons, mRawAxes, mRawButtons,
 | 
| -                GamepadMappings.AMAZON_FIRE_DEVICE_NAME);
 | 
| -
 | 
| -        assertMappedCommonXYABButtons();
 | 
| -        assertMappedPedalAxesToBottomShoulder();
 | 
| -        assertMappedCommonThumbstickButtons();
 | 
| -        assertMappedCommonStartSelectMetaButtons();
 | 
| -        assertMappedTriggerButtonsToTopShoulder();
 | 
| -        assertMappedHatAxisToDpadButtons();
 | 
| -        assertMappedXYAxes();
 | 
| -        assertMappedZAndRZAxesToRightStick();
 | 
| -
 | 
| -        assertMapping();
 | 
| -    }
 | 
| -
 | 
| -    @Test
 | 
| -    @Feature({"Gamepad"})
 | 
| -    public void testUnknownGamepadMappings() throws Exception {
 | 
| -        GamepadMappings.mapToStandardGamepad(
 | 
| -                mMappedAxes, mMappedButtons, mRawAxes, mRawButtons, "");
 | 
| -
 | 
| -        assertMappedCommonXYABButtons();
 | 
| -        assertMappedCommonTriggerButtons();
 | 
| -        assertMappedCommonThumbstickButtons();
 | 
| -        assertMappedCommonStartSelectMetaButtons();
 | 
| -        assertMappedTriggerAxexToShoulderButtons();
 | 
| -        assertMappedCommonDpadButtons();
 | 
| -        assertMappedXYAxes();
 | 
| -        assertMappedRXAndRYAxesToRightStick();
 | 
| -
 | 
| -        assertMapping();
 | 
| -    }
 | 
| -
 | 
| -    /**
 | 
| -     * Asserts that the current gamepad mapping being tested matches the shield mappings.
 | 
| -     */
 | 
| -    public void assertShieldGamepadMappings() {
 | 
| -        assertMappedCommonXYABButtons();
 | 
| -        assertMappedTriggerButtonsToTopShoulder();
 | 
| -        assertMappedCommonThumbstickButtons();
 | 
| -        assertMappedCommonStartSelectMetaButtons();
 | 
| -        assertMappedTriggerAxesToBottomShoulder();
 | 
| -        assertMappedHatAxisToDpadButtons();
 | 
| -        assertMappedXYAxes();
 | 
| -        assertMappedZAndRZAxesToRightStick();
 | 
| -
 | 
| -        assertMapping();
 | 
| -    }
 | 
| -
 | 
| -    public void expectNoShoulderButtons() {
 | 
| -        mUnmappedButtons.set(CanonicalButtonIndex.LEFT_SHOULDER);
 | 
| -        mUnmappedButtons.set(CanonicalButtonIndex.RIGHT_SHOULDER);
 | 
| -    }
 | 
| -
 | 
| -    public void assertMapping() {
 | 
| -        for (int i = 0; i < mMappedAxes.length; i++) {
 | 
| -            if (mUnmappedAxes.get(i)) {
 | 
| -                Assert.assertTrue(
 | 
| -                        "An unexpected axis was mapped at index " + i, Float.isNaN(mMappedAxes[i]));
 | 
| -            } else {
 | 
| -                Assert.assertFalse(
 | 
| -                        "An axis was not mapped at index " + i, Float.isNaN(mMappedAxes[i]));
 | 
| -            }
 | 
| -        }
 | 
| -        for (int i = 0; i < mMappedButtons.length; i++) {
 | 
| -            if (mUnmappedButtons.get(i)) {
 | 
| -                Assert.assertTrue("An unexpected button was mapped at index " + i,
 | 
| -                        Float.isNaN(mMappedButtons[i]));
 | 
| -            } else {
 | 
| -                Assert.assertFalse(
 | 
| -                        "A button was not mapped at index " + i, Float.isNaN(mMappedButtons[i]));
 | 
| -            }
 | 
| -        }
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedCommonTriggerButtons() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.LEFT_TRIGGER],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_L1], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_R1], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedCommonDpadButtons() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_DOWN],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_DPAD_DOWN], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_UP],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_DPAD_UP], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_LEFT],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_DPAD_LEFT], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_RIGHT],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_DPAD_RIGHT], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedTriggerAxexToShoulderButtons() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.LEFT_SHOULDER],
 | 
| -                mRawAxes[MotionEvent.AXIS_LTRIGGER], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.RIGHT_SHOULDER],
 | 
| -                mRawAxes[MotionEvent.AXIS_RTRIGGER], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedTriggerButtonsToTopShoulder() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.LEFT_SHOULDER],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_L1], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.RIGHT_SHOULDER],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_R1], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedCommonXYABButtons() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.PRIMARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_A], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.SECONDARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_B], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.TERTIARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_X], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.QUATERNARY],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_Y], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedCommonThumbstickButtons() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.LEFT_THUMBSTICK],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_THUMBL], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.RIGHT_THUMBSTICK],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_THUMBR], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedCommonStartSelectMetaButtons() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.START],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_START], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.BACK_SELECT],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_SELECT], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.META],
 | 
| -                mRawButtons[KeyEvent.KEYCODE_BUTTON_MODE], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedPedalAxesToBottomShoulder() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.LEFT_TRIGGER],
 | 
| -                mRawAxes[MotionEvent.AXIS_BRAKE], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER],
 | 
| -                mRawAxes[MotionEvent.AXIS_GAS], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedTriggerAxesToBottomShoulder() {
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.LEFT_TRIGGER],
 | 
| -                mRawAxes[MotionEvent.AXIS_LTRIGGER], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.RIGHT_TRIGGER],
 | 
| -                mRawAxes[MotionEvent.AXIS_RTRIGGER], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedHatAxisToDpadButtons() {
 | 
| -        float hatX = mRawAxes[MotionEvent.AXIS_HAT_X];
 | 
| -        float hatY = mRawAxes[MotionEvent.AXIS_HAT_Y];
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_LEFT],
 | 
| -                GamepadMappings.negativeAxisValueAsButton(hatX), ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_RIGHT],
 | 
| -                GamepadMappings.positiveAxisValueAsButton(hatX), ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_UP],
 | 
| -                GamepadMappings.negativeAxisValueAsButton(hatY), ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedButtons[CanonicalButtonIndex.DPAD_DOWN],
 | 
| -                GamepadMappings.positiveAxisValueAsButton(hatY), ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedXYAxes() {
 | 
| -        Assert.assertEquals(mMappedAxes[CanonicalAxisIndex.LEFT_STICK_X],
 | 
| -                mRawAxes[MotionEvent.AXIS_X], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedAxes[CanonicalAxisIndex.LEFT_STICK_Y],
 | 
| -                mRawAxes[MotionEvent.AXIS_Y], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedRXAndRYAxesToRightStick() {
 | 
| -        Assert.assertEquals(mMappedAxes[CanonicalAxisIndex.RIGHT_STICK_X],
 | 
| -                mRawAxes[MotionEvent.AXIS_RX], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedAxes[CanonicalAxisIndex.RIGHT_STICK_Y],
 | 
| -                mRawAxes[MotionEvent.AXIS_RY], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -
 | 
| -    private void assertMappedZAndRZAxesToRightStick() {
 | 
| -        Assert.assertEquals(mMappedAxes[CanonicalAxisIndex.RIGHT_STICK_X],
 | 
| -                mRawAxes[MotionEvent.AXIS_Z], ERROR_TOLERANCE);
 | 
| -        Assert.assertEquals(mMappedAxes[CanonicalAxisIndex.RIGHT_STICK_Y],
 | 
| -                mRawAxes[MotionEvent.AXIS_RZ], ERROR_TOLERANCE);
 | 
| -    }
 | 
| -}
 | 
| 
 |