mirror of
https://github.com/servo/servo
synced 2026-05-12 09:56:50 +02:00
80 lines
2.7 KiB
HTML
80 lines
2.7 KiB
HTML
<!DOCTYPE html>
|
|
<title>A link element with rel="webbundle"</title>
|
|
<link
|
|
rel="help"
|
|
href="https://github.com/WICG/webpackage/blob/master/explainers/subresource-loading.md"
|
|
/>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<body>
|
|
<link id="link_empty" />
|
|
<link id="link_web_bundle_1" rel="webbundle" />
|
|
<link id="link_web_bundle_2" rel="webbundle" resources="foo" />
|
|
<script>
|
|
test(() => {
|
|
assert_false(
|
|
"resources" in Element.prototype,
|
|
"resources must not be defined on Element prototype"
|
|
);
|
|
assert_true(
|
|
"resources" in HTMLLinkElement.prototype,
|
|
"resources must be defined on HTMLLinkElement prototype"
|
|
);
|
|
}, "resources must be defined on HTMLLinkElement prototype");
|
|
|
|
test(() => {
|
|
const link = document.createElement("link");
|
|
assert_true(link.relList.supports("webbundle"));
|
|
}, "webbundle must be a supported token of a link element's relList");
|
|
|
|
test(() => {
|
|
const link_web_bundle = document.querySelector("#link_web_bundle_1");
|
|
assert_equals(
|
|
link_web_bundle.getAttribute("rel"),
|
|
"webbundle",
|
|
"rel attribute must return webbundle"
|
|
);
|
|
assert_true(
|
|
link_web_bundle.relList.contains("webbundle"),
|
|
"relList must contain webbundle for <link rel=webbundle>."
|
|
);
|
|
assert_false(
|
|
document.querySelector("#link_empty").relList.contains("webbundle"),
|
|
"relList must not contain webbundle for <link>"
|
|
);
|
|
}, "relList must contain webbundle if rel attribute contains it");
|
|
|
|
test(() => {
|
|
assert_equals(
|
|
document.querySelector("#link_web_bundle_1").getAttribute("resources"),
|
|
null,
|
|
"resources attribute must return null when the attribute is not given"
|
|
);
|
|
assert_equals(
|
|
document.querySelector("#link_web_bundle_2").getAttribute("resources"),
|
|
"foo",
|
|
"resources attribute must return the specified value"
|
|
);
|
|
// TODO: Test more variant of resoruces attribute values.
|
|
}, "resoruces attribute must return null or specified value");
|
|
|
|
test(() => {
|
|
const link = document.createElement("link");
|
|
assert_class_string(link.resources, "DOMTokenList");
|
|
assert_equals(
|
|
String(link.resources.value),
|
|
"",
|
|
"resources.value should return the empty list for an undefined resources attribute"
|
|
);
|
|
link.setAttribute(
|
|
"resources",
|
|
"https://test1.example.com https://test2.example.com "
|
|
);
|
|
assert_array_equals(link.resources, [
|
|
"https://test1.example.com",
|
|
"https://test2.example.com"
|
|
]);
|
|
}, "resources must be DOMTokenList");
|
|
</script>
|
|
</body>
|