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

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

Issue 661413003: Android: add support for Device Orientation on devices where ROTATION_VECTOR is not availabl… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add test when rotation vector is not available Created 6 years, 2 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
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
index 9abfc5b984831f2144454542d400ef45eafdd2bf..c309c546ba38e8708347632625b8a79fc77a2481 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/DeviceSensorsTest.java
@@ -57,17 +57,37 @@ public class DeviceSensorsTest extends AndroidTestCase {
assertTrue(start);
assertTrue("should contain all orientation sensors",
mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS));
+ DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS));
assertFalse(mDeviceSensors.mDeviceMotionIsActive);
assertFalse(mDeviceSensors.mDeviceLightIsActive);
assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
+ assertFalse(mDeviceSensors.isUsingBackupSensorsForOrientation());
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_SENSORS.size(),
+ assertEquals(DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS.size(),
mMockSensorManager.mNumRegistered);
assertEquals(0, mMockSensorManager.mNumUnRegistered);
}
@SmallTest
+ public void testRegisterSensorsDeviceOrientationRotationVectorNotAvailable() {
+ MockSensorManager mockSensorManager = new MockSensorManager();
+ mockSensorManager.setRotationVectorAvailable(false);
+ mDeviceSensors.setSensorManagerProxy(mockSensorManager);
+ boolean startOrientation = mDeviceSensors.start(0, DeviceSensors.DEVICE_ORIENTATION, 100);
+
+ assertTrue(startOrientation);
+ assertTrue(mDeviceSensors.mDeviceOrientationIsActive);
+ assertTrue("should contain all backup orientation sensors",
+ mDeviceSensors.mActiveSensors.containsAll(
+ DeviceSensors.DEVICE_ORIENTATION_BACKUP_SENSORS));
+ assertTrue(mDeviceSensors.isUsingBackupSensorsForOrientation());
+
+ assertEquals(DeviceSensors.DEVICE_ORIENTATION_BACKUP_SENSORS.size(),
+ mockSensorManager.mNumRegistered);
+ assertEquals(0, mockSensorManager.mNumUnRegistered);
+ }
+
+ @SmallTest
public void testRegisterSensorsDeviceMotionAndOrientation() {
boolean startOrientation = mDeviceSensors.start(0, DeviceSensors.DEVICE_ORIENTATION, 100);
boolean startMotion = mDeviceSensors.start(0, DeviceSensors.DEVICE_MOTION, 100);
@@ -79,9 +99,9 @@ public class DeviceSensorsTest extends AndroidTestCase {
DeviceSensors.DEVICE_MOTION_SENSORS));
assertTrue("should contain all orientation sensors",
mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS));
+ DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS));
- Set<Integer> union = new HashSet<Integer>(DeviceSensors.DEVICE_ORIENTATION_SENSORS);
+ Set<Integer> union = new HashSet<Integer>(DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS);
union.addAll(DeviceSensors.DEVICE_MOTION_SENSORS);
assertEquals(union.size(), mDeviceSensors.mActiveSensors.size());
@@ -133,7 +153,7 @@ public class DeviceSensorsTest extends AndroidTestCase {
assertFalse(mDeviceSensors.mDeviceMotionIsActive);
assertFalse(mDeviceSensors.mDeviceOrientationIsActive);
assertFalse(mDeviceSensors.mDeviceLightIsActive);
- assertEquals(DeviceSensors.DEVICE_ORIENTATION_SENSORS.size(),
+ assertEquals(DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS.size(),
mMockSensorManager.mNumUnRegistered);
}
@@ -145,17 +165,17 @@ public class DeviceSensorsTest extends AndroidTestCase {
assertTrue("should contain all orientation sensors",
mDeviceSensors.mActiveSensors.containsAll(
- DeviceSensors.DEVICE_ORIENTATION_SENSORS));
+ DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS));
Set<Integer> diff = new HashSet<Integer>(DeviceSensors.DEVICE_MOTION_SENSORS);
- diff.removeAll(DeviceSensors.DEVICE_ORIENTATION_SENSORS);
+ diff.removeAll(DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS);
assertEquals(diff.size(), mMockSensorManager.mNumUnRegistered);
mDeviceSensors.stop(DeviceSensors.DEVICE_ORIENTATION);
assertTrue("should contain no sensors", mDeviceSensors.mActiveSensors.isEmpty());
- assertEquals(diff.size() + DeviceSensors.DEVICE_ORIENTATION_SENSORS.size(),
+ assertEquals(diff.size() + DeviceSensors.DEVICE_ORIENTATION_DEFAULT_SENSORS.size(),
mMockSensorManager.mNumUnRegistered);
assertEquals(0, mDeviceSensors.getNumberActiveDeviceMotionSensors());
}
@@ -250,7 +270,6 @@ public class DeviceSensorsTest extends AndroidTestCase {
mDeviceSensors.verifyValues(1, 2, 3);
}
-
// Tests for correct Device Orientation angles.
@SmallTest
@@ -426,13 +445,21 @@ public class DeviceSensorsTest extends AndroidTestCase {
private int mNumRegistered = 0;
private int mNumUnRegistered = 0;
+ private boolean mRotationVectorAvailable = true;
private MockSensorManager() {
}
+ public void setRotationVectorAvailable(boolean available) {
+ mRotationVectorAvailable = available;
+ }
+
@Override
public boolean registerListener(SensorEventListener listener, int sensorType, int rate,
Handler handler) {
+ if (!mRotationVectorAvailable && sensorType == Sensor.TYPE_ROTATION_VECTOR) {
+ return false;
+ }
mNumRegistered++;
return true;
}
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/DeviceSensors.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698