123 lines
2.9 KiB
HTML
123 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<script>
|
|
if (window.testRunner)
|
|
window.testRunner.dumpAsText();
|
|
|
|
function getSystemPreviewData(id)
|
|
{
|
|
const container = document.getElementById(id);
|
|
const link = container.querySelector("a");
|
|
let children = [];
|
|
if (link)
|
|
children = link.children;
|
|
const result = container.querySelectorAll("p")[1];
|
|
return [link, children, result];
|
|
}
|
|
|
|
function addResult(resultElement, txt)
|
|
{
|
|
resultElement.textContent += txt;
|
|
}
|
|
|
|
const TESTS = ["valid-1", "valid-2", "valid-3", "invalid-1", "invalid-2", "invalid-3", "invalid-4", "invalid-5"];
|
|
|
|
window.addEventListener("load", () => {
|
|
if (!window.internals)
|
|
return;
|
|
|
|
TESTS.forEach(id => {
|
|
const [link, children, result] = getSystemPreviewData(id);
|
|
if (link) {
|
|
addResult(result, "Link element present.");
|
|
|
|
if (internals.isSystemPreviewLink(link))
|
|
addResult(result, " Identified as system preview.");
|
|
else
|
|
addResult(result, " Not identified as system preview.");
|
|
|
|
} else
|
|
addResult(result, "No link.");
|
|
|
|
if (children && children.length > 0) {
|
|
for (let i = 0; i < children.length; i++) {
|
|
if (internals.isSystemPreviewImage(children[i]))
|
|
addResult(result, ` Child ${i} is an image inside a system preview.`);
|
|
else
|
|
addResult(result, ` Child ${i} is not an image inside a system preview.`);
|
|
}
|
|
}
|
|
|
|
// Specific test for the case that is just an image.
|
|
if (id == "invalid-5") {
|
|
const child = document.getElementById(id).children[0];
|
|
if (internals.isSystemPreviewImage(child))
|
|
addResult(result, ` Child is an image inside a system preview.`);
|
|
else
|
|
addResult(result, ` Child is not an image inside a system preview.`);
|
|
}
|
|
});
|
|
}, false);
|
|
</script>
|
|
<p>This test only works in WKTR or DRT.</p>
|
|
<div id="valid-1">
|
|
<p>Valid system preview</p>
|
|
<a href="/" rel="ar">
|
|
<img>
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="valid-2">
|
|
<p>Valid system preview (multiple rel values)</p>
|
|
<a href="/" rel="foo ar">
|
|
<img>
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="valid-3">
|
|
<p>Valid system preview (picture child)</p>
|
|
<a href="/" rel="ar">
|
|
<picture></picture>
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="invalid-1">
|
|
<p>Invalid system preview (wrong rel value)</p>
|
|
<a href="/" rel="arfoo">
|
|
<img>
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="invalid-2">
|
|
<p>Invalid system preview (wrong children)</p>
|
|
<a href="/" rel="ar">
|
|
<span>hello</span>
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="invalid-3">
|
|
<p>Invalid system preview (too many children)</p>
|
|
<a href="/" rel="ar">
|
|
<span>hello</span>
|
|
<img>
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="invalid-4">
|
|
<p>Invalid system preview (no children)</p>
|
|
<a href="/" rel="ar">
|
|
</a>
|
|
<p>Result: </p>
|
|
</div>
|
|
|
|
<div id="invalid-5">
|
|
<p>Invalid system preview (just an image)</p>
|
|
<img>
|
|
<p>Result: </p>
|
|
</div>
|