Update web-platform-tests to revision 386d27678c48bf468b8d374e2ba718e32185a5b7

This commit is contained in:
WPT Sync Bot 2019-04-11 22:38:06 -04:00
parent c24420ddbe
commit dd79cdc697
32 changed files with 336 additions and 167 deletions

View file

@ -136601,6 +136601,18 @@
{}
]
],
"css/css-scoping/reslot-text-inheritance.html": [
[
"css/css-scoping/reslot-text-inheritance.html",
[
[
"/css/css-scoping/reference/green-text.html",
"=="
]
],
{}
]
],
"css/css-scoping/shadow-assign-dynamic-001.html": [
[
"css/css-scoping/shadow-assign-dynamic-001.html",
@ -196479,6 +196491,18 @@
{}
]
],
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001.html": [
[
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001.html",
[
[
"/html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001-ref.html",
"=="
]
],
{}
]
],
"infrastructure/assumptions/ahem.html": [
[
"infrastructure/assumptions/ahem.html",
@ -201804,18 +201828,6 @@
],
{}
]
],
"xhtml/adopt-while-parsing-001.html": [
[
"xhtml/adopt-while-parsing-001.html",
[
[
"/xhtml/adopt-while-parsing-001-ref.html",
"=="
]
],
{}
]
]
},
"reftest_node": {
@ -272900,6 +272912,11 @@
{}
]
],
"css/css-scoping/reference/green-text.html": [
[
{}
]
],
"css/css-scoping/resources/host-green-box.css": [
[
{}
@ -304445,6 +304462,16 @@
{}
]
],
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001-ref.html": [
[
{}
]
],
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing.xhtml": [
[
{}
]
],
"html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm": [
[
{}
@ -316430,11 +316457,21 @@
{}
]
],
"service-workers/service-worker/resources/import-scripts-diff-resource-map-worker.js": [
[
{}
]
],
"service-workers/service-worker/resources/import-scripts-echo.py": [
[
{}
]
],
"service-workers/service-worker/resources/import-scripts-get.py": [
[
{}
]
],
"service-workers/service-worker/resources/import-scripts-mime-types-worker.js": [
[
{}
@ -332059,16 +332096,6 @@
[
{}
]
],
"xhtml/adopt-while-parsing-001-ref.html": [
[
{}
]
],
"xhtml/adopt-while-parsing.xhtml": [
[
{}
]
]
},
"testharness": {
@ -599470,6 +599497,14 @@
"24b5e0d5f53d8fab39a2d1699f77ccef417ef6b6",
"support"
],
"css/css-scoping/reference/green-text.html": [
"95736b4484dc020f02000fc327ae87494f491d48",
"support"
],
"css/css-scoping/reslot-text-inheritance.html": [
"43711c83bd160825caf1d89c7599f3df1ae64508",
"reftest"
],
"css/css-scoping/resources/host-green-box.css": [
"a77b3fdc6432ea324e1601b99e901611d76098b0",
"support"
@ -640775,7 +640810,7 @@
"support"
],
"docs/_running-tests/safari.md": [
"ca73fd6073d6378ccd734598497c5c14dde90d40",
"e81383d498c57af0a64b05947e04bbaa2928efc5",
"support"
],
"docs/_writing-tests/ahem.md": [
@ -641019,7 +641054,7 @@
"testharness"
],
"dom/events/Event-dispatch-handlers-changed.html": [
"b325d5c5dc6b62cfb434a89e99004257c6982a57",
"24e6fd70cb4ec4d44905ba8624280a526ef888c6",
"testharness"
],
"dom/events/Event-dispatch-listener-order.window.js": [
@ -667098,6 +667133,18 @@
"870ff58a34277ed367f3f9a9d58f6abcb44293c3",
"support"
],
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001-ref.html": [
"5b512e72f5a1f3780c9c38be79968b095c277a39",
"support"
],
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing-001.html": [
"74018b4ad0f342aa5b38ad337ce9329e6d92545d",
"reftest"
],
"html/the-xhtml-syntax/parsing-xhtml-documents/adopt-while-parsing.xhtml": [
"2d85d21558b1778e17376d12424f81c703c0c262",
"support"
],
"html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm": [
"4025e2a477fde1dbeb170e7248032e221efdb62f",
"testharness"
@ -682571,7 +682618,7 @@
"manual"
],
"payment-request/show-method-optional-promise-resolves-manual.https.html": [
"d41b1b39c988d68f26ee419c94dd549895ccbf13",
"4732a23abd1d12c4d21ab86818bda9070994db74",
"manual"
],
"payment-request/show-method-postmessage-iframe.html": [
@ -696755,7 +696802,7 @@
"testharness"
],
"service-workers/service-worker/import-scripts-resource-map.https.html": [
"a5e26785fac4aa1267762ff58c48969dc8acb017",
"4742bd01268360477bf6061f8505fe9a3b7cadb7",
"testharness"
],
"service-workers/service-worker/import-scripts-updated-flag.https.html": [
@ -697646,10 +697693,18 @@
"063a62d03143a32f44365bf1e7b08d283ae52895",
"support"
],
"service-workers/service-worker/resources/import-scripts-diff-resource-map-worker.js": [
"0fdcb0fcf80ad7f0dffa284c5b77178bdad95ef6",
"support"
],
"service-workers/service-worker/resources/import-scripts-echo.py": [
"7d92794e31b6b1270db26779f63644ac42a3d3d6",
"support"
],
"service-workers/service-worker/resources/import-scripts-get.py": [
"9e376bc092889f1b231628ec7c17339674d284f4",
"support"
],
"service-workers/service-worker/resources/import-scripts-mime-types-worker.js": [
"2c585ac1060a88c4f3eeac6b6a81bbb4e0c30280",
"support"
@ -704351,7 +704406,7 @@
"support"
],
"tools/ci/azure/install_safari.yml": [
"88381085665fe71c40933a5ad4a59cbe15463236",
"be18f8376467b516a68e026c493b8fb679697236",
"support"
],
"tools/ci/azure/pip_install.yml": [
@ -709755,7 +709810,7 @@
"support"
],
"tools/wptrunner/wptrunner/update/metadata.py": [
"d7e8ba2b47c12731ac80dc33ade34cc03299d582",
"62569fbd9ff27e44adacc652b3f9c409f6ce8df6",
"support"
],
"tools/wptrunner/wptrunner/update/state.py": [
@ -710367,7 +710422,7 @@
"testharness"
],
"trusted-types/block-string-assignment-to-Document-write.tentative.html": [
"5fa0b194df60c28dad98da828f5d22694d966e0f",
"845df475fa0c8833c63b4db7992cde1a804635f9",
"testharness"
],
"trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html": [
@ -712547,11 +712602,11 @@
"support"
],
"wasm/jsapi/bad-imports.js": [
"f076baacca8b3e6addf49f6841874d11bfcfe5a2",
"6c7d8056c7ba7076bbbccedc6ca9c4e9d2b73f1c",
"support"
],
"wasm/jsapi/constructor/compile.any.js": [
"f0d6f7aee4cc21169fb715e3fd1e652cd699ca7e",
"1442cfccdf1b9c6aaeda2c1fa5af30ff0c89ea09",
"testharness"
],
"wasm/jsapi/constructor/instantiate-bad-imports.any.js": [
@ -712559,7 +712614,7 @@
"testharness"
],
"wasm/jsapi/constructor/instantiate.any.js": [
"97350c5acd2c4e7d6380538ed7983ff5c53e5bf5",
"356f87d02d34b0483944f993146927985e5867f6",
"testharness"
],
"wasm/jsapi/constructor/validate.any.js": [
@ -723703,7 +723758,7 @@
"support"
],
"xhr/resources/authentication.py": [
"f5bef5ba8262fbd51c4d907a9805a271cc19baa9",
"618d285cf6e305cc301a821a9e89012dd5ca559e",
"support"
],
"xhr/resources/base.xml": [
@ -724497,18 +724552,6 @@
"xhr/xmlhttprequest-unsent.htm": [
"eb52d63eef971895f69f1b0151baa457250dd452",
"testharness"
],
"xhtml/adopt-while-parsing-001-ref.html": [
"5b512e72f5a1f3780c9c38be79968b095c277a39",
"support"
],
"xhtml/adopt-while-parsing-001.html": [
"74018b4ad0f342aa5b38ad337ce9329e6d92545d",
"reftest"
],
"xhtml/adopt-while-parsing.xhtml": [
"2d85d21558b1778e17376d12424f81c703c0c262",
"support"
]
},
"url_base": "/",

View file

@ -74,6 +74,3 @@
[opacity end]
expected: FAIL
[outline-width end]
expected: FAIL

View file

@ -0,0 +1,4 @@
[Event-dispatch-handlers-changed.html]
[ Dispatch additional events inside an event listener ]
expected: FAIL

View file

@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest]
expected: CRASH
expected: TIMEOUT
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@ -55,10 +55,10 @@
expected: FAIL
[windows-1252: iso_8859-1:1987 (XMLHttpRequest)]
expected: TIMEOUT
expected: FAIL
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
expected: FAIL
expected: TIMEOUT
[windows-1254: windows-1254 (XMLHttpRequest)]
expected: TIMEOUT
@ -66,15 +66,9 @@
[windows-1257: cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: l5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: x-cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: latin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1255: cp1255 (XMLHttpRequest)]
expected: TIMEOUT
@ -93,9 +87,6 @@
[windows-1257: x-cp1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: x-cp1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso88599 (XMLHttpRequest)]
expected: TIMEOUT
@ -105,9 +96,6 @@
[windows-1254: csisolatin5 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: cp1254 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso8859-9 (XMLHttpRequest)]
expected: TIMEOUT
@ -120,28 +108,22 @@
[windows-1257: windows-1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: iso_8859-1 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: windows-1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1253: cp1253 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: x-cp1252 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1258: windows-1258 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: l1 (XMLHttpRequest)]
[windows-1256: cp1256 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: windows-1252 (XMLHttpRequest)]
[x-mac-cyrillic: x-mac-ukrainian (XMLHttpRequest)]
expected: TIMEOUT
[windows-1252: us-ascii (XMLHttpRequest)]
[windows-1255: x-cp1255 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: x-cp1256 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1256: windows-1256 (XMLHttpRequest)]
expected: TIMEOUT

View file

@ -312,6 +312,3 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL

View file

@ -0,0 +1,5 @@
[javascript-url-abort-return-value-undefined.tentative.html]
expected: TIMEOUT
[Not aborting fetch for javascript:undefined navigation]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

@ -0,0 +1,2 @@
[adopt-while-parsing-001.html]
expected: TIMEOUT

View file

@ -77,6 +77,12 @@
[Empty buffer]
expected: FAIL
[Synchronous options handling: Module argument]
expected: FAIL
[Synchronous options handling: Buffer argument]
expected: FAIL
[instantiate.any.worker.html]
[Invalid arguments]
@ -157,3 +163,9 @@
[Empty buffer]
expected: FAIL
[Synchronous options handling: Module argument]
expected: FAIL
[Synchronous options handling: Buffer argument]
expected: FAIL

View file

@ -1,4 +0,0 @@
[send-authentication-basic-setrequestheader-existing-session.htm]
[XMLHttpRequest: send() - "Basic" authenticated request using setRequestHeader() when there is an existing session]
expected: FAIL

View file

@ -1,4 +0,0 @@
[send-authentication-basic.htm]
[XMLHttpRequest: send() - "Basic" authenticated requests with user name and password passed to open()]
expected: FAIL

View file

@ -11,30 +11,3 @@
[XMLHttpRequest user/pass options: user/pass in URL; pass in open()]
expected: FAIL
[XMLHttpRequest user/pass options: user in URL]
expected: FAIL
[XMLHttpRequest user/pass options: pass in URL, user/pass in open()]
expected: FAIL
[XMLHttpRequest user/pass options: user in URL; user/pass in open()]
expected: FAIL
[XMLHttpRequest user/pass options: user/pass in open()]
expected: FAIL
[XMLHttpRequest user/pass options: user/pass in URL]
expected: FAIL
[XMLHttpRequest user/pass options: user/pass in URL and open()]
expected: FAIL
[XMLHttpRequest user/pass options: user in URL and open()]
expected: FAIL
[XMLHttpRequest user/pass options: another user/pass in open(); must override cached credentials from previous test]
expected: FAIL
[XMLHttpRequest user/pass options: user in open()]
expected: FAIL

View file

@ -1,2 +0,0 @@
[transition_calc_implicit.html]
expected: TIMEOUT

View file

@ -0,0 +1,3 @@
<!doctype html>
<title>CSS Test: Reference</title>
<p style="color:green">This text should be green.</p>

View file

@ -0,0 +1,17 @@
<!doctype html>
<html class="reftest-wait">
<title>CSS Test: Re-slotted text node inheritance</title>
<link rel="help" href="https://drafts.csswg.org/css-scoping/#slotted-pseudo">
<link rel="match" href="reference/green-text.html">
<script src="/common/reftest-wait.js"></script>
<p id="host">This text should be green.</p>
<script>
const root = host.attachShadow({mode:"open"});
root.innerHTML = `
<slot style="color:green" name="no-match"></slot>
<slot style="color:red"></slot>
`;
host.offsetTop;
root.querySelector("slot").removeAttribute("name");
takeScreenshot();
</script>

View file

@ -2,21 +2,22 @@
layout: page
title: Safari
---
To run Safari on macOS, some manual setup is required:
To run Safari on macOS, some manual setup is required. Some steps are different
for Safari and Safari Technology Preview, in which case only step is needed.
* Allow Safari to be controlled by SafariDriver: `safaridriver --enable`
* Allow Safari to be controlled by SafariDriver:
* `safaridriver --enable` or
* `"/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --enable`
* Allow pop-up windows:
`defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically 1`
* `defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically 1` or
* `defaults write com.apple.SafariTechnologyPreview WebKitJavaScriptCanOpenWindowsAutomatically 1`
* Turn on experimental features that are "off" by default:
* `defaults write com.apple.Safari ExperimentalServerTimingEnabled -bool true`
[//]: # (TODO\(cvazac\) Remove this if/when Server-Timing is enabled by default in Safari)
* Turn on additional experimental features Safari Technology Preview:
* `defaults write com.apple.SafariTechnologyPreview ExperimentalServerTimingEnabled 1`
* Trust the certificate:
`security add-trusted-cert -k "$(security default-keychain | cut -d\" -f2)" tools/certs/cacert.pem`
* `security add-trusted-cert -k "$(security default-keychain | cut -d\" -f2)" tools/certs/cacert.pem`
* Set `no_proxy='*'` in your environment. This is a
workaround for a known

View file

@ -20,7 +20,7 @@
</table>
<script>
async_test(function() {
test(function() {
var event_type = "bar";
var target = document.getElementById("target");
var parent = document.getElementById("parent");
@ -39,6 +39,7 @@ async_test(function() {
parent,
target,
target,
target, // The additional listener for target runs as we copy its listeners twice
parent,
tbody,
table,
@ -47,7 +48,7 @@ async_test(function() {
document,
window
];
var expected_listeners = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1];
var expected_listeners = [0,0,0,0,0,0,0,0,1,3,1,1,1,1,1,1,1];
var actual_targets = [], actual_listeners = [];
var test_event_function = function(i) {
@ -86,7 +87,5 @@ async_test(function() {
assert_array_equals(actual_targets, expected_targets, "actual_targets");
assert_array_equals(actual_listeners, expected_listeners, "actual_listeners");
this.done();
});
</script>

View file

@ -180,12 +180,13 @@ function runUpdateDetailsAlgorithm(
details,
options = {
requestShipping: true,
}
},
initialDetails = failDetails,
) {
const testAssertion = buttonElement.textContent.trim();
buttonElement.disabled = true;
promise_test(async t => {
const request = new PaymentRequest(validMethods, failDetails, options);
const request = new PaymentRequest(validMethods, initialDetails, options);
const detailsPromise = Promise.resolve(details);
const acceptPromise = request.show(detailsPromise);
assert_equals(request.id, "this cannot be changed", "id must never change.");
@ -315,6 +316,18 @@ function runUpdateDetailsAlgorithm(
When the payment sheet is shown, there should not be any errors shown.
</button>
</li>
<li>
<button onclick="
const initialDetails = {total: passTotal, id: 'this cannot be changed'};
const updatedDetails = {};
runUpdateDetailsAlgorithm(
this, updatedDetails, {requestShipping: false}, initialDetails);
">
Resolving the show promise with empty details will preserve the details from
the constructor. When the payment sheet is shown, the string
"✅ TEST HAS PASSED ✅" should be shown.
</button>
</li>
<li>
<button onclick="done();">Done!</button>
</li>

View file

@ -1,5 +1,5 @@
<!DOCTYPE html>
<meta charset="utf-8">
<meta charset="utf-8" />
<title>Tests for importScripts: script resource map</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@ -10,14 +10,25 @@
// script should be stored on the first import and thereafter that stored
// script should be loaded. The worker asserts that the stored script was
// loaded; if the assert fails then registration fails.
promise_test(t => {
const scope = 'resources/import-scripts-resource-map';
return service_worker_unregister(t, scope)
.then(() => {
return navigator.serviceWorker.register(
'resources/import-scripts-resource-map-worker.js', {scope: scope});
})
.then(r => r.unregister());
}, 'import the same script URL multiple times');
promise_test(async t => {
const SCOPE = "resources/import-scripts-resource-map";
const SCRIPT = "resources/import-scripts-resource-map-worker.js";
await service_worker_unregister(t, SCOPE);
const registration = await navigator.serviceWorker.register(SCRIPT, {
scope: SCOPE
});
await registration.unregister();
}, "import the same script URL multiple times");
promise_test(async t => {
const SCOPE = "resources/import-scripts-diff-resource-map";
const SCRIPT = "resources/import-scripts-diff-resource-map-worker.js";
await service_worker_unregister(t, SCOPE);
const registration = await navigator.serviceWorker.register(SCRIPT, {
scope: SCOPE
});
await registration.unregister();
}, "call importScripts() with multiple arguments");
</script>
</body>

View file

@ -0,0 +1,10 @@
importScripts('/resources/testharness.js');
let echo1 = null;
let echo2 = null;
let arg1 = 'import-scripts-get.py?output=echo1&msg=test1';
let arg2 = 'import-scripts-get.py?output=echo2&msg=test2';
importScripts(arg1, arg2);
assert_equals(echo1, 'test1');
assert_equals(echo2, 'test2');

View file

@ -0,0 +1,6 @@
def main(req, res):
return ([
('Cache-Control', 'no-cache, must-revalidate'),
('Pragma', 'no-cache'),
('Content-Type', 'application/javascript')],
'%s = "%s";\n' % (req.GET['output'], req.GET['msg']))

View file

@ -1,19 +1,19 @@
parameters:
channel: preview
# Should match https://web-platform-tests.org/running-tests/safari.html
steps:
- ${{ if eq(parameters.channel, 'preview') }}:
- script: |
# This is equivalent to `Homebrew/homebrew-cask-versions/safari-technology-preview`,
# but the raw URL is used to bypass caching.
HOMEBREW_NO_AUTO_UPDATE=1 brew cask install https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/safari-technology-preview.rb
# https://web-platform-tests.org/running-tests/safari.html
sudo "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver" --enable
defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically 1
defaults write com.apple.SafariTechnologyPreview WebKitJavaScriptCanOpenWindowsAutomatically 1
defaults write com.apple.SafariTechnologyPreview ExperimentalServerTimingEnabled 1
displayName: 'Install Safari Technology Preview'
- ${{ if eq(parameters.channel, 'stable') }}:
- script: |
# https://web-platform-tests.org/running-tests/safari.html
sudo safaridriver --enable
defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically 1
displayName: 'Configure Safari'

View file

@ -11,7 +11,7 @@ class GetUpdatePropertyList(Step):
def create(self, state):
property_order, boolean_properties = products.load_product_update(
state.config, state.product)
state.property_order = property_order + state.extra_properties
state.property_order = (property_order or []) + state.extra_properties
state.boolean_properties = boolean_properties

View file

@ -10,14 +10,22 @@
<body>
<script>
// TrustedURL assignments do not throw.
let p = createHTML_policy(window, 1);
test(t => {
document.body.innerText = '';
let p = createHTML_policy(window, 1);
let html = p.createHTML(INPUTS.HTML);
document.write(html);
assert_equals(document.body.innerText, RESULTS.HTML);
}, "document.write with html assigned via policy (successful URL transformation).");
// TrustedURL assignments do not throw. (Now for writeln.)
test(t => {
document.body.innerText = '';
let html = p.createHTML(INPUTS.HTML);
document.writeln(html);
assert_equals(document.body.innerText, RESULTS.HTML);
}, "document.writeln with html assigned via policy (successful URL transformation).");
// String assignments throw.
test(t => {
const old = document.body.innerText;
@ -27,6 +35,15 @@
assert_equals(document.body.innerText, old);
}, "`document.write(string)` throws");
// String assignments throw. (Now for writeln.)
test(t => {
const old = document.body.innerText;
assert_throws(new TypeError(), _ => {
document.writeln('A string');
});
assert_equals(document.body.innerText, old);
}, "`document.writeln(string)` throws");
// Null assignment throws.
test(t => {
const old = document.body.innerText;
@ -35,4 +52,30 @@
});
assert_equals(document.body.innerText, old);
}, "`document.write(null)` throws");
// Null assignment throws. (Now for writeln.)
test(t => {
const old = document.body.innerText;
assert_throws(new TypeError(), _ => {
document.writeln(null);
});
assert_equals(document.body.innerText, old);
}, "`document.writeln(null)` throws");
let default_policy = TrustedTypes.createPolicy('default',
{ createHTML: createHTMLJS }, true );
// Default policy works.
test(t => {
document.body.innerText = '';
document.write(INPUTS.HTML);
assert_equals(document.body.innerText, RESULTS.HTML);
}, "`document.write(string)` observes default policy");
// Default policy works. (Now for writeln.)
test(t => {
document.body.innerText = '';
document.writeln(INPUTS.HTML);
assert_equals(document.body.innerText, RESULTS.HTML);
}, "`document.writeln(string)` observes default policy");
</script>

View file

@ -1,3 +1,15 @@
/**
* `t` should be a function that takes at least three arguments:
*
* - the name of the test;
* - the expected error (to be passed to `assert_throws` or similar);
* - a function that takes a `WasmModuleBuilder` and initializes it;
* - (optionally) an options object.
*
* The function is expected to create a test that checks if instantiating a
* module with the result of the `WasmModuleBuilder` and the options object
* (if any) yields the correct error.
*/
function test_bad_imports(t) {
for (const value of [null, true, "", Symbol(), 1, 0.1, NaN]) {
t(`Non-object imports argument: ${format_value(value)}`,
@ -15,7 +27,7 @@ function test_bad_imports(t) {
builder => {
builder.addImport("module", "fn", kSig_v_v);
},
value);
imports);
}
t(`Missing imports argument`,

View file

@ -64,9 +64,9 @@ promise_test(t => {
return promise_rejects(t, new WebAssembly.CompileError(), WebAssembly.compile(buffer));
}, "Empty buffer");
test(() => {
promise_test(t => {
const buffer = new Uint8Array(Array.from(emptyModuleBinary).concat([0, 0]));
assert_throws(new WebAssembly.CompileError(), () => WebAssembly.compile(buffer));
return promise_rejects(t, new WebAssembly.CompileError(), WebAssembly.compile(buffer));
}, "Invalid code");
promise_test(() => {

View file

@ -76,6 +76,64 @@ for (const [name, fn] of instanceTestFactory) {
}, `${name}: Module argument`);
}
promise_test(() => {
const builder = new WasmModuleBuilder();
builder.addImportedGlobal("module", "global", kWasmI32);
const buffer = builder.toBuffer();
const order = [];
const imports = {
get module() {
order.push("module getter");
return {
get global() {
order.push("global getter");
return 0;
},
}
},
};
const expected = [
"module getter",
"global getter",
];
const p = WebAssembly.instantiate(buffer, imports);
assert_array_equals(order, []);
return p.then(result => {
assert_WebAssemblyInstantiatedSource(result);
assert_array_equals(order, expected);
});
}, "Synchronous options handling: Buffer argument");
promise_test(() => {
const builder = new WasmModuleBuilder();
builder.addImportedGlobal("module", "global", kWasmI32);
const buffer = builder.toBuffer();
const module = new WebAssembly.Module(buffer);
const order = [];
const imports = {
get module() {
order.push("module getter");
return {
get global() {
order.push("global getter");
return 0;
},
}
},
};
const expected = [
"module getter",
"global getter",
];
const p = WebAssembly.instantiate(module, imports);
assert_array_equals(order, expected);
return p.then(instance => assert_Instance(instance, {}));
}, "Synchronous options handling: Module argument");
promise_test(t => {
const buffer = new Uint8Array();
return promise_rejects(t, new WebAssembly.CompileError(), WebAssembly.instantiate(buffer));

View file

@ -11,9 +11,7 @@ def main(request, response):
if token is not None:
request.server.stash.put(token, "1")
status = (401, 'Unauthorized')
headers = [('WWW-Authenticate', 'Basic realm="test"'),
('XHR-USER', expected_user_name),
('SES-USER', session_user)]
headers = [('WWW-Authenticate', 'Basic realm="test"')]
return status, headers, 'FAIL (should be transparent)'
else:
if request.server.stash.take(token) == "1":