<!DOCTYPE html>
<meta charset="utf-8">
<title>Gyroscope Sensor IDL tests</title>
<link rel="author" title="Intel" href="http://www.intel.com">
<link rel="help" href="https://w3c.github.io/gyroscope/">
<link rel="help" href="https://w3c.github.io/sensors/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script>
"use strict";

function doTest([dom, generic_sensor, gyroscope]) {
  const idl_array = new IdlArray();
  idl_array.add_untested_idls(dom);
  idl_array.add_untested_idls('interface EventHandler {};');
  idl_array.add_idls(generic_sensor, { only: ['Sensor', 'SensorOptions'] });
  idl_array.add_idls(gyroscope);
  idl_array.add_objects({
    Gyroscope: ['new Gyroscope();']
  });
  idl_array.test();
}

function fetchText(url) {
  return fetch(url).then((response) => response.text());
}

promise_test(() => {
  return Promise.all([
    "/interfaces/dom.idl",
    "/interfaces/sensors.idl",
    "/interfaces/gyroscope.idl",
  ].map(fetchText)).then(doTest);
}, "Test IDL implementation of Gyroscope Sensor");
</script>
