42 lines
1.6 KiB
HTML
42 lines
1.6 KiB
HTML
<script src="../resources/js-test-pre.js"></script>
|
|
<script>
|
|
description("Tests that interfaces objects have the right type");
|
|
// http://heycam.github.io/webidl/#interface-object
|
|
|
|
object = {};
|
|
|
|
debug("* Interface with constructor");
|
|
shouldBeTrue("window.Event instanceof Function");
|
|
shouldBeEqualToString("typeof Event", "function");
|
|
shouldBe("Object.getPrototypeOf(Event)", "Function.prototype");
|
|
shouldThrow("Event('click')");
|
|
shouldThrow("Event.call('click')");
|
|
shouldNotThrow("new Event('click')");
|
|
shouldBeEqualToString("Event.toString()", "function Event() {\n [native code]\n}");
|
|
shouldBeEqualToString("object.toString.call(Event)", "[object Function]");
|
|
|
|
debug("");
|
|
debug("* Interface with named constructor");
|
|
shouldBeTrue("window.Audio instanceof Function");
|
|
shouldBeEqualToString("typeof Audio", "function");
|
|
shouldBe("Object.getPrototypeOf(Audio)", "Function.prototype");
|
|
shouldThrow("Audio()");
|
|
shouldThrow("Audio.call()");
|
|
shouldNotThrow("new Audio()");
|
|
shouldBeEqualToString("Audio.toString()", "function Audio() {\n [native code]\n}");
|
|
shouldBeEqualToString("object.toString.call(Audio)", "[object Function]");
|
|
|
|
debug("");
|
|
debug("* Interface without constructor");
|
|
shouldBeTrue("window.Element instanceof Function");
|
|
shouldBeEqualToString("typeof Element", "function");
|
|
shouldBe("Object.getPrototypeOf(Element)", "Node");
|
|
shouldThrow("Element()");
|
|
shouldThrow("Element.call()");
|
|
shouldThrow("new Element()");
|
|
shouldBeEqualToString("Element.toString()", "function Element() {\n [native code]\n}");
|
|
shouldBeEqualToString("object.toString.call(Element)", "[object Function]");
|
|
|
|
</script>
|
|
<script src="../resources/js-test-post.js"></script>
|