summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/encoding/idlharness.html
blob: c010df3fafa3feae6b3a4fda9ab18e9fab376e5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<!DOCTYPE html>
<meta charset="utf-8">
<title>idlharness test: Encoding Living Standard API</title>
<link rel="author" title="Joshua Bell" href="mailto:jsbell@google.com" />
<link rel="help" href="https://encoding.spec.whatwg.org/#api"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>

<h1>idlharness test</h1>
<p>This test validates the WebIDL included in the Encoding Living Standard.</p>

<script type="text/plain" class="untested-idl">
interface Window {};
</script>

<script type="text/plain" class="idl">
// 8.1 Interface TextDecoder

dictionary TextDecoderOptions {
  boolean fatal = false;
  boolean ignoreBOM = false;
};

dictionary TextDecodeOptions {
  boolean stream = false;
};

[Constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options),
 Exposed=Window,Worker]
interface TextDecoder {
  readonly attribute DOMString encoding;
  readonly attribute boolean fatal;
  readonly attribute boolean ignoreBOM;
  USVString decode(optional BufferSource input, optional TextDecodeOptions options);
};

// 8.2 Interface TextDecoder

[Constructor,
 Exposed=Window,Worker]
interface TextEncoder {
  readonly attribute DOMString encoding;
  [NewObject] Uint8Array encode(optional USVString input = "");
};
</script>

<script>
function select(selector) {
  return [].slice.call(document.querySelectorAll(selector))
    .map(function(e) { return e.textContent; })
    .join('\n\n');
}

var idl = select('.idl')
var untested = select('.untested-idl');
var idl_array = new IdlArray();
idl_array.add_untested_idls(untested);
idl_array.add_idls(idl);
idl_array.add_objects({
  TextEncoder: ['new TextEncoder()'],
  TextDecoder: ['new TextDecoder()']
});
idl_array.test();
</script>