summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/battery-status/battery-interface-idlharness.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/battery-status/battery-interface-idlharness.html')
-rw-r--r--testing/web-platform/tests/battery-status/battery-interface-idlharness.html74
1 files changed, 74 insertions, 0 deletions
diff --git a/testing/web-platform/tests/battery-status/battery-interface-idlharness.html b/testing/web-platform/tests/battery-status/battery-interface-idlharness.html
new file mode 100644
index 000000000..4e9b209d4
--- /dev/null
+++ b/testing/web-platform/tests/battery-status/battery-interface-idlharness.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Battery test: IDL</title>
+<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 ();
+};
+
+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>