| <!doctype html> |
| <meta charset=utf-8> |
| <title>Audio constructor</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <div id=log></div> |
| <script> |
| test(function() { |
| var throwingObject = { |
| toString: function() { throw Error() }, |
| valueOf: function() { throw Error() } |
| }; |
| var tests = [ |
| [function() { return Audio() }, null, "No arguments, without new"], |
| [function() { return new Audio() }, null, "No arguments, with new"], |
| [function() { return Audio("") }, "", "Empty string argument, without new"], |
| [function() { return new Audio("") }, "", "Empty string argument, with new"], |
| [function() { return Audio("src") }, "src", "Non-empty string argument, without new"], |
| [function() { return new Audio("src") }, "src", "Non-empty string argument, with new"], |
| [function() { return Audio(null) }, "null", "Null argument, without new"], |
| [function() { return new Audio(null) }, "null", "Null argument, with new"], |
| [function() { return Audio(undefined) }, null, "Undefined argument, without new"], |
| [function() { return new Audio(undefined) }, null, "Undefined argument, with new"], |
| [function() { return Audio("", throwingObject) }, "", "Extra argument, without new"], |
| [function() { return new Audio("", throwingObject) }, "", "Extra argument, with new"], |
| ]; |
| tests.forEach(function(t) { |
| var fn = t[0], expectedSrc = t[1], description = t[2]; |
| test(function() { |
| var element = fn(); |
| assert_equals(element.localName, "audio"); |
| assert_equals(element.tagName, "AUDIO"); |
| assert_equals(element.namespaceURI, "http://www.w3.org/1999/xhtml"); |
| assert_equals(element.nodeType, Node.ELEMENT_NODE); |
| assert_equals(element.getAttribute("preload"), "auto"); |
| assert_equals(element.getAttribute("src"), expectedSrc); |
| assert_equals(element.ownerDocument, document); |
| }, description); |
| }); |
| }); |
| test(function() { |
| assert_throws(new TypeError(), function() { |
| HTMLAudioElement(); |
| }); |
| }, "Calling HTMLAudioElement should throw"); |
| test(function() { |
| assert_throws(new TypeError(), function() { |
| new HTMLAudioElement(); |
| }); |
| }, "Constructing HTMLAudioElement should throw"); |
| </script> |