Index: LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/the-audio-element/audio_constructor.html |
diff --git a/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/the-audio-element/audio_constructor.html b/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/the-audio-element/audio_constructor.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8c4c3efe3df1998f5677b846e1aac496c9e37c61 |
--- /dev/null |
+++ b/LayoutTests/imported/web-platform-tests/html/semantics/embedded-content/the-audio-element/audio_constructor.html |
@@ -0,0 +1,51 @@ |
+<!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> |