blob: 35bcc9c8d005a1ab7471f87f8f78d7d4472dd1d0 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../../resources/testharness.js"></script>
<script src="../../../../resources/testharnessreport.js"></script>
<div id='horizontal-container'>
<img id='img-h1' style='width: 100px; height: 50px'><img id='img-h2' style='width: 100px; height: 100px'>
</div>
<div id='vertical-container' style='writing-mode: vertical-lr'>
<img id='img-v1' style='width: 50px; height: 100px'><img id='img-v2' style='width: 100px; height: 100px'>
</div>
<script>
// This file tests hit-testing outside image while inside containing line box.
test(() => {
// Hit test location indicated by '*':
// * 2222
// 2222
// 11112222
// 11112222
const container = document.getElementById('horizontal-container');
const target = document.getElementById('img-h1');
const x = container.offsetLeft + 25;
const y = container.offsetTop + 25;
const result = document.caretRangeFromPoint(x, y);
assert_true(result instanceof Range);
assert_equals(result.startContainer, container);
assert_equals(container.childNodes[result.startOffset], target);
assert_true(result.collapsed);
}, 'Hit test before half-width of image in horizontal writing mode');
test(() => {
// Hit test location indicated by '*':
// *2222
// 2222
// 11112222
// 11112222
const container = document.getElementById('horizontal-container');
const target = document.getElementById('img-h2');
const x = container.offsetLeft + 75;
const y = container.offsetTop + 25;
const result = document.caretRangeFromPoint(x, y);
assert_true(result instanceof Range);
assert_equals(result.startContainer, container);
assert_equals(container.childNodes[result.startOffset], target);
assert_true(result.collapsed);
}, 'Hit test after half-width of image in horizontal writing mode');
test(() => {
// Hit test location indicated by '*':
// * 1111
// 1111
// 22222222
// 22222222
const container = document.getElementById('vertical-container');
const target = document.getElementById('img-v1');
const x = container.offsetLeft + 10;
const y = container.offsetTop + 25;
const result = document.caretRangeFromPoint(x, y);
assert_true(result instanceof Range);
assert_equals(result.startContainer, container);
assert_equals(container.childNodes[result.startOffset], target);
assert_true(result.collapsed);
}, 'Hit test before half-width of image in vertical writing mode');
test(() => {
// Hit test location indicated by '*':
// 1111
// * 1111
// 22222222
// 22222222
const container = document.getElementById('vertical-container');
const target = document.getElementById('img-v2');
const x = container.offsetLeft + 10;
const y = container.offsetTop + 75;
const result = document.caretRangeFromPoint(x, y);
assert_true(result instanceof Range);
assert_equals(result.startContainer, container);
assert_equals(container.childNodes[result.startOffset], target);
assert_true(result.collapsed);
}, 'Hit test after half-width of image in vertical writing mode');
</script>