Files
tubestation/testing/web-platform/tests/url/toascii.window.js
Boris Zbarsky 19362fe248 Bug 1610933 [wpt PR 21353] - Replace some "assert_throws(new FooError, stuff)" calls with assert_throws_js, a=testonly
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
2020-01-27 15:35:45 +00:00

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 + ")")
})
})
}
}