Auto merge of #11048 - servo:wpt-20160506, r=Ms2ger

Update web-platform-tests to revision fab2c513bffb2bd19600d23b495264d123df092f

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11048)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-05-10 01:12:33 -07:00
commit f60598909a
441 changed files with 3689 additions and 1521 deletions

View file

@ -1,64 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> Event dispatch and DOM event flow </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<table id="table" border="1" style="display: none">
<tbody id="table-body">
<tr id="table-row">
<td id="table-cell">Shady Grove</td>
<td>Aeolian</td>
</tr>
<tr id="parent">
<td id="target">Over the river, Charlie</td>
<td>Dorian</td>
</tr>
</tbody>
</table>
<script>
var EVENT = "foo";
var TARGET = document.getElementById("target");
var PARENT = document.getElementById("parent");
var TBODY = document.getElementById("table-body");
var TABLE = document.getElementById("table");
var BODY = document.body;
var HTML = document.documentElement;
var CurrentTargets = [window, document, HTML, BODY, TABLE, TBODY, PARENT, TARGET];
var ExpectResult = CurrentTargets.concat([TARGET, PARENT, TBODY, TABLE, BODY, HTML, document, window]);
var ActualResult = [];
var ExpectPhases = [1,1,1,1,1,1,1,2,2,3,3,3,3,3,3,3,];
var ActualPhases = [];
var description = "Test Description: Dispatch an event in a DOM tree using the DOM event flow.";
test(function()
{
for (var i=0; i < CurrentTargets.length; i++)
{
CurrentTargets[i].addEventListener(EVENT, TestEvent, true);
CurrentTargets[i].addEventListener(EVENT, TestEvent, false);
}
var evt = document.createEvent("Event");
evt.initEvent(EVENT, true, true);
TARGET.dispatchEvent(evt);
assert_array_equals(ActualResult, ExpectResult, "ActualResult");
assert_array_equals(ActualPhases, ExpectPhases, "ActualPhases");
}, description);
function TestEvent(evt)
{
ActualResult.push(evt.currentTarget);
ActualPhases.push(evt.eventPhase);
}
</script>
</body>
</html>

View file

@ -1,60 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> EventLister member: handleEvent() </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<table id="table" border="1" style="display: none">
<tbody id="table-body">
<tr id="table-row">
<td id="table-cell">Shady Grove</td>
<td>Aeolian</td>
</tr>
<tr id="parent">
<td id="target">Over the river, Charlie</td>
<td>Dorian</td>
</tr>
</tbody>
</table>
<script>
var EVENT = "foo";
var TARGET = document.getElementById("target");
var TestResult = false;
var description = "Test Description: " +
"handleEvent - This method shall be called whenever an event occurs of the event type for " +
"which the EventListener interface was registered.";
var EventListener = {};
EventListener.handleEvent = function(evt)
{
if ((EVENT == evt.type) && (TARGET == evt.target) && (this === EventListener))
{
TestResult = true;
}
else
{
TestResult = false;
}
}
test(function()
{
var evt = document.createEvent("Event");
evt.initEvent(EVENT, true, true);
TARGET.addEventListener(EVENT, EventListener, true);
TARGET.dispatchEvent(evt);
TARGET.removeEventListener(EVENT, EventListener, true);
assert_true(TestResult);
}, description);
</script>
</body>
</html>

View file

@ -1,55 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> Multiple dispatchEvent() and stopPropagation() </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<div id="parent" style="display: none">
<input id="target" type="hidden" value=""/>
</div>
<script>
var EVENT = "foo";
var TARGET = document.getElementById("target");
var PARENT = document.getElementById("parent");
var ExpectResult = [TARGET, PARENT, PARENT, document, window];
var ActualResult = [];
var description = "Test Description: " +
"An event object may be properly dispatched multiple times while also allowing to prevent the event objects " +
"propagation prior to the event dispatch.";
test(function()
{
var evt = document.createEvent("Event");
evt.initEvent(EVENT, true, true);
TARGET.addEventListener(EVENT, TestEvent, false);
PARENT.addEventListener(EVENT, TestEvent, false);
document.addEventListener(EVENT, TestEvent, false);
window.addEventListener(EVENT, TestEvent, false);
TARGET.dispatchEvent(evt);
PARENT.dispatchEvent(evt);
document.dispatchEvent(evt);
assert_array_equals(ActualResult, ExpectResult);
}, description);
function TestEvent(evt)
{
ActualResult.push(evt.currentTarget);
if (PARENT == evt.currentTarget)
{
evt.stopPropagation();
}
}
</script>
</body>
</html>

View file

@ -1,32 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> ProcessingInstruction.data and DOMCharacterDataModified event </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<iframe id="helper" style="display: none"></iframe>
<script>
var description = "Test Description: " +
"DOMCharacterDataModified event fires after ProcessingInstruction.data have been modified, " +
"but the node itself has not been inserted or deleted. The proximal event target of this " +
"event shall be the ProcessingInstruction node.";
var t = async_test(description);
var HELPER = document.getElementById("helper");
HELPER.onload = t.step_func(function()
{
assert_true(HELPER.contentWindow.TestResult);
t.done();
});
HELPER.src = "./support/ProcessingInstruction.DOMCharacterDataModified.xml";
</script>
</body>
</html>

View file

@ -1,80 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> MouseEvent: Default action and synthetic click event </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<div style="display: none">
<input type="checkbox" id="target">
<button id="button"> Click Here </button>
</div>
<script>
setup({explicit_done:true});
var EVENT = "click";
var TARGET = document.getElementById("target");
var BUTTON = document.getElementById("button");
var state;
var description = "Test Description: " +
"MouseEvent: Default action is performed when a synthetic click event is dispatched on a checkbox element";
BUTTON.addEventListener(EVENT, TestEvent, true);
TARGET.addEventListener(EVENT, TestEvent, true);
window.onload = function()
{
state = TARGET.checked;
BUTTON.click();
}
function TestEvent(evt)
{
if (BUTTON == evt.target)
{
var e;
test(function()
{
BUTTON.removeEventListener(EVENT, TestEvent, true);
e = document.createEvent("MouseEvent");
e.initMouseEvent(EVENT, /* type */
false, /* bubbles */
true, /* cancelable */
window, /* view */
1, /* detail */
0, /* screenX */
0, /* screenY */
0, /* clientX */
0, /* clientY */
false, /* ctrlKey */
false, /* altKey */
false, /* shiftKey */
false, /* metaKey */
0, /* button */
null /* relatedTarget */);
assert_array_equals([TARGET.checked, e.type, e.bubbles], [state, EVENT, false]);
}, "Checkbox state is unchanged before the synthetic click event is dispatched");
TARGET.dispatchEvent(e);
}
else if (TARGET == evt.target)
{
test(function()
{
assert_array_equals([TARGET.checked, evt.type, evt.bubbles], [!state, EVENT, false]);
}, description);
done();
}
}
</script>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE html>
<title>MutationEvent: DOMNodeInserted Event Type</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<div id="target" style="display: none"></div>
<script>
var EVENT = "DOMNodeInserted";
var TARGET;
var NODE;
var t = async_test("Test Description: DOMNodeInserted event fires when a node has been added as a child of another node.");
TARGET = document.getElementById("target");
TARGET.addEventListener(EVENT, t.step_func(function(evt)
{
assert_equals(evt.type, EVENT);
t.done();
}), true);
NODE = document.createElement("INPUT");
TARGET.appendChild(NODE);
</script>

View file

@ -1,71 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> Event.stopImmediatePropagation() immediate effect </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<table id="table" border="1" style="display: none">
<tbody id="table-body">
<tr id="table-row">
<td id="table-cell">Shady Grove</td>
<td>Aeolian</td>
</tr>
<tr id="parent">
<td id="target">Over the river, Charlie</td>
<td>Dorian</td>
</tr>
</tbody>
</table>
<script>
var EVENT = "foo";
var TARGET = document.getElementById("target");
var PARENT = document.getElementById("parent");
var TBODY = document.getElementById("table-body");
var TABLE = document.getElementById("table");
var BODY = document.body;
var HTML = document.documentElement;
var CurrentTargets = [window, document, HTML, BODY, TABLE, TBODY, PARENT, TARGET];
var ExpectResult = [window, window, document, document, HTML, HTML, BODY, BODY, TABLE];
var ActualResult = [];
var ExpectListeners = [0,1,0,1,0,1,0,1,0];
var ActualListeners = [];
var description = "Test Description: " +
"stopImmediatePropagation() prevents other event listeners from being triggered and, unlike " +
"Event.stopPropagation(), its effect must be immediate. Once it has been called, further calls " +
"to this method have no additional effect.";
test(function()
{
for (var i=0; i < CurrentTargets.length; i++)
{
CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 0)}, true);
CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 1)}, true);
}
var evt = document.createEvent("Event");
evt.initEvent(EVENT, true, true);
TARGET.dispatchEvent(evt);
assert_array_equals(ActualResult, ExpectResult, "ActualResult");
assert_array_equals(ActualListeners, ExpectListeners, "ActualListeners");
}, description);
function TestEvent(evt, i)
{
ActualResult.push(evt.currentTarget);
ActualListeners.push(i);
if ((1 == evt.eventPhase) && (TABLE == evt.currentTarget) && (0 == i))
{
evt.stopImmediatePropagation();
}
}
</script>
</body>
</html>

View file

@ -1,70 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title> Event.stopPropagation() deferred effect </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>
<table id="table" border="1" style="display: none">
<tbody id="table-body">
<tr id="table-row">
<td id="table-cell">Shady Grove</td>
<td>Aeolian</td>
</tr>
<tr id="parent">
<td id="target">Over the river, Charlie</td>
<td>Dorian</td>
</tr>
</tbody>
</table>
<script>
var EVENT = "foo";
var TARGET = document.getElementById("target");
var PARENT = document.getElementById("parent");
var TBODY = document.getElementById("table-body");
var TABLE = document.getElementById("table");
var BODY = document.body;
var HTML = document.documentElement;
var CurrentTargets = [window, document, HTML, BODY, TABLE, TBODY, PARENT, TARGET];
var ExpectResult = [window, window, document, document, HTML, HTML, BODY, BODY, TABLE, TABLE];
var ActualResult = [];
var ExpectListeners = [0,1,0,1,0,1,0,1,0,1];
var ActualListeners = [];
var description = "Test Description: " +
"stopPropagation() prevents other event listeners from being triggered but its effect must be " +
"deferred until all event listeners attached on the Event.currentTarget have been triggered.";
test(function()
{
for (var i=0; i < CurrentTargets.length; i++)
{
CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 0)}, true);
CurrentTargets[i].addEventListener(EVENT, function(e){TestEvent(e, 1)}, true);
}
var evt = document.createEvent("Event");
evt.initEvent(EVENT, true, true);
TARGET.dispatchEvent(evt);
assert_array_equals(ActualResult, ExpectResult, "ActualResult");
assert_array_equals(ActualListeners, ExpectListeners, "ActualListeners");
}, description);
function TestEvent(evt, i)
{
ActualResult.push(evt.currentTarget);
ActualListeners.push(i);
if ((1 == evt.eventPhase) && (TABLE == evt.currentTarget) && (0 == i))
{
evt.stopPropagation();
}
}
</script>
</body>
</html>

View file

@ -1,3 +0,0 @@
BODY {
PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #eef0eb; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}

View file

@ -27,12 +27,13 @@ To get the tests running, you need to set up the test domains in your
following entries are required:
```
127.0.0.1 web-platform.test
127.0.0.1 www.web-platform.test
127.0.0.1 www1.web-platform.test
127.0.0.1 www2.web-platform.test
127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test
127.0.0.1 xn--lve-6lad.web-platform.test
127.0.0.1 web-platform.test
127.0.0.1 www.web-platform.test
127.0.0.1 www1.web-platform.test
127.0.0.1 www2.web-platform.test
127.0.0.1 xn--n8j6ds53lwwkrqhv28a.web-platform.test
127.0.0.1 xn--lve-6lad.web-platform.test
0.0.0.0 nonexistent-origin.web-platform.test
```
Because web-platform-tests uses git submodules, you must ensure that

View file

@ -4,7 +4,6 @@
@caitp
@Manishearth
@plehegar
@foolip
@jungkees
@ibelem
@mathiasbynens

View file

@ -30,18 +30,29 @@
assert_throws("SyntaxError", function() { client.setRequestHeader(name, 'x-value') })
}, "setRequestHeader should throw with header name " + format_value(invalid_headers[i]) + ".")
}
function try_byte_string(name) {
test(function() {
var client = new XMLHttpRequest()
client.open("GET", "...")
assert_throws(new TypeError(), function() { client.setRequestHeader(name, 'x-value') })
}, "setRequestHeader should throw with header name " + format_value(invalid_byte_strings[i]) + ".")
}
var invalid_headers = ["(", ")", "<", ">", "@", ",", ";", ":", "\\",
"\"", "/", "[", "]", "?", "=", "{", "}", " ",
/* HT already tested in the loop below */
"\u007f", "テスト", "", "t\rt", "t\nt", "t: t", "t:t",
"\u007f", "", "t\rt", "t\nt", "t: t", "t:t",
"t<t", "t t", " tt", ":tt", "\ttt", "\vtt", "t\0t",
"t\"t", "t,t", "t;t", "()[]{}", "a?B", "X-テスト", "a=B"]
"t\"t", "t,t", "t;t", "()[]{}", "a?B", "a=B"]
var invalid_byte_strings = ["テスト", "X-テスト"]
for (var i = 0; i < 32; ++i) {
invalid_headers.push(String.fromCharCode(i))
}
for (var i = 0; i < invalid_headers.length; ++i) {
try_name(invalid_headers[i])
}
for (var i = 0; i < invalid_byte_strings.length; ++i) {
try_byte_string(invalid_byte_strings[i])
}
</script>
</body>

View file

@ -1,4 +1,3 @@
@zqzhang
@foolip
@dontcallmedom
@deniak

View file

@ -0,0 +1,27 @@
<!DOCTYPE HTML>
<html>
<head>
<title>no default src doesn't behave exactly like *</title>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<script src="../support/alertAssert.sub.js?alerts=[]"> </script>
<script src='positiveTest.js'></script>
<!-- enforcing policy: foobar; report-uri ...
-->
</head>
<body>
<h1>no default src doesn't behave exactly like *</h1>
This page has a CSP header but an unknown directive.
This should have no impact on an img loaded from a data:
uri, or an inline script, although that would be blocked by a default-src policy of *.
<br>
<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAABACAIAAAABPqsMAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QoMCC8h3if5rgAAAB10RVh0Q29tbWVudABDcmVhdGVkIHdpdGggVGhlIEdJTVDvZCVuAAAGD0lEQVR42u2aa0yTVxiA39ILxa4KIkKrVCCIitzrqkAXQiXDSFjQHyZDBRRdtoDzgooao5uaoInID4hRJFC8RBOzxQuKigyYokuDSB0WlaJQlQrITRCwte1+nKVhpbT9aGUue59fb84573dO+uR7v/drS4OfAPkf4oQfAYpHUDyC4hEUj6B4BMUjKB5B8QiKR1A8guIRFI+geATFIygeQfEIikdQPEIVxmd1GsN+w9hBrV7bN9Kn7FHWqmqLHxY3vW2ycIWtS7Yeiz9G4h0VO47eO2rj1p4cz7WhayW+kuCZwdNdpjsznIe0Q53vO1X9qsbOxrr2uprWmrb+Nofn/lvQPqs/W5oVb0KBrCDrVpZGpzE7++iHR8Ezg0ms6FIsPL7Qho+Ali3O3h+zn81gW1n5M82BuVjqqZEpyjyVeMrs1CL+IqN1AAj0CBTNElm9YGFiYc7SHKvmHJ6Lpd7K/cF0YvK5/KV+S3eLd/tP9weAlNAUaYO0qrXKJGtd2DoS6A16J5oTGZG9llnYKDEgcUPEBhI/636WL8uvelHV1t82rB1mM9geHA8fV58QzxAhTxjjE+PAXCz15ku92cLIZXFr1tWEe4UDwLk/z635dc3oWWe6s3q72o3tBgD7qvYdiD0AAH0jfbxc3sjHkfF2LF9dvsx/GQDcbLmZdCHJwkrH5mKpp8CAZiC7IpvEUd5RJrMrFqwg1pU9ykO/H2rpbQEAV7brygUrLVxz8ezFJNh2cxtVc/bkonhq3Ht5jwReX3iNV+elDVIDGKQNUpNxs0x1nkoCZY+S6mHsyUXxE30oGP7R/3tP9Y7ziyNP91J5KQCUNpTqDXoAkPhKBNME412ne6ibBEEzg6iewZ5cFE8NY4XveN8xejw1LJV0cxXPK169ewUAL9+9vP38NgA40ZxSQ1OtlpDCxMI50+ZMrPxMIBfFU4DD5ByOO2zyoRPSwtJIUPyw2DhojNPC0mhg/jU67488AxgAQMgTNv/YfPXbq5miTNEskQvDxep57MnFrt56V890YvK4vFif2D1f7QlwDyCDcafjKl9UkjhmTkx1WjUA9Az38HP5H3Qfxvb5saWx1a3VZjfdsmRL7te5pGAY0Rl0ii7FnbY7l55cqnxRSZ4ajs1F8WbEW8bkXU6aJCXFvEBWsKl80+iVBcsLMr7MAIDT8tOpl8Yt+JGzIw9KDkp8JWYLg7JHmXUr68rTKw7PRfEUxJ98cHJz+Wbjbc1lcdXb1RwmBwCEhcJ6df3oxUKesO67OgAY0g55HfUa0AxYuLJgmmD53OVigTiCFxHgHkCn0UfP7rq960jtkU+Ri+LH/ZGmf6S/pbelVlVb0lDS2Nk4ejY9PL3omyIAkHfIw06EjU2Xfy8P8QwBgI1XNxbVF9l4EheGi5AvTJibkB6R7jHFAwAMYBAXi016C4fn4jPe1p807q6/G+0dbWMTHl0cTfVIbmy3suQy8jZxUXFx1cVVk5OLXb0lAtwDbLROXgWNvaHt9I70ZlzPILFYIJ60XBRvCcvfytm/ntDU9fc/AEjdnrTcTwrjv2udTqOnhKaQOOlC0uWnl8dbmTA3oSy5DABSQlP2/rZXZ9BR2mjejHkksNwbOjwX73jzxPvH87l8AOh433Gt+ZqFlTeUN9SDagDgc/nx/vGUdpnCnJIXn0fiB+0PJi0X73jrdfvso7Mf9R8trNQZdGfkZ3ZG7yRZ15uvG6dUW1W1qtp6db2iS9HW36YeUA9qBrV6LYfJ8XPzk/hKMkWZfm5+ZLHJS4E9udjVT7Crd3dxb89qZ9FZABB0POhx12PL6+fPmN+U0QQAGp2Gn8vvHu6m9JWR2bbcnlws9RNkdchqYl32WmbVOgA8efvk/qv7AMCis5KDkyntpdFpcu7mJP+SPIFz2pOLpd5SnS9pKLExpeRhSeTsSABYH74+X5ZPBgV5gijvqAheRKBHoI+rD4/L47K4TDpzWDv8ZvCNoktR3Vp9vvF8+0D72Avak4ulHsFSj6B4BMUjKB5B8QiKR1A8guIRFI+geATFo3gExSMoHkHxCIpHUDyC4hEUj6B45HPmL9so2ZKs94sNAAAAAElFTkSuQmCC'>
<script>
var allowedScriptRan = true;
</script>
<div id='log'></div>
<script async defer src='../support/checkReport.sub.js?reportExists=false'></script>
</body>
</html>

View file

@ -0,0 +1,6 @@
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0, false
Pragma: no-cache
Set-Cookie: no-default-src={{$id:uuid()}}; Path=/content-security-policy/generic/
Content-Security-Policy: foobar; report-uri ../support/report.py?op=put&reportID={{$id}}

View file

@ -1,3 +1,9 @@
@deepak-sa
@sgrekhov
@alsemenov
@deepak-sa
@domenic
@dominiccooney
@hayatoito
@kojiishi
@rniwa
@sgrekhov
@takayoshikochi

View file

@ -1,5 +1,4 @@
@ayg
@foolip
@jdm
@Ms2ger
@plehegar

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>DOMTokenList coverage for attributes</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
"use strict";
var pairs = [
// Defined in DOM
{attr: "classList", sup: ["anyElement"]},
// Defined in HTML
{attr: "dropzone", sup: ["anyHTMLElement"]},
{attr: "headers", sup: ["td", "th"]},
{attr: "htmlFor", sup: ["output"]},
{attr: "ping", sup: ["a", "area"]},
{attr: "relList", sup: ["a", "area", "link"]},
{attr: "sandbox", sup: ["iframe"]},
{attr: "sizes", sup: ["link"]}
];
var namespaces = [
"http://www.w3.org/1999/xhtml",
"http://www.w3.org/2000/svg",
"http://www.w3.org/1998/Math/MathML",
"http://example.com/",
""
];
var elements = ["a", "area", "link", "iframe", "output", "td", "th"];
function testAttr(pair, new_el){
return (pair.attr === "classList" || (new_el.namespaceURI === "http://www.w3.org/1999/xhtml" && (pair.attr === "dropzone" || pair.sup.indexOf(new_el.localName) != -1)));
}
pairs.forEach(function(pair) {
namespaces.forEach(function(ns) {
elements.forEach(function(el) {
var new_el = document.createElementNS(ns, el);
if (testAttr(pair, new_el)) {
test(function() {
assert_class_string(new_el[pair.attr], "DOMTokenList");
}, new_el.localName + "." + pair.attr + " in " + new_el.namespaceURI + " namespace should be DOMTokenList.");
}
else {
test(function() {
assert_equals(new_el[pair.attr], undefined);
}, new_el.localName + "." + pair.attr + " in " + new_el.namespaceURI + " namespace should be undefined.");
}
});
});
});
</script>

View file

@ -1,5 +1,5 @@
<!doctype html>
<title>document.characterSet and inputEncoding normalization tests</title>
<title>document.characterSet (inputEncoding and charset as aliases) normalization tests</title>
<link rel=author title="Aryeh Gregor" href=ayg@aryeh.name>
<meta name=timeout content=long>
<div id=log></div>
@ -11,7 +11,7 @@
// Taken straight from https://encoding.spec.whatwg.org/
var encodingMap = {
"utf-8": [
"UTF-8": [
"unicode-1-1-utf-8",
"utf-8",
"utf8",
@ -21,13 +21,13 @@ var encodingMap = {
"utf-16le",
"utf-16be",
],
"ibm866": [
"IBM866": [
"866",
"cp866",
"csibm866",
"ibm866",
],
"iso-8859-2": [
"ISO-8859-2": [
"csisolatin2",
"iso-8859-2",
"iso-ir-101",
@ -38,7 +38,7 @@ var encodingMap = {
"l2",
"latin2",
],
"iso-8859-3": [
"ISO-8859-3": [
"csisolatin3",
"iso-8859-3",
"iso-ir-109",
@ -49,7 +49,7 @@ var encodingMap = {
"l3",
"latin3",
],
"iso-8859-4": [
"ISO-8859-4": [
"csisolatin4",
"iso-8859-4",
"iso-ir-110",
@ -60,7 +60,7 @@ var encodingMap = {
"l4",
"latin4",
],
"iso-8859-5": [
"ISO-8859-5": [
"csisolatincyrillic",
"cyrillic",
"iso-8859-5",
@ -70,7 +70,7 @@ var encodingMap = {
"iso_8859-5",
"iso_8859-5:1988",
],
"iso-8859-6": [
"ISO-8859-6": [
"arabic",
"asmo-708",
"csiso88596e",
@ -86,7 +86,7 @@ var encodingMap = {
"iso_8859-6",
"iso_8859-6:1987",
],
"iso-8859-7": [
"ISO-8859-7": [
"csisolatingreek",
"ecma-118",
"elot_928",
@ -100,7 +100,7 @@ var encodingMap = {
"iso_8859-7:1987",
"sun_eu_greek",
],
"iso-8859-8": [
"ISO-8859-8": [
"csiso88598e",
"csisolatinhebrew",
"hebrew",
@ -113,12 +113,12 @@ var encodingMap = {
"iso_8859-8:1988",
"visual",
],
"iso-8859-8-i": [
"ISO-8859-8-I": [
"csiso88598i",
"iso-8859-8-i",
"logical",
],
"iso-8859-10": [
"ISO-8859-10": [
"csisolatin6",
"iso-8859-10",
"iso-ir-157",
@ -127,17 +127,17 @@ var encodingMap = {
"l6",
"latin6",
],
"iso-8859-13": [
"ISO-8859-13": [
"iso-8859-13",
"iso8859-13",
"iso885913",
],
"iso-8859-14": [
"ISO-8859-14": [
"iso-8859-14",
"iso8859-14",
"iso885914",
],
"iso-8859-15": [
"ISO-8859-15": [
"csisolatin9",
"iso-8859-15",
"iso8859-15",
@ -145,17 +145,18 @@ var encodingMap = {
"iso_8859-15",
"l9",
],
"iso-8859-16": [
"ISO-8859-16": [
"iso-8859-16",
],
"koi8-r": [
"KOI8-R": [
"cskoi8r",
"koi",
"koi8",
"koi8-r",
"koi8_r",
],
"koi8-u": [
"KOI8-U": [
"koi8-ru",
"koi8-u",
],
"macintosh": [
@ -247,7 +248,7 @@ var encodingMap = {
"x-mac-cyrillic",
"x-mac-ukrainian",
],
"gbk": [
"GBK": [
"chinese",
"csgb2312",
"csiso58gb231280",
@ -261,26 +262,23 @@ var encodingMap = {
"gb18030": [
"gb18030",
],
"hz-gb-2312": [
"hz-gb-2312",
],
"big5": [
"Big5": [
"big5",
"big5-hkscs",
"cn-big5",
"csbig5",
"x-x-big5",
],
"euc-jp": [
"EUC-JP": [
"cseucpkdfmtjapanese",
"euc-jp",
"x-euc-jp",
],
"iso-2022-jp": [
"ISO-2022-JP": [
"csiso2022jp",
"iso-2022-jp",
],
"shift_jis": [
"Shift_JIS": [
"csshiftjis",
"ms932",
"ms_kanji",
@ -290,7 +288,7 @@ var encodingMap = {
"windows-31j",
"x-sjis",
],
"euc-kr": [
"EUC-KR": [
"cseuckr",
"csksc56011987",
"euc-kr",
@ -304,6 +302,7 @@ var encodingMap = {
],
"replacement": [
"csiso2022kr",
"hz-gb-2312",
"iso-2022-cn",
"iso-2022-cn-ext",
"iso-2022-kr",
@ -342,16 +341,6 @@ Object.keys(encodingMap).forEach(function(name) {
}
});
function expected_case(encoding_label) {
if (encoding_label === 'big5') {
return 'Big5';
}
if (encoding_label === 'shift_jis') {
return 'Shift_JIS';
}
return encoding_label.toUpperCase();
}
Object.keys(encodingMap).forEach(function(name) {
encodingMap[name].forEach(function(label) {
var iframe = document.createElement("iframe");
@ -361,20 +350,16 @@ Object.keys(encodingMap).forEach(function(name) {
" has label " + format_value(label) + " (inputEncoding)");
var t3 = async_test("Name " + format_value(name) +
" has label " + format_value(label) + " (charset)");
/*
iframe.src = "data:text/html,<!doctype html>" +
'<meta charset="' + label + '">';
*/
iframe.src = "encoding.py?label=" + label;
iframe.onload = function() {
t.step(function() {
assert_equals(iframe.contentDocument.characterSet, expected_case(name));
assert_equals(iframe.contentDocument.characterSet, name);
});
t2.step(function() {
assert_equals(iframe.contentDocument.inputEncoding, expected_case(name));
assert_equals(iframe.contentDocument.inputEncoding, name);
});
t3.step(function() {
assert_equals(iframe.contentDocument.charset, expected_case(name));
assert_equals(iframe.contentDocument.charset, name);
});
document.body.removeChild(iframe);
t.done();

View file

@ -2,14 +2,14 @@
<title>BMP document.contentType === 'image/bmp'</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<iframe style="display:none"></iframe>
<div id=log></div>
<script>
async_test(function() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframe = document.createElement('iframe');
iframe.addEventListener('load', this.step_func_done(function() {
assert_equals(iframe.contentDocument.contentType, "image/bmp");
}), false);
iframe.src = "../resources/t.bmp";
document.body.appendChild(iframe);
});
</script>

View file

@ -3,13 +3,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe style="display:none"></iframe>
<script>
async_test(function() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframe = document.createElement('iframe');
iframe.addEventListener('load', this.step_func_done(function() {
assert_equals(iframe.contentDocument.contentType, "text/css");
}), false);
iframe.src = "../resources/style.css";
document.body.appendChild(iframe);
});
</script>

View file

@ -3,13 +3,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe style="display:none"></iframe>
<script>
async_test(function() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframe = document.createElement('iframe');
iframe.addEventListener('load', this.step_func_done(function() {
assert_equals(iframe.contentDocument.contentType, "text/plain");
}), false);
iframe.src = "data:;,<!DOCTYPE html>";
document.body.appendChild(iframe);
});
</script>

View file

@ -3,13 +3,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe style="display:none"></iframe>
<script>
async_test(function() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframe = document.createElement('iframe');
iframe.addEventListener('load', this.step_func_done(function() {
assert_equals(iframe.contentDocument.contentType, "text/html");
}), false);
iframe.src = "data:text/html;charset=utf-8,<!DOCTYPE html>";
document.body.appendChild(iframe);
});
</script>

View file

@ -3,13 +3,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe style="display:none"></iframe>
<script>
async_test(function() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframe = document.createElement('iframe');
iframe.addEventListener('load', this.step_func_done(function() {
assert_equals(iframe.contentDocument.contentType, "image/gif");
}), false);
iframe.src = "../resources/t.gif";
document.body.appendChild(iframe);
});
</script>

View file

@ -3,13 +3,13 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<iframe style="display:none"></iframe>
<script>
async_test(function() {
var iframe = document.getElementsByTagName('iframe')[0];
var iframe = document.createElement('iframe');
iframe.addEventListener('load', this.step_func_done(function() {
assert_equals(iframe.contentDocument.contentType, "text/html");
}), false);
iframe.src = "../resources/blob.htm";
document.body.appendChild(iframe);
});
</script>

Some files were not shown because too many files have changed in this diff Show more