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

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

Issue 2646093002: Move //content/browser/device_sensor/ into device/sensors (Closed)
Patch Set: gn format & code rebase Created 3 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 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/browser/device_sensors/sensor_manager_android.h"
6
7 #include <memory>
8
9 #include "base/android/jni_android.h"
10 #include "base/memory/weak_ptr.h"
11 #include "base/message_loop/message_loop.h"
12 #include "content/browser/device_sensors/device_sensors_consts.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace content {
16
17 namespace {
18
19 class FakeSensorManagerAndroid : public SensorManagerAndroid {
20 public:
21 FakeSensorManagerAndroid() {}
22 ~FakeSensorManagerAndroid() override {}
23
24 OrientationSensorType GetOrientationSensorTypeUsed() override {
25 return SensorManagerAndroid::ROTATION_VECTOR;
26 }
27
28 int GetNumberActiveDeviceMotionSensors() override {
29 return number_active_sensors_;
30 }
31
32 void SetNumberActiveDeviceMotionSensors(int number_active_sensors) {
33 number_active_sensors_ = number_active_sensors;
34 }
35
36 protected:
37 bool Start(ConsumerType event_type) override { return true; }
38 void Stop(ConsumerType event_type) override {}
39
40 private:
41 int number_active_sensors_;
42 };
43
44 class AndroidSensorManagerTest : public testing::Test {
45 protected:
46 AndroidSensorManagerTest() {
47 light_buffer_.reset(new DeviceLightHardwareBuffer);
48 motion_buffer_.reset(new DeviceMotionHardwareBuffer);
49 orientation_buffer_.reset(new DeviceOrientationHardwareBuffer);
50 orientation_absolute_buffer_.reset(new DeviceOrientationHardwareBuffer);
51 }
52
53 void VerifyOrientationBufferValues(
54 const DeviceOrientationHardwareBuffer* buffer,
55 double alpha, double beta, double gamma) {
56 ASSERT_TRUE(buffer->data.allAvailableSensorsAreActive);
57 ASSERT_EQ(alpha, buffer->data.alpha);
58 ASSERT_TRUE(buffer->data.hasAlpha);
59 ASSERT_EQ(beta, buffer->data.beta);
60 ASSERT_TRUE(buffer->data.hasBeta);
61 ASSERT_EQ(gamma, buffer->data.gamma);
62 ASSERT_TRUE(buffer->data.hasGamma);
63 }
64
65 std::unique_ptr<DeviceLightHardwareBuffer> light_buffer_;
66 std::unique_ptr<DeviceMotionHardwareBuffer> motion_buffer_;
67 std::unique_ptr<DeviceOrientationHardwareBuffer> orientation_buffer_;
68 std::unique_ptr<DeviceOrientationHardwareBuffer> orientation_absolute_buffer_;
69 base::MessageLoop message_loop_;
70 };
71
72 TEST_F(AndroidSensorManagerTest, ThreeDeviceMotionSensorsActive) {
73 FakeSensorManagerAndroid::Register(base::android::AttachCurrentThread());
74 FakeSensorManagerAndroid sensorManager;
75 sensorManager.SetNumberActiveDeviceMotionSensors(3);
76
77 sensorManager.StartFetchingDeviceMotionData(motion_buffer_.get());
78 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
79
80 sensorManager.GotAcceleration(nullptr, nullptr, 1, 2, 3);
81 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
82 ASSERT_EQ(1, motion_buffer_->data.accelerationX);
83 ASSERT_TRUE(motion_buffer_->data.hasAccelerationX);
84 ASSERT_EQ(2, motion_buffer_->data.accelerationY);
85 ASSERT_TRUE(motion_buffer_->data.hasAccelerationY);
86 ASSERT_EQ(3, motion_buffer_->data.accelerationZ);
87 ASSERT_TRUE(motion_buffer_->data.hasAccelerationZ);
88
89 sensorManager.GotAccelerationIncludingGravity(nullptr, nullptr, 4, 5, 6);
90 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
91 ASSERT_EQ(4, motion_buffer_->data.accelerationIncludingGravityX);
92 ASSERT_TRUE(motion_buffer_->data.hasAccelerationIncludingGravityX);
93 ASSERT_EQ(5, motion_buffer_->data.accelerationIncludingGravityY);
94 ASSERT_TRUE(motion_buffer_->data.hasAccelerationIncludingGravityY);
95 ASSERT_EQ(6, motion_buffer_->data.accelerationIncludingGravityZ);
96 ASSERT_TRUE(motion_buffer_->data.hasAccelerationIncludingGravityZ);
97
98 sensorManager.GotRotationRate(nullptr, nullptr, 7, 8, 9);
99 ASSERT_TRUE(motion_buffer_->data.allAvailableSensorsAreActive);
100 ASSERT_EQ(7, motion_buffer_->data.rotationRateAlpha);
101 ASSERT_TRUE(motion_buffer_->data.hasRotationRateAlpha);
102 ASSERT_EQ(8, motion_buffer_->data.rotationRateBeta);
103 ASSERT_TRUE(motion_buffer_->data.hasRotationRateBeta);
104 ASSERT_EQ(9, motion_buffer_->data.rotationRateGamma);
105 ASSERT_TRUE(motion_buffer_->data.hasRotationRateGamma);
106 ASSERT_EQ(kDeviceSensorIntervalMicroseconds / 1000.,
107 motion_buffer_->data.interval);
108
109 sensorManager.StopFetchingDeviceMotionData();
110 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
111 }
112
113 TEST_F(AndroidSensorManagerTest, TwoDeviceMotionSensorsActive) {
114 FakeSensorManagerAndroid::Register(base::android::AttachCurrentThread());
115 FakeSensorManagerAndroid sensorManager;
116 sensorManager.SetNumberActiveDeviceMotionSensors(2);
117
118 sensorManager.StartFetchingDeviceMotionData(motion_buffer_.get());
119 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
120
121 sensorManager.GotAcceleration(nullptr, nullptr, 1, 2, 3);
122 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
123
124 sensorManager.GotAccelerationIncludingGravity(nullptr, nullptr, 1, 2, 3);
125 ASSERT_TRUE(motion_buffer_->data.allAvailableSensorsAreActive);
126 ASSERT_EQ(kDeviceSensorIntervalMicroseconds / 1000.,
127 motion_buffer_->data.interval);
128
129 sensorManager.StopFetchingDeviceMotionData();
130 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
131 }
132
133 TEST_F(AndroidSensorManagerTest, ZeroDeviceMotionSensorsActive) {
134 FakeSensorManagerAndroid::Register(base::android::AttachCurrentThread());
135 FakeSensorManagerAndroid sensorManager;
136 sensorManager.SetNumberActiveDeviceMotionSensors(0);
137
138 sensorManager.StartFetchingDeviceMotionData(motion_buffer_.get());
139 ASSERT_TRUE(motion_buffer_->data.allAvailableSensorsAreActive);
140 ASSERT_EQ(kDeviceSensorIntervalMicroseconds / 1000.,
141 motion_buffer_->data.interval);
142
143 sensorManager.StopFetchingDeviceMotionData();
144 ASSERT_FALSE(motion_buffer_->data.allAvailableSensorsAreActive);
145 }
146
147 TEST_F(AndroidSensorManagerTest, DeviceOrientationSensorsActive) {
148 FakeSensorManagerAndroid::Register(base::android::AttachCurrentThread());
149 FakeSensorManagerAndroid sensorManager;
150
151 sensorManager.StartFetchingDeviceOrientationData(orientation_buffer_.get());
152 ASSERT_FALSE(orientation_buffer_->data.allAvailableSensorsAreActive);
153
154 sensorManager.GotOrientation(nullptr, nullptr, 1, 2, 3);
155 VerifyOrientationBufferValues(orientation_buffer_.get(), 1, 2, 3);
156
157 sensorManager.StopFetchingDeviceOrientationData();
158 ASSERT_FALSE(orientation_buffer_->data.allAvailableSensorsAreActive);
159 }
160
161 TEST_F(AndroidSensorManagerTest, DeviceOrientationAbsoluteSensorsActive) {
162 FakeSensorManagerAndroid::Register(base::android::AttachCurrentThread());
163 FakeSensorManagerAndroid sensorManager;
164
165 sensorManager.StartFetchingDeviceOrientationAbsoluteData(
166 orientation_absolute_buffer_.get());
167 ASSERT_FALSE(orientation_buffer_->data.allAvailableSensorsAreActive);
168
169 sensorManager.GotOrientationAbsolute(nullptr, nullptr, 4, 5, 6);
170 VerifyOrientationBufferValues(orientation_absolute_buffer_.get(), 4, 5, 6);
171
172 sensorManager.StopFetchingDeviceOrientationData();
173 ASSERT_FALSE(orientation_buffer_->data.allAvailableSensorsAreActive);
174 }
175
176 // DeviceLight
177 TEST_F(AndroidSensorManagerTest, DeviceLightSensorsActive) {
178 FakeSensorManagerAndroid::Register(base::android::AttachCurrentThread());
179 FakeSensorManagerAndroid sensorManager;
180
181 sensorManager.StartFetchingDeviceLightData(light_buffer_.get());
182
183 sensorManager.GotLight(nullptr, nullptr, 100);
184 ASSERT_EQ(100, light_buffer_->data.value);
185
186 sensorManager.StopFetchingDeviceLightData();
187 ASSERT_EQ(-1, light_buffer_->data.value);
188 }
189
190 } // namespace
191
192 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/device_sensors/sensor_manager_android.cc ('k') | content/browser/device_sensors/sensor_manager_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698