mirror of
https://github.com/servo/servo.git
synced 2025-10-04 02:29:12 +01:00
57 lines
1.9 KiB
HTML
57 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Check duplicate definition</title>
|
|
<meta name="author" title="Sergey G. Grekhov" href="mailto:sgrekhov@unipro.ru">
|
|
<meta name="assert" content="If there already exists a definition with the same TYPE, set ERROR to DuplicateDefinition and stop">
|
|
<link rel="help" href="http://www.w3.org/TR/custom-elements/#registering-custom-elements">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="../testcommon.js"></script>
|
|
<link rel="stylesheet" href="/resources/testharness.css">
|
|
</head>
|
|
<body>
|
|
<div id="log"></div>
|
|
<script>
|
|
test(function() {
|
|
var doc = newHTMLDocument();
|
|
var name = 'x-a';
|
|
doc.registerElement(name);
|
|
assert_throws('NotSupportedError', function() {
|
|
doc.registerElement(name);
|
|
}, 'Exception should be thrown if definition with the same type already exists');
|
|
}, 'Check duplicate definition');
|
|
|
|
|
|
test(function() {
|
|
var doc = newHTMLDocument();
|
|
var name = 'x-b';
|
|
doc.registerElement(name);
|
|
HTML5_ELEMENTS.forEach(function(tagName) {
|
|
assert_throws('NotSupportedError', function() {
|
|
doc.registerElement(name, {
|
|
extends: tagName
|
|
});
|
|
}, 'Exception should be thrown if definition with the same type already exists');
|
|
});
|
|
}, 'Check duplicate definition. Specify constructor');
|
|
|
|
|
|
test(function() {
|
|
var doc = newHTMLDocument();
|
|
var name = 'x-c';
|
|
doc.registerElement(name, {
|
|
prototype: Object.create(HTMLAnchorElement.prototype),
|
|
extends: 'a'
|
|
});
|
|
HTML5_ELEMENTS.forEach(function(tagName) {
|
|
assert_throws('NotSupportedError', function() {
|
|
doc.registerElement(name, {
|
|
extends: tagName
|
|
});
|
|
}, 'Exception should be thrown if definition with the same type already exists');
|
|
});
|
|
}, 'Check duplicate definition. Test different prototypes and extends');
|
|
</script>
|
|
</body>
|
|
</html>
|