Automatic update from web-platform-tests
Replace some "assert_throws(new FooError, stuff)" calls with assert_throws_js.
This diff was generated by running:
find . -type f -print0 | xargs -0 perl -pi -e 'BEGIN { $/ = undef; } s/assert_throws\(([ \n]*)new ([A-Za-z]*Error) *(, *.)/assert_throws_js(\1\2\3/gs'
and then manually adjusting url/failure.html to use the TypeError from the right
global when doing cross-global things.
This does affect indentation poorly in cases when the first arg was on the same
line as the assert_throws, there was a newline after the ',' after the first
arg, and the following args were lined up with the first arg. Fixing that,
especially when there are multiple lines after the first arg, is not trivial
with a regexp.
--
wpt-commits: a3cddf04f127ef7f14556bd0326c804c2e72fb2d
wpt-pr: 21353
55 lines
1.8 KiB
JavaScript
55 lines
1.8 KiB
JavaScript
promise_test(() => fetch("resources/toascii.json").then(res => res.json()).then(runTests), "Loading data…");
|
|
|
|
function makeURL(type, input) {
|
|
input = "https://" + input + "/x"
|
|
if(type === "url") {
|
|
return new URL(input)
|
|
} else {
|
|
const url = document.createElement(type)
|
|
url.href = input
|
|
return url
|
|
}
|
|
}
|
|
|
|
function runTests(tests) {
|
|
for(var i = 0, l = tests.length; i < l; i++) {
|
|
let hostTest = tests[i]
|
|
if (typeof hostTest === "string") {
|
|
continue // skip comments
|
|
}
|
|
const typeName = { "url": "URL", "a": "<a>", "area": "<area>" }
|
|
;["url", "a", "area"].forEach((type) => {
|
|
test(() => {
|
|
if(hostTest.output !== null) {
|
|
const url = makeURL("url", hostTest.input)
|
|
assert_equals(url.host, hostTest.output)
|
|
assert_equals(url.hostname, hostTest.output)
|
|
assert_equals(url.pathname, "/x")
|
|
assert_equals(url.href, "https://" + hostTest.output + "/x")
|
|
} else {
|
|
if(type === "url") {
|
|
assert_throws_js(TypeError, () => makeURL("url", hostTest.input))
|
|
} else {
|
|
const url = makeURL(type, hostTest.input)
|
|
assert_equals(url.host, "")
|
|
assert_equals(url.hostname, "")
|
|
assert_equals(url.pathname, "")
|
|
assert_equals(url.href, "https://" + hostTest.input + "/x")
|
|
}
|
|
}
|
|
}, hostTest.input + " (using " + typeName[type] + ")")
|
|
;["host", "hostname"].forEach((val) => {
|
|
test(() => {
|
|
const url = makeURL(type, "x")
|
|
url[val] = hostTest.input
|
|
if(hostTest.output !== null) {
|
|
assert_equals(url[val], hostTest.output)
|
|
} else {
|
|
assert_equals(url[val], "x")
|
|
}
|
|
}, hostTest.input + " (using " + typeName[type] + "." + val + ")")
|
|
})
|
|
})
|
|
}
|
|
}
|