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

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

Issue 2596063003: Revert of [Sensors] Reland: Align sensor reading updates and 'onchange' notification with rAF. (Closed)
Patch Set: Created 3 years, 12 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
1 'use strict'; 1 'use strict';
2 2
3 // Run a set of tests for a given |sensorType|. |updateReading| is 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| 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 5 // is called so that the value read in JavaScript are the values expected (the o nes
6 // sent by |updateReading|). 6 // sent by |updateReading|).
7 function runGenericSensorTests(sensorType, updateReading, verifyReading) { 7 function runGenericSensorTests(sensorType, updateReading, verifyReading) {
8 test(() => assert_throws( 8 test(() => assert_throws(
9 new RangeError(), 9 new RangeError(),
10 () => new sensorType({frequency: -60})), 10 () => new sensorType({frequency: -60})),
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 284
285 let testPromise = sensor.mockSensorProvider.getCreatedSensor() 285 let testPromise = sensor.mockSensorProvider.getCreatedSensor()
286 .then(mockSensor => { 286 .then(mockSensor => {
287 mockSensor.setExpectsModifiedReading(true); 287 mockSensor.setExpectsModifiedReading(true);
288 return mockSensor.setUpdateSensorReadingFunction(updateReading); 288 return mockSensor.setUpdateSensorReadingFunction(updateReading);
289 }) 289 })
290 .then(mockSensor => { 290 .then(mockSensor => {
291 return new Promise((resolve, reject) => { 291 return new Promise((resolve, reject) => {
292 let fastSensorNotifiedCounter = 0; 292 let fastSensorNotifiedCounter = 0;
293 let slowSensorNotifiedCounter = 0; 293 let slowSensorNotifiedCounter = 0;
294 let readingUpdatesCounter = 0;
295 294
296 let fastSensorWrapper = new CallbackWrapper(() => { 295 let fastSensorWrapper = new CallbackWrapper(() => {
297 fastSensorNotifiedCounter++; 296 fastSensorNotifiedCounter++;
298 }, reject); 297 }, reject);
299 298
300 let slowSensorWrapper = new CallbackWrapper(() => { 299 let slowSensorWrapper = new CallbackWrapper(() => {
301 slowSensorNotifiedCounter++; 300 slowSensorNotifiedCounter++;
302 if (slowSensorNotifiedCounter == 1) { 301 if (slowSensorNotifiedCounter == 1) {
303 fastSensor.start(); 302 fastSensor.start();
304 readingUpdatesCounter = mockSensor.reading_updates_count();
305 } else if (slowSensorNotifiedCounter == 2) { 303 } else if (slowSensorNotifiedCounter == 2) {
306 // By the moment slow sensor (9 Hz) is notified for the 304 // By the moment slow sensor (9 Hz) is notified for the
307 // next time, the fast sensor (30 Hz) has been notified 305 // next time, the fast sensor (30 Hz) has been notified
308 // for int(30/9) = 3 times. 306 // for int(30/9) = 3 times.
309 // In actual implementation updates are bound to rAF, 307 assert_equals(fastSensorNotifiedCounter, 3);
310 // (not to a timer) so fluctuations are possible, so we
311 // reference to the actual elapsed updates count.
312 let elapsedUpdates = mockSensor.reading_updates_count() - readin gUpdatesCounter;
313 assert_equals(fastSensorNotifiedCounter, elapsedUpdates);
314 fastSensor.stop(); 308 fastSensor.stop();
315 slowSensor.stop(); 309 slowSensor.stop();
316 resolve(mockSensor); 310 resolve(mockSensor);
317 } 311 }
318 }, reject); 312 }, reject);
319 313
320 fastSensor.onchange = fastSensorWrapper.callback; 314 fastSensor.onchange = fastSensorWrapper.callback;
321 slowSensor.onchange = slowSensorWrapper.callback; 315 slowSensor.onchange = slowSensorWrapper.callback;
322 fastSensor.onerror = reject; 316 fastSensor.onerror = reject;
323 slowSensor.onerror = reject; 317 slowSensor.onerror = reject;
324 }); 318 });
325 }) 319 })
326 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); }); 320 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
327 321
328 return testPromise; 322 return testPromise;
329 } 323 }
330 324
331 sensor_test(sensor => { 325 sensor_test(sensor => {
332 return checkFrequencyHintWorks(sensor); 326 return checkFrequencyHintWorks(sensor);
333 }, 'Test that frequency hint works (onchange reporting).'); 327 }, 'Test that frequency hint works (onchange reporting).');
334 328
335 sensor_test(sensor => { 329 sensor_test(sensor => {
336 sensor.mockSensorProvider.setContinuousReportingMode(); 330 sensor.mockSensorProvider.setContinuousReportingMode();
337 return checkFrequencyHintWorks(sensor); 331 return checkFrequencyHintWorks(sensor);
338 }, 'Test that frequency hint works (continuous reporting).'); 332 }, 'Test that frequency hint works (continuous reporting).');
339 } 333 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698