blob: d52082f2e076de0458b689750523b3d10646f4e0 [file] [edit]
<!DOCTYPE HTML>
<html>
<head>
<title>idlharness basic</title>
</head>
<body>
<div id="log"></div>
<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";
test(function() {
assert_true("IdlArray" in window);
}, 'IdlArray constructor should be a global object');
test(function() {
assert_true(new IdlArray() instanceof IdlArray);
}, 'IdlArray constructor should be constructible');
test(function() {
assert_true("WebIDL2" in window);
}, 'WebIDL2 namespace should be a global object');
test(function() {
assert_equals(typeof WebIDL2.parse, "function");
}, 'WebIDL2 namespace should have a parse method');
test(function() {
try {
WebIDL2.parse("I'm a syntax error");
throw new Error("Web IDL didn't throw");
} catch (e) {
assert_equals(e.name, "WebIDLParseError");
}
}, 'WebIDL2 parse method should bail on incorrect WebIDL');
test(function() {
assert_equals(typeof WebIDL2.parse("interface Foo {};"), "object");
}, 'WebIDL2 parse method should produce an AST for correct WebIDL');
test(function () {
try {
let i = new IdlArray();
i.add_untested_idls(`interface C {};`);
i.assert_throws('Anything', i => i.test());
} catch (e) {
assert_true(e instanceof IdlHarnessError);
}
}, `assert_throws should throw if no IdlHarnessError thrown`);
</script>
</body>
</html>