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

Side by Side Diff: third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js

Issue 2471003002: [sensors] Accelerometer sensor bindings implementation (Closed)
Patch Set: Fix mikhail comments Created 4 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 'use strict';
2
3 // Run a set of tests for a given |sensorType|. |updateReading| is
4 // a called by the test to provide the mock values for sensor. |verifyReading|
5 // is called so that the value read in JavaScript are the values expected (the o nes
6 // sent by |updateReading|).
7 function runGenericSensorTest(sensorType, updateReading, verifyReading) {
8 test(() => assert_throws(
9 new RangeError(),
10 () => new sensorType({frequency: -60})),
11 'Test that negative frequency causes exception from constructor.');
12
13 sensor_test(sensor => {
14 sensor.mockSensorProvider.setGetSensorShouldFail(true);
15 let sensorObject = new sensorType;
16 sensorObject.start();
17 return new Promise((resolve, reject) => {
18 sensorObject.onstatechange = event => {
19 if(sensorObject.state == 'errored') {
20 resolve();
21 }
22 };
23 });
24 }, 'Test that sensor state changes to "errored" when sensor is not supported.' );
25
26 sensor_test(sensor => {
27 sensor.mockSensorProvider.setGetSensorShouldFail(true);
28 let sensorObject = new sensorType();
29 sensorObject.start();
30 return new Promise((resolve, reject) => {
31 sensorObject.onerror = event => {
32 assert_equals(sensorObject.state, 'errored');
33 console.log(event.error.message);
34 assert_equals(event.error.name, 'NotFoundError');
35 sensorObject.onerror = null;
36 resolve();
37 };
38 });
39 }, 'Test that "onerror" is send when sensor is not supported.');
40
41 sensor_test(sensor => {
42 let sensorObject = new sensorType({frequency: 560});
43 sensorObject.start();
44
45 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
46 .then(mockSensor => {
47 mockSensor.setStartShouldFail(true);
48 return mockSensor.addConfigurationCalled(); })
49 .then(mockSensor => {
50 return new Promise((resolve, reject) => {
51 sensorObject.onerror = event => {
52 assert_equals(sensorObject.state, 'errored');
53 assert_equals(event.error.name, 'OperationError');
54 sensorObject.onerror = null;
55 resolve();
56 };
57 });
58 });
59 return testPromise;
60 }, 'Test that "onerror" is send when start() call has failed.');
61
62 sensor_test(sensor => {
63 let sensorObject = new sensorType({frequency: 560});
64 sensorObject.start();
65
66 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
67 .then(mockSensor => { return mockSensor.addConfigurationCalled(); })
68 .then(mockSensor => {
69 return new Promise((resolve, reject) => {
70 sensorObject.onstatechange = event => {
71 if (sensorObject.state === 'idle') {
72 resolve(mockSensor);
73 }
74 if (sensorObject.state === 'active') {
75 let configuration = mockSensor.active_sensor_configurations_[0 ];
76 assert_equals(configuration.frequency, 60);
77 sensorObject.stop();
78 }
79 };
80 });
81 })
82 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); } );
83 return testPromise;
84 }, 'Test that frequency is capped to 60.0 Hz.');
85
86 sensor_test(sensor => {
87 let sensorObject = new sensorType({frequency: 60});
88 sensorObject.start();
89 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
90 .then((mockSensor) => {
91 return new Promise((resolve, reject) => {
92 sensorObject.onstatechange = event => {
93 if (sensorObject.state === 'idle') {
94 resolve(mockSensor);
95 }
96 if (sensorObject.state === 'active') {
97 sensorObject.stop();
98 }
99 };
100 sensorObject.onerror = reject;
101 });
102 })
103 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
104 return testPromise;
105 }, 'Test that sensor can be successfully created if sensor is supported.');
106
107 sensor_test(sensor => {
108 let sensorObject = new sensorType();
109 sensorObject.start();
110 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
111 .then((mockSensor) => {
112 return new Promise((resolve, reject) => {
113 sensorObject.onstatechange = event => {
114 if (sensorObject.state === 'idle') {
115 resolve(mockSensor);
116 }
117 if (sensorObject.state === 'active') {
118 sensorObject.stop();
119 }
120 };
121
122 sensorObject.onerror = reject;
123 });
124 })
125 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
126 return testPromise;
127 }, 'Test that sensor can be constructed with default configuration.');
128
129 sensor_test(sensor => {
130 let sensorObject = new sensorType({frequency: 60});
131 sensorObject.start();
132
133 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
134 .then(mockSensor => { return mockSensor.addConfigurationCalled(); })
135 .then(mockSensor => {
136 return new Promise((resolve, reject) => {
137 sensorObject.onstatechange = event => {
138 if (sensorObject.state === 'idle') {
139 resolve(mockSensor);
140 }
141 if (sensorObject.state === 'active') {
142 sensorObject.stop();
143 }
144 };
145 });
146 })
147 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
148
149 return testPromise;
150 }, 'Test that addConfiguration and removeConfiguration is called.');
151
152 sensor_test(sensor => {
153 let sensorObject = new sensorType({frequency: 60});
154 sensorObject.start();
155 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
156 .then(mockSensor => {
157 return mockSensor.setUpdateSensorReadingFunction(updateReading);
158 })
159 .then((mockSensor) => {
160 return new Promise((resolve, reject) => {
161 sensorObject.onstatechange = event => {
162 if (sensorObject.state === 'idle') {
163 resolve(mockSensor);
164 }
165 };
166
167 sensorObject.onchange = e => {
168 assert_true(verifyReading(e.reading));
169 sensorObject.stop();
170 };
171
172 sensorObject.onerror = reject;
173 });
174 })
175 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
176
177 return testPromise;
178 }, 'Test that onChange is called and sensor reading is valid.');
179
180 sensor_test(sensor => {
181 let sensorObject = new sensorType({frequency: 60});
182 sensorObject.start();
183 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
184 .then(mockSensor => {
185 return mockSensor.setUpdateSensorReadingFunction(updateReading);
186 })
187 .then((mockSensor) => {
188 return new Promise((resolve, reject) => {
189 sensorObject.onstatechange = () => {
190 if (sensorObject.state === 'idle') {
191 assert_equals(sensorObject.reading, null);
192 resolve(mockSensor);
193 }
194 }
195
196 sensorObject.onchange = e => {
197 assert_true(verifyReading(e.reading));
198 sensorObject.stop();
199 }
200 sensorObject.onerror = reject;
201 });
202 })
203 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
204
205 return testPromise;
206 }, 'Test that sensor reading is not updated when sensor is stopped.');
207
208 sensor_test(sensor => {
209 let sensorObject = new sensorType;
210 sensorObject.start();
211 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
212 .then(mockSensor => {
213 return mockSensor.setUpdateSensorReadingFunction(updateReading);
214 })
215 .then((mockSensor) => {
216 return new Promise((resolve, reject) => {
217 sensorObject.onchange = e => {
218 if (verifyReading(e.reading)) {
219 resolve(mockSensor);
220 }
221 }
222 sensorObject.onerror = reject;
223 });
224 })
225 .then((mockSensor) => {
226 testRunner.setPageVisibility("hidden");
227 return mockSensor.suspendCalled();
228 })
229 .then((mockSensor) => {
230 testRunner.setPageVisibility("visible");
231 return mockSensor.resumeCalled();
232 })
233 .then((mockSensor) => {
234 return new Promise((resolve, reject) => {
235 sensorObject.onstatechange = () => {
236 if (sensorObject.state === 'idle') {
237 resolve(mockSensor);
238 }
239 }
240 sensorObject.stop();
241 sensorObject.onerror = reject;
242 });
243 })
244 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
245
246 return testPromise;
247 }, 'Test that sensor receives suspend / resume notifications when page'
248 + ' visibility changes.');
249 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698