https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 1ea17fc1edda1c4cd0eb3915dc98ae8185e50d80 authored by James Graham on 22 August 2017, 14:43:51 UTC
Consolidate logic for multi-global tests.
Tip revision: 1ea17fc
battery-interface-idlharness.https.html
<!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 ();
};

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>
back to top