Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that disables it given conditions:
- verify and debug : fails in verify mode
- This test has a WPT meta file that expects 54 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<meta charset="utf-8">
<title>parsing a hash-name reference for img and object</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
body { margin-top: 0 }
iframe { height: 600px; width:50px; border-top: none }
</style>
<div id="log"></div>
<iframe data-name="HTML (standards)" src="hash-name-reference-test-data.html?pipe=sub&doctype=html"></iframe>
<iframe data-name="HTML (quirks)" src="hash-name-reference-test-data.html?pipe=sub&doctype=quirks"></iframe>
<iframe data-name="XHTML" src="hash-name-reference-test-data.html?pipe=sub|header(Content-Type, application/xhtml%2Bxml)&doctype=html"></iframe>
<script>
setup({explicit_done: true});
onload = function() {
var iframes = document.querySelectorAll('iframe');
iframes.forEach(function(iframe) {
var iframeName = iframe.getAttribute('data-name');
var doc = iframe.contentDocument;
var divs = doc.querySelectorAll('div[data-expect]');
var div, img, object;
for (var i = 0; i < divs.length; ++i) {
div = divs[i];
img = div.querySelector('img');
object = div.querySelector('object');
[img, object].forEach(function(elm) {
test(function(t) {
var expected = div.getAttribute('data-expect');
var expected_elm = (expected === 'no match' || elm === object) ? elm : div.querySelector('area[href="#' + expected + '"]');
var got_elm = doc.elementFromPoint(elm.offsetLeft, elm.offsetTop);
assert_not_equals(expected_elm, null, 'sanity check (data-expect value wrong?)');
assert_not_equals(got_elm, null, 'sanity check (too many tests to fit in viewport?)');
assert_equals(got_elm, expected_elm);
}, iframeName + ' ' + elm.tagName + ' usemap=' + format_value(elm.useMap));
});
}
});
done();
};
</script>