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

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java

Issue 2646093002: Move //content/browser/device_sensor/ into device/sensors (Closed)
Patch Set: gn format & code rebase Created 3 years, 11 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: content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java b/content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java
deleted file mode 100644
index 4bf9c79498a976e1582ec2a35aadb353a80caa1a..0000000000000000000000000000000000000000
--- a/content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java
+++ /dev/null
@@ -1,652 +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.content.browser;
-
-import android.content.Context;
-import android.hardware.Sensor;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
-import android.os.Handler;
-import android.support.test.filters.SmallTest;
-import android.test.AndroidTestCase;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Test suite for DeviceSensors.
- */
-public class DeviceSensorsTest extends AndroidTestCase {
-
- private DeviceSensorsForTests mDeviceSensors;
- private MockSensorManager mMockSensorManager;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- mMockSensorManager = new MockSensorManager();
- mDeviceSensors = DeviceSensorsForTests.getInstance(getContext());
- mDeviceSensors.setSensorManagerProxy(mMockSensorManager);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceMotion() {
- boolean start = mDeviceSensors.start(0, ConsumerType.MOTION, 100);
-
- assertTrue(start);
- assertTrue("should contain all motion sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_MOTION_SENSORS));
- assertTrue(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
-
- assertEquals(DeviceSensors.DEVICE_MOTION_SENSORS.size(),
- mMockSensorManager.mNumRegistered);
- assertEquals(0, mMockSensorManager.mNumUnRegistered);
- assertEquals(DeviceSensors.DEVICE_MOTION_SENSORS.size(),
- mDeviceSensors.getNumberActiveDeviceMotionSensors());
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceOrientation() {
- boolean start = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
-
- assertTrue(start);
- assertTrue("should contain all orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS_A));
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertEquals(OrientationSensorType.GAME_ROTATION_VECTOR,
- mDeviceSensors.getOrientationSensorTypeUsed());
-
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_SENSORS_A.size(),
- mMockSensorManager.mNumRegistered);
- assertEquals(0, mMockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceOrientationGameRotationVectorNotAvailable() {
- MockSensorManager mockSensorManager = new MockSensorManager();
- mockSensorManager.setGameRotationVectorAvailable(false);
- mDeviceSensors.setSensorManagerProxy(mockSensorManager);
- boolean startOrientation = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
-
- assertTrue(startOrientation);
- assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertTrue("should contain option B orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS_B));
- assertEquals(OrientationSensorType.ROTATION_VECTOR,
- mDeviceSensors.getOrientationSensorTypeUsed());
-
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_SENSORS_B.size(),
- mockSensorManager.mNumRegistered);
- assertEquals(0, mockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceOrientationBothRotationVectorsNotAvailable() {
- MockSensorManager mockSensorManager = new MockSensorManager();
- mockSensorManager.setGameRotationVectorAvailable(false);
- mockSensorManager.setRotationVectorAvailable(false);
- mDeviceSensors.setSensorManagerProxy(mockSensorManager);
- boolean startOrientation = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
-
- assertTrue(startOrientation);
- assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
- assertTrue(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertTrue("should contain option C orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS_C));
- assertEquals(OrientationSensorType.ACCELEROMETER_MAGNETIC,
- mDeviceSensors.getOrientationSensorTypeUsed());
-
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_SENSORS_C.size(),
- mockSensorManager.mNumRegistered);
- assertEquals(0, mockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceOrientationNoSensorsAvailable() {
- MockSensorManager mockSensorManager = new MockSensorManager();
- mockSensorManager.setGameRotationVectorAvailable(false);
- mockSensorManager.setRotationVectorAvailable(false);
- mockSensorManager.setAccelerometerAvailable(false);
- mDeviceSensors.setSensorManagerProxy(mockSensorManager);
- boolean startOrientation = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
-
- assertFalse(startOrientation);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertTrue(mDeviceSensors.mActiveSensors.isEmpty());
- assertEquals(OrientationSensorType.NOT_AVAILABLE,
- mDeviceSensors.getOrientationSensorTypeUsed());
-
- assertEquals(0, mockSensorManager.mNumRegistered);
- assertEquals(0, mockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceMotionAndOrientation() {
- boolean startOrientation = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
- boolean startMotion = mDeviceSensors.start(0, ConsumerType.MOTION, 100);
-
- assertTrue(startOrientation);
- assertTrue(startMotion);
- assertTrue("should contain all motion sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_MOTION_SENSORS));
- assertTrue("should contain all orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS_A));
-
- Set<Integer> union = new HashSet<Integer>(DeviceSensors.DEVICE_ORIENTATION_SENSORS_A);
- union.addAll(DeviceSensors.DEVICE_MOTION_SENSORS);
-
- assertEquals(union.size(), mDeviceSensors.mActiveSensors.size());
- assertTrue(mDeviceSensors.mDeviceMotionIsActive);
- assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertEquals(union.size(), mMockSensorManager.mNumRegistered);
- assertEquals(0, mMockSensorManager.mNumUnRegistered);
- assertEquals(DeviceSensors.DEVICE_MOTION_SENSORS.size(),
- mDeviceSensors.getNumberActiveDeviceMotionSensors());
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceOrientationAbsolute() {
- boolean start = mDeviceSensors.start(0, ConsumerType.ORIENTATION_ABSOLUTE, 100);
-
- assertTrue(start);
- assertTrue("should contain all absolute orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_ABSOLUTE_SENSORS));
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertTrue(mDeviceSensors.mDeviceOrientationAbsoluteIsActive);
-
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_ABSOLUTE_SENSORS.size(),
- mMockSensorManager.mNumRegistered);
- assertEquals(0, mMockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testUnregisterSensorsDeviceOrientationAbsolute() {
- mDeviceSensors.start(0, ConsumerType.ORIENTATION_ABSOLUTE, 100);
- mDeviceSensors.stop(ConsumerType.ORIENTATION_ABSOLUTE);
-
- assertTrue("should contain no sensors",
- mDeviceSensors.mActiveSensors.isEmpty());
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_ABSOLUTE_SENSORS.size(),
- mMockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceOrientationAndOrientationAbsolute() {
- boolean startOrientation = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
- boolean startOrientationAbsolute = mDeviceSensors.start(0,
- ConsumerType.ORIENTATION_ABSOLUTE, 100);
-
- assertTrue(startOrientation);
- assertTrue(startOrientationAbsolute);
- assertTrue("should contain all orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS_A));
- assertTrue("should contain all absolute orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_ABSOLUTE_SENSORS));
-
- Set<Integer> union = new HashSet<Integer>(DeviceSensors.DEVICE_ORIENTATION_SENSORS_A);
- union.addAll(DeviceSensors.DEVICE_ORIENTATION_ABSOLUTE_SENSORS);
-
- assertEquals(union.size(), mDeviceSensors.mActiveSensors.size());
- assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
- assertTrue(mDeviceSensors.mDeviceOrientationAbsoluteIsActive);
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertEquals(union.size(), mMockSensorManager.mNumRegistered);
- assertEquals(0, mMockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testRegisterSensorsDeviceLight() {
- boolean start = mDeviceSensors.start(0, ConsumerType.LIGHT, 100);
-
- assertTrue(start);
- assertTrue(mDeviceSensors.mDeviceLightIsActive);
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
-
- assertEquals(DeviceSensors.DEVICE_LIGHT_SENSORS.size(),
- mMockSensorManager.mNumRegistered);
- assertEquals(0, mMockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testUnregisterSensorsDeviceMotion() {
- mDeviceSensors.start(0, ConsumerType.MOTION, 100);
- mDeviceSensors.stop(ConsumerType.MOTION);
-
- assertTrue("should contain no sensors",
- mDeviceSensors.mActiveSensors.isEmpty());
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertEquals(DeviceSensors.DEVICE_MOTION_SENSORS.size(),
- mMockSensorManager.mNumUnRegistered);
- assertEquals(0, mDeviceSensors.getNumberActiveDeviceMotionSensors());
- }
-
- @SmallTest
- public void testUnregisterSensorsDeviceOrientation() {
- mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
- mDeviceSensors.stop(ConsumerType.ORIENTATION);
-
- assertTrue("should contain no sensors",
- mDeviceSensors.mActiveSensors.isEmpty());
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActiveWithBackupSensors);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_SENSORS_A.size(),
- mMockSensorManager.mNumUnRegistered);
- }
-
- @SmallTest
- public void testUnregisterSensorsDeviceMotionAndOrientation() {
- mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
- mDeviceSensors.start(0, ConsumerType.MOTION, 100);
- mDeviceSensors.stop(ConsumerType.MOTION);
-
- assertTrue("should contain all orientation sensors",
- mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS_A));
-
- Set<Integer> diff = new HashSet<Integer>(DeviceSensors.DEVICE_MOTION_SENSORS);
- diff.removeAll(DeviceSensors.DEVICE_ORIENTATION_SENSORS_A);
-
- assertEquals(diff.size(), mMockSensorManager.mNumUnRegistered);
-
- mDeviceSensors.stop(ConsumerType.ORIENTATION);
-
- assertTrue("should contain no sensors", mDeviceSensors.mActiveSensors.isEmpty());
- assertEquals(diff.size() + DeviceSensors.DEVICE_ORIENTATION_SENSORS_A.size(),
- mMockSensorManager.mNumUnRegistered);
- assertEquals(0, mDeviceSensors.getNumberActiveDeviceMotionSensors());
- }
-
- @SmallTest
- public void testUnregisterSensorsLight() {
- mDeviceSensors.start(0, ConsumerType.LIGHT, 100);
- mDeviceSensors.stop(ConsumerType.LIGHT);
-
- assertTrue("should contain no sensors", mDeviceSensors.mActiveSensors.isEmpty());
- assertFalse(mDeviceSensors.mDeviceMotionIsActive);
- assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
- assertFalse(mDeviceSensors.mDeviceLightIsActive);
- }
-
- @SmallTest
- public void testSensorChangedGotLight() {
- boolean startLight = mDeviceSensors.start(0, ConsumerType.LIGHT, 100);
-
- assertTrue(startLight);
- assertTrue(mDeviceSensors.mDeviceLightIsActive);
-
- float[] values = {200};
- mDeviceSensors.sensorChanged(Sensor.TYPE_LIGHT, values);
- mDeviceSensors.verifyCalls("gotLight");
- mDeviceSensors.verifyValue(200);
- }
-
- /**
- * Helper method to trigger an orientation change using the given sensorType.
- */
- private void changeOrientation(int sensorType, boolean absolute, String expectedChange) {
- boolean startOrientation = mDeviceSensors.start(0,
- absolute ? ConsumerType.ORIENTATION_ABSOLUTE : ConsumerType.ORIENTATION, 100);
-
- assertTrue(startOrientation);
- assertTrue(absolute ? mDeviceSensors.mDeviceOrientationAbsoluteIsActive
- : mDeviceSensors.mDeviceOrientationIsActive);
-
- float alpha = (float) Math.PI / 4;
- float[] values = {0, 0, (float) Math.sin(alpha / 2), (float) Math.cos(alpha / 2), -1};
- mDeviceSensors.sensorChanged(sensorType, values);
-
- mDeviceSensors.verifyCalls(expectedChange);
- if (!expectedChange.isEmpty()) {
- mDeviceSensors.verifyValuesEpsilon(Math.toDegrees(alpha), 0, 0);
- }
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationViaRotationVector() {
- changeOrientation(Sensor.TYPE_ROTATION_VECTOR, false /* absolute */, "");
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationViaGameRotationVector() {
- changeOrientation(Sensor.TYPE_GAME_ROTATION_VECTOR, false /* absolute */, "gotOrientation");
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationAbsoluteViaRotationVector() {
- changeOrientation(Sensor.TYPE_ROTATION_VECTOR, true /* absolute */,
- "gotOrientationAbsolute");
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationAbsoluteViaGameRotationVector() {
- changeOrientation(Sensor.TYPE_GAME_ROTATION_VECTOR, true /* absolute */, "");
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationAndOrientationAbsolute() {
- changeOrientation(Sensor.TYPE_GAME_ROTATION_VECTOR, false /* absolute */, "gotOrientation");
- changeOrientation(Sensor.TYPE_ROTATION_VECTOR, true /* absolute */,
- "gotOrientation" + "gotOrientationAbsolute");
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationViaRotationVectorAndOrientationAbsolute() {
- MockSensorManager mockSensorManager = new MockSensorManager();
- mockSensorManager.setGameRotationVectorAvailable(false);
- mDeviceSensors.setSensorManagerProxy(mockSensorManager);
-
- changeOrientation(Sensor.TYPE_ROTATION_VECTOR, false /* absolute */, "gotOrientation");
- changeOrientation(Sensor.TYPE_ROTATION_VECTOR, true /* absolute */,
- "gotOrientation" + "gotOrientationAbsolute" + "gotOrientation");
- }
-
- @SmallTest
- public void testSensorChangedGotAccelerationIncludingGravity() {
- mDeviceSensors.start(0, ConsumerType.MOTION, 100);
-
- float[] values = {1, 2, 3};
- mDeviceSensors.sensorChanged(Sensor.TYPE_ACCELEROMETER, values);
- mDeviceSensors.verifyCalls("gotAccelerationIncludingGravity");
- mDeviceSensors.verifyValues(1, 2, 3);
- }
-
- @SmallTest
- public void testSensorChangedGotAcceleration() {
- mDeviceSensors.start(0, ConsumerType.MOTION, 100);
-
- float[] values = {1, 2, 3};
- mDeviceSensors.sensorChanged(Sensor.TYPE_LINEAR_ACCELERATION, values);
- mDeviceSensors.verifyCalls("gotAcceleration");
- mDeviceSensors.verifyValues(1, 2, 3);
- }
-
- @SmallTest
- public void testSensorChangedGotRotationRate() {
- mDeviceSensors.start(0, ConsumerType.MOTION, 100);
-
- float[] values = {1, 2, 3};
- mDeviceSensors.sensorChanged(Sensor.TYPE_GYROSCOPE, values);
- mDeviceSensors.verifyCalls("gotRotationRate");
- mDeviceSensors.verifyValues(1, 2, 3);
- }
-
- @SmallTest
- public void testSensorChangedGotOrientationAndAcceleration() {
- boolean startOrientation = mDeviceSensors.start(0, ConsumerType.ORIENTATION, 100);
- boolean startMotion = mDeviceSensors.start(0, ConsumerType.MOTION, 100);
-
- assertTrue(startOrientation);
- assertTrue(startMotion);
- assertTrue(mDeviceSensors.mDeviceMotionIsActive);
- assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
-
- float alpha = (float) Math.PI / 4;
- float[] values = {0, 0, (float) Math.sin(alpha / 2), (float) Math.cos(alpha / 2), -1};
- mDeviceSensors.sensorChanged(Sensor.TYPE_GAME_ROTATION_VECTOR, values);
- mDeviceSensors.verifyCalls("gotOrientation");
- mDeviceSensors.verifyValuesEpsilon(Math.toDegrees(alpha), 0, 0);
-
- float[] values2 = {1, 2, 3};
- mDeviceSensors.sensorChanged(Sensor.TYPE_ACCELEROMETER, values2);
- mDeviceSensors.verifyCalls("gotOrientation" + "gotAccelerationIncludingGravity");
- mDeviceSensors.verifyValues(1, 2, 3);
- }
-
- // Tests for correct Device Orientation angles.
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrixIdentity() {
- float[] gravity = {0, 0, 1};
- float[] magnetic = {0, 1, 0};
- double[] expectedAngles = {0, 0, 0};
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrix45DegreesX() {
- float[] gravity = {0, (float) Math.sin(Math.PI / 4), (float) Math.cos(Math.PI / 4)};
- float[] magnetic = {0, 1, 0};
- double[] expectedAngles = {0, Math.PI / 4, 0};
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrix45DegreesY() {
- float[] gravity = {-(float) Math.sin(Math.PI / 4), 0, (float) Math.cos(Math.PI / 4)};
- float[] magnetic = {0, 1, 0};
- double[] expectedAngles = {0, 0, Math.PI / 4};
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrix45DegreesZ() {
- float[] gravity = {0, 0, 1};
- float[] magnetic = {(float) Math.sin(Math.PI / 4), (float) Math.cos(Math.PI / 4), 0};
- double[] expectedAngles = {Math.PI / 4, 0, 0};
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrixGimbalLock() {
- float[] gravity = {0, 1, 0};
- float[] magnetic = {(float) Math.sin(Math.PI / 4), 0, -(float) Math.cos(Math.PI / 4)};
- double[] expectedAngles = {Math.PI / 4, Math.PI / 2, 0}; // favor yaw instead of roll
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrixPitchGreaterThan90() {
- final double largePitchAngle = Math.PI / 2 + Math.PI / 4;
- float[] gravity = {0, (float) Math.cos(largePitchAngle - Math.PI / 2),
- -(float) Math.sin(largePitchAngle - Math.PI / 2)};
- float[] magnetic = {0, 0, -1};
- double[] expectedAngles = {0, largePitchAngle, 0};
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- @SmallTest
- public void testOrientationAnglesFromRotationMatrixRoll90() {
- float[] gravity = {-1, 0, 0};
- float[] magnetic = {0, 1, 0};
- double[] expectedAngles = {Math.PI, -Math.PI, -Math.PI / 2};
-
- verifyOrientationAngles(gravity, magnetic, expectedAngles);
- }
-
- /**
- * Helper method for verifying angles obtained from rotation matrix.
- *
- * @param gravity
- * gravity vector in the device frame
- * @param magnetic
- * magnetic field vector in the device frame
- * @param expectedAngles
- * expectedAngles[0] rotation angle in radians around the Z-axis
- * expectedAngles[1] rotation angle in radians around the X-axis
- * expectedAngles[2] rotation angle in radians around the Y-axis
- */
- private void verifyOrientationAngles(float[] gravity, float[] magnetic,
- double[] expectedAngles) {
- float[] r = new float[9];
- double[] values = new double[3];
- SensorManager.getRotationMatrix(r, null, gravity, magnetic);
- DeviceSensors.computeDeviceOrientationFromRotationMatrix(r, values);
-
- assertEquals(expectedAngles.length, values.length);
- final double epsilon = 0.001;
- for (int i = 0; i < expectedAngles.length; ++i) {
- assertEquals(expectedAngles[i], values[i], epsilon);
- }
-
- }
-
- // -- End Tests for correct Device Orientation angles.
-
- private static class DeviceSensorsForTests extends DeviceSensors {
-
- private double mValue1 = 0;
- private double mValue2 = 0;
- private double mValue3 = 0;
- private String mCalls = "";
-
- private DeviceSensorsForTests(Context context) {
- super(context);
- }
-
- static DeviceSensorsForTests getInstance(Context context) {
- return new DeviceSensorsForTests(context);
- }
-
- private void verifyValue(double v1) {
- assertEquals(v1, mValue1);
- }
-
- private void verifyValues(double v1, double v2, double v3) {
- assertEquals(v1, mValue1);
- assertEquals(v2, mValue2);
- assertEquals(v3, mValue3);
- }
-
- private void verifyValuesEpsilon(double v1, double v2, double v3) {
- assertEquals(v1, mValue1, 0.1);
- assertEquals(v2, mValue2, 0.1);
- assertEquals(v3, mValue3, 0.1);
- }
-
- private void verifyCalls(String names) {
- assertEquals(mCalls, names);
- }
-
- @Override
- protected void gotLight(double light) {
- mValue1 = light;
- mCalls = mCalls.concat("gotLight");
- }
-
- @Override
- protected void gotOrientation(double alpha, double beta, double gamma) {
- mValue1 = alpha;
- mValue2 = beta;
- mValue3 = gamma;
- mCalls = mCalls.concat("gotOrientation");
- }
-
- @Override
- protected void gotOrientationAbsolute(double alpha, double beta, double gamma) {
- mValue1 = alpha;
- mValue2 = beta;
- mValue3 = gamma;
- mCalls = mCalls.concat("gotOrientationAbsolute");
- }
-
- @Override
- protected void gotAcceleration(double x, double y, double z) {
- mValue1 = x;
- mValue2 = y;
- mValue3 = z;
- mCalls = mCalls.concat("gotAcceleration");
- }
-
- @Override
- protected void gotAccelerationIncludingGravity(double x, double y, double z) {
- mValue1 = x;
- mValue2 = y;
- mValue3 = z;
- mCalls = mCalls.concat("gotAccelerationIncludingGravity");
- }
-
- @Override
- protected void gotRotationRate(double alpha, double beta, double gamma) {
- mValue1 = alpha;
- mValue2 = beta;
- mValue3 = gamma;
- mCalls = mCalls.concat("gotRotationRate");
- }
- }
-
- private static class MockSensorManager implements DeviceSensors.SensorManagerProxy {
-
- private int mNumRegistered = 0;
- private int mNumUnRegistered = 0;
- private boolean mRotationVectorAvailable = true;
- private boolean mGameRotationVectorAvailable = true;
- private boolean mAccelerometerAvailable = true;
-
- private MockSensorManager() {
- }
-
- public void setGameRotationVectorAvailable(boolean available) {
- mGameRotationVectorAvailable = available;
- }
-
- public void setRotationVectorAvailable(boolean available) {
- mRotationVectorAvailable = available;
- }
-
- public void setAccelerometerAvailable(boolean available) {
- mAccelerometerAvailable = available;
- }
-
- private boolean isSensorTypeAvailable(int sensorType) {
- switch (sensorType) {
- case Sensor.TYPE_ROTATION_VECTOR : return mRotationVectorAvailable;
- case Sensor.TYPE_GAME_ROTATION_VECTOR : return mGameRotationVectorAvailable;
- case Sensor.TYPE_ACCELEROMETER : return mAccelerometerAvailable;
- }
- return true;
- }
-
- @Override
- public boolean registerListener(SensorEventListener listener, int sensorType, int rate,
- Handler handler) {
- if (isSensorTypeAvailable(sensorType)) {
- mNumRegistered++;
- return true;
- }
- return false;
- }
-
- @Override
- public void unregisterListener(SensorEventListener listener, int sensorType) {
- mNumUnRegistered++;
- }
- }
-}
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java ('k') | content/renderer/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698