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

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

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

Powered by Google App Engine
This is Rietveld 408576698