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

Side by Side Diff: content/browser/device_sensors/sensor_manager_chromeos_unittest.cc

Issue 680383007: DeviceOrientation API on ChromeOS (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Isolate Chrome OS changes Created 6 years, 1 month 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/public/browser/sensor_manager.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "content/common/device_sensors/device_orientation_hardware_buffer.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace {
12 const double kMeanGravity = 9.80665;
13 }
14
15 namespace content {
16
17 class SensorManagerChromeOSTest : public testing::Test {
18 public:
19 SensorManagerChromeOSTest() {
20 orientation_buffer_.reset(new DeviceOrientationHardwareBuffer);
21 SensorManager::GetInstance()->StartFetchingDeviceOrientationData(
22 orientation_buffer_.get());
23 }
24
25 virtual ~SensorManagerChromeOSTest() {}
26
27 DeviceOrientationHardwareBuffer* orientation_buffer() {
28 return orientation_buffer_.get();
29 }
30
31 private:
32 scoped_ptr<DeviceOrientationHardwareBuffer> orientation_buffer_;
33
34 DISALLOW_COPY_AND_ASSIGN(SensorManagerChromeOSTest);
35 };
36
37 // Tests that starting to process orientation data will update the associated
38 // buffer.
39 TEST_F(SensorManagerChromeOSTest, OrientationBuffer) {
40 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
41 EXPECT_TRUE(buffer->data.hasAbsolute);
42 EXPECT_FALSE(buffer->data.hasAlpha);
43 EXPECT_FALSE(buffer->data.hasBeta);
44 EXPECT_FALSE(buffer->data.hasGamma);
45 EXPECT_FALSE(buffer->data.allAvailableSensorsAreActive);
46
47 SensorManager::GetInstance()->OnAccelerationIncludingGravity(0.0f, 0.0f,
48 1.0f);
49 EXPECT_FLOAT_EQ(0.0f, buffer->data.alpha);
50 EXPECT_FALSE(buffer->data.hasAlpha);
51 EXPECT_TRUE(buffer->data.hasBeta);
52 EXPECT_TRUE(buffer->data.hasGamma);
53 EXPECT_TRUE(buffer->data.allAvailableSensorsAreActive);
54
55 SensorManager::GetInstance()->StopFetchingDeviceOrientationData();
56 EXPECT_FALSE(buffer->data.allAvailableSensorsAreActive);
57 }
58
59 // Tests a device resting flat.
60 TEST_F(SensorManagerChromeOSTest, NeutralOrientation) {
61 SensorManager::GetInstance()->OnAccelerationIncludingGravity(0.0f, 0.0f,
62 -kMeanGravity);
63 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
64 EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
65 EXPECT_FLOAT_EQ(0.0f, buffer->data.gamma);
66 }
67
68 // Tests an upside-down device, such that the W3C boundary [-180,180) causes the
69 // beta value to become negative.
70 TEST_F(SensorManagerChromeOSTest, UpsideDown) {
71 SensorManager::GetInstance()->OnAccelerationIncludingGravity(0.0f, 0.0f,
72 kMeanGravity);
73 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
74 EXPECT_FLOAT_EQ(-180.0f, buffer->data.beta);
75 EXPECT_FLOAT_EQ(0.0f, buffer->data.gamma);
76 }
77
78 // Tests for positive beta value before the device is completely upside-down
79 TEST_F(SensorManagerChromeOSTest, BeforeUpsideDownBoundary) {
80 SensorManager::GetInstance()->OnAccelerationIncludingGravity(
81 0.0f, -kMeanGravity / 2.0f, kMeanGravity / 2.0f);
82 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
83 EXPECT_FLOAT_EQ(135.0f, buffer->data.beta);
84 EXPECT_FLOAT_EQ(0.0f, buffer->data.gamma);
85 }
86
87 // Tests a device lying on its left-edge.
88 TEST_F(SensorManagerChromeOSTest, LeftEdge) {
89 SensorManager::GetInstance()->OnAccelerationIncludingGravity(-kMeanGravity,
90 0.0f, 0.0f);
91 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
92 EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
93 EXPECT_FLOAT_EQ(-90.0f, buffer->data.gamma);
94 }
95
96 // Tests a device lying on its right-edge, such that the W3C boundary [-90,90)
97 // causes the gamma value to become negative.
98 TEST_F(SensorManagerChromeOSTest, RightEdge) {
99 SensorManager::GetInstance()->OnAccelerationIncludingGravity(kMeanGravity,
100 0.0f, 0.0f);
101 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
102 EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
103 EXPECT_FLOAT_EQ(-90.0f, buffer->data.gamma);
104 }
105
106 // Tests for positive gamma value before the device is completely on its right
107 // side.
108 TEST_F(SensorManagerChromeOSTest, BeforeRightEdgeBoundary) {
109 SensorManager::GetInstance()->OnAccelerationIncludingGravity(
110 kMeanGravity / 2.0f, 0.0f, -kMeanGravity / 2.0f);
111 DeviceOrientationHardwareBuffer* buffer = orientation_buffer();
112 EXPECT_FLOAT_EQ(0.0f, buffer->data.beta);
113 EXPECT_FLOAT_EQ(45.0f, buffer->data.gamma);
114 }
115
116 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698