| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Battery test: IDL</title> |
| <link rel="author" title="Intel" href="http://www.intel.com"> |
| <link rel="help" href="https://www.w3.org/TR/battery-status/"> |
| <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 type="text/plain" class="untested"> |
| interface Navigator { }; |
| |
| interface EventTarget { |
| void addEventListener(DOMString type, EventListener? callback, optional boolean capture); |
| void removeEventListener(DOMString type, EventListener? callback, optional boolean capture); |
| boolean dispatchEvent(Event event); |
| }; |
| |
| [Callback] |
| interface EventListener { |
| void handleEvent(Event event); |
| }; |
| [TreatNonObjectAsNull] |
| callback EventHandlerNonNull = any (Event event); |
| typedef EventHandlerNonNull? EventHandler; |
| </script> |
| <script type="text/plain"> |
| partial interface Navigator { |
| Promise<BatteryManager> getBattery (); |
| }; |
| |
| [Exposed=Window] |
| interface BatteryManager : EventTarget { |
| readonly attribute boolean charging; |
| readonly attribute unrestricted double chargingTime; |
| readonly attribute unrestricted double dischargingTime; |
| readonly attribute double level; |
| attribute EventHandler onchargingchange; |
| attribute EventHandler onchargingtimechange; |
| attribute EventHandler ondischargingtimechange; |
| attribute EventHandler onlevelchange; |
| }; |
| </script> |
| <script> |
| "use strict"; |
| var t = async_test(); |
| var idl_array = new IdlArray(); |
| var idls; |
| var manager; |
| [].forEach.call(document.querySelectorAll('script[type=text\\/plain]'), function(node) { |
| idls = node.textContent; |
| idl_array[(node.className === 'untested') ? 'add_untested_idls' : 'add_idls'](idls); |
| }); |
| t.step(function() { |
| assert_idl_attribute(navigator, 'getBattery', 'navigator must have getBattery attribute'); |
| navigator.getBattery().then(function(bm) { |
| manager = bm; |
| idl_array.add_objects({Navigator: ['navigator'], BatteryManager: ['manager']}); |
| idl_array.test(); |
| t.done(); |
| }).catch(function(err) { |
| t.assert_unreached("navigator.getBattery failed"); |
| }); |
| }); |
| </script> |
| |
| <h2>Description</h2> |
| <p> |
| This test validates the BatteryManager interface IDL. |
| </p> |
| <p> |
| This test uses <a href="/resources/idlharness.js">idlharness.js</a>, and |
| is complementary to the <a href="battery-interface.html">battery-interface.html</a> |
| test. |
| </p> |
| |
| <div id="log"></div> |