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

Unified Diff: content/browser/device_sensors/sensor_manager_chromeos_unittest.cc

Issue 934843002: Implement DeviceMotionEvent API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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/browser/device_sensors/sensor_manager_chromeos_unittest.cc
diff --git a/content/browser/device_sensors/sensor_manager_chromeos_unittest.cc b/content/browser/device_sensors/sensor_manager_chromeos_unittest.cc
index 3e718392951a6a224b780b07867e809086d0f273..429db8fb4406e278609da04a5542d2596f0aab81 100644
--- a/content/browser/device_sensors/sensor_manager_chromeos_unittest.cc
+++ b/content/browser/device_sensors/sensor_manager_chromeos_unittest.cc
@@ -6,6 +6,7 @@
#include "base/memory/scoped_ptr.h"
#include "chromeos/accelerometer/accelerometer_types.h"
+#include "content/common/device_sensors/device_motion_hardware_buffer.h"
#include "content/common/device_sensors/device_orientation_hardware_buffer.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -36,17 +37,21 @@ namespace content {
class SensorManagerChromeOSTest : public testing::Test {
public:
SensorManagerChromeOSTest() {
+ motion_buffer_.reset(new DeviceMotionHardwareBuffer);
orientation_buffer_.reset(new DeviceOrientationHardwareBuffer);
}
~SensorManagerChromeOSTest() override {}
void OnAccelerationIncludingGravity(double x, double y, double z) {
- chromeos::AccelerometerUpdate update;
- update.Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, x, y, z);
+ scoped_refptr<chromeos::AccelerometerUpdate> update(
+ new chromeos::AccelerometerUpdate());
+ update->Set(chromeos::ACCELEROMETER_SOURCE_SCREEN, x, y, z);
sensor_manager_->OnAccelerometerUpdated(update);
}
+ DeviceMotionHardwareBuffer* motion_buffer() { return motion_buffer_.get(); }
+
DeviceOrientationHardwareBuffer* orientation_buffer() {
return orientation_buffer_.get();
}
@@ -57,23 +62,55 @@ class SensorManagerChromeOSTest : public testing::Test {
void SetUp() override {
testing::Test::SetUp();
sensor_manager_.reset(new TestSensorManagerChromeOS);
+ sensor_manager_->StartFetchingDeviceMotionData(motion_buffer_.get());
sensor_manager_->StartFetchingDeviceOrientationData(
orientation_buffer_.get());
}
void TearDown() override {
+ sensor_manager_->StopFetchingDeviceMotionData();
sensor_manager_->StopFetchingDeviceOrientationData();
testing::Test::TearDown();
}
private:
scoped_ptr<TestSensorManagerChromeOS> sensor_manager_;
-
+ scoped_ptr<DeviceMotionHardwareBuffer> motion_buffer_;
scoped_ptr<DeviceOrientationHardwareBuffer> orientation_buffer_;
DISALLOW_COPY_AND_ASSIGN(SensorManagerChromeOSTest);
};
+// Tests that starting to process motion data will update the associated buffer.
+TEST_F(SensorManagerChromeOSTest, MotionBuffer) {
+ DeviceMotionHardwareBuffer* buffer = motion_buffer();
+ EXPECT_FLOAT_EQ(16.0f, buffer->data.interval);
+ EXPECT_FALSE(buffer->data.hasAccelerationIncludingGravityX);
+ EXPECT_FALSE(buffer->data.hasAccelerationIncludingGravityY);
+ EXPECT_FALSE(buffer->data.hasAccelerationIncludingGravityZ);
+ EXPECT_FALSE(buffer->data.hasAccelerationX);
+ EXPECT_FALSE(buffer->data.hasAccelerationY);
+ EXPECT_FALSE(buffer->data.hasAccelerationZ);
+ EXPECT_FALSE(buffer->data.hasRotationRateAlpha);
+ EXPECT_FALSE(buffer->data.hasRotationRateBeta);
+ EXPECT_FALSE(buffer->data.hasRotationRateGamma);
+
+ OnAccelerationIncludingGravity(0.0f, 0.0f, 1.0f);
+ EXPECT_TRUE(buffer->data.hasAccelerationIncludingGravityX);
+ EXPECT_TRUE(buffer->data.hasAccelerationIncludingGravityY);
+ EXPECT_TRUE(buffer->data.hasAccelerationIncludingGravityZ);
+ EXPECT_FALSE(buffer->data.hasAccelerationX);
+ EXPECT_FALSE(buffer->data.hasAccelerationY);
+ EXPECT_FALSE(buffer->data.hasAccelerationZ);
+ EXPECT_FALSE(buffer->data.hasRotationRateAlpha);
+ EXPECT_FALSE(buffer->data.hasRotationRateBeta);
+ EXPECT_FALSE(buffer->data.hasRotationRateGamma);
+ EXPECT_TRUE(buffer->data.allAvailableSensorsAreActive);
+
+ sensor_manager()->StopFetchingDeviceMotionData();
+ EXPECT_FALSE(buffer->data.allAvailableSensorsAreActive);
+}
+
// Tests that starting to process orientation data will update the associated
// buffer.
TEST_F(SensorManagerChromeOSTest, OrientationBuffer) {
@@ -98,44 +135,76 @@ TEST_F(SensorManagerChromeOSTest, OrientationBuffer) {
// Tests a device resting flat.
TEST_F(SensorManagerChromeOSTest, NeutralOrientation) {
OnAccelerationIncludingGravity(0.0f, 0.0f, -kMeanGravity);
- DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
- EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
- EXPECT_FLOAT_EQ(0.0f, buffer->data.gamma);
+
+ DeviceMotionHardwareBuffer* motion = motion_buffer();
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityX);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityY);
+ EXPECT_FLOAT_EQ(-kMeanGravity, motion->data.accelerationIncludingGravityZ);
+
+ DeviceOrientationHardwareBuffer* orientation = orientation_buffer();
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.beta);
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.gamma);
}
// Tests an upside-down device, such that the W3C boundary [-180,180) causes the
// beta value to become negative.
TEST_F(SensorManagerChromeOSTest, UpsideDown) {
OnAccelerationIncludingGravity(0.0f, 0.0f, kMeanGravity);
- DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
- EXPECT_FLOAT_EQ(-180.0f, buffer->data.beta);
- EXPECT_FLOAT_EQ(0.0f, buffer->data.gamma);
+
+ DeviceMotionHardwareBuffer* motion = motion_buffer();
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityX);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityY);
+ EXPECT_FLOAT_EQ(kMeanGravity, motion->data.accelerationIncludingGravityZ);
+
+ DeviceOrientationHardwareBuffer* orientation = orientation_buffer();
+ EXPECT_FLOAT_EQ(-180.0f, orientation->data.beta);
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.gamma);
}
// Tests for positive beta value before the device is completely upside-down
TEST_F(SensorManagerChromeOSTest, BeforeUpsideDownBoundary) {
OnAccelerationIncludingGravity(0.0f, -kMeanGravity / 2.0f,
kMeanGravity / 2.0f);
- DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
- EXPECT_FLOAT_EQ(135.0f, buffer->data.beta);
- EXPECT_FLOAT_EQ(0.0f, buffer->data.gamma);
+
+ DeviceMotionHardwareBuffer* motion = motion_buffer();
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityX);
+ EXPECT_FLOAT_EQ(-kMeanGravity / 2.0f,
+ motion->data.accelerationIncludingGravityY);
+ EXPECT_FLOAT_EQ(kMeanGravity / 2.0f,
+ motion->data.accelerationIncludingGravityZ);
+
+ DeviceOrientationHardwareBuffer* orientation = orientation_buffer();
+ EXPECT_FLOAT_EQ(135.0f, orientation->data.beta);
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.gamma);
}
// Tests a device lying on its left-edge.
TEST_F(SensorManagerChromeOSTest, LeftEdge) {
OnAccelerationIncludingGravity(-kMeanGravity, 0.0f, 0.0f);
- DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
- EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
- EXPECT_FLOAT_EQ(-90.0f, buffer->data.gamma);
+
+ DeviceMotionHardwareBuffer* motion = motion_buffer();
+ EXPECT_FLOAT_EQ(-kMeanGravity, motion->data.accelerationIncludingGravityX);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityY);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityZ);
+
+ DeviceOrientationHardwareBuffer* orientation = orientation_buffer();
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.beta);
+ EXPECT_FLOAT_EQ(-90.0f, orientation->data.gamma);
}
// Tests a device lying on its right-edge, such that the W3C boundary [-90,90)
// causes the gamma value to become negative.
TEST_F(SensorManagerChromeOSTest, RightEdge) {
OnAccelerationIncludingGravity(kMeanGravity, 0.0f, 0.0f);
- DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
- EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
- EXPECT_FLOAT_EQ(-90.0f, buffer->data.gamma);
+
+ DeviceMotionHardwareBuffer* motion = motion_buffer();
+ EXPECT_FLOAT_EQ(kMeanGravity, motion->data.accelerationIncludingGravityX);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityY);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityZ);
+
+ DeviceOrientationHardwareBuffer* orientation = orientation_buffer();
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.beta);
+ EXPECT_FLOAT_EQ(-90.0f, orientation->data.gamma);
}
// Tests for positive gamma value before the device is completely on its right
@@ -143,9 +212,17 @@ TEST_F(SensorManagerChromeOSTest, RightEdge) {
TEST_F(SensorManagerChromeOSTest, BeforeRightEdgeBoundary) {
OnAccelerationIncludingGravity(kMeanGravity / 2.0f, 0.0f,
-kMeanGravity / 2.0f);
- DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
- EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
- EXPECT_FLOAT_EQ(45.0f, buffer->data.gamma);
+
+ DeviceMotionHardwareBuffer* motion = motion_buffer();
+ EXPECT_FLOAT_EQ(kMeanGravity / 2.0f,
+ motion->data.accelerationIncludingGravityX);
+ EXPECT_FLOAT_EQ(0.0f, motion->data.accelerationIncludingGravityY);
+ EXPECT_FLOAT_EQ(-kMeanGravity / 2.0f,
+ motion->data.accelerationIncludingGravityZ);
+
+ DeviceOrientationHardwareBuffer* orientation = orientation_buffer();
+ EXPECT_FLOAT_EQ(0.0f, orientation->data.beta);
+ EXPECT_FLOAT_EQ(45.0f, orientation->data.gamma);
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698