mirror of
https://github.com/servo/servo.git
synced 2025-08-08 15:05:35 +01:00
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:
commit
f60598909a
441 changed files with 3689 additions and 1521 deletions
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -1,3 +0,0 @@
|
|||
BODY {
|
||||
PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #eef0eb; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
@caitp
|
||||
@Manishearth
|
||||
@plehegar
|
||||
@foolip
|
||||
@jungkees
|
||||
@ibelem
|
||||
@mathiasbynens
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
@zqzhang
|
||||
@foolip
|
||||
@dontcallmedom
|
||||
@deniak
|
||||
|
|
|
@ -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,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'>
|
||||
<script>
|
||||
var allowedScriptRan = true;
|
||||
</script>
|
||||
|
||||
<div id='log'></div>
|
||||
|
||||
<script async defer src='../support/checkReport.sub.js?reportExists=false'></script>
|
||||
</body>
|
||||
</html>
|
|
@ -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}}
|
|
@ -1,3 +1,9 @@
|
|||
@deepak-sa
|
||||
@sgrekhov
|
||||
@alsemenov
|
||||
@deepak-sa
|
||||
@domenic
|
||||
@dominiccooney
|
||||
@hayatoito
|
||||
@kojiishi
|
||||
@rniwa
|
||||
@sgrekhov
|
||||
@takayoshikochi
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
@ayg
|
||||
@foolip
|
||||
@jdm
|
||||
@Ms2ger
|
||||
@plehegar
|
||||
|
|
|
@ -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>
|
|
@ -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();
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue