Files
firefox/testing/web-platform/tests/css/cssom-view/elementFromPosition.html
Sam SneddonandJan-Ivar Bruaroey be45cf8650 Bug 1659864 [wpt PR 25086] - Replace ===/!== in assert_true/false, a=testonly
Automatic update from web-platform-tests
Replace assert_true(x === y) with assert_equals

--
Replace assert_false(x === y) with assert_not_equals

--
Replace assert_true(x !== y) with assert_not_equals

--
Replace assert_true(x == y) with assert_equals

--
Replace assert_false(x == y) with assert_not_equals

--
Replace assert_true(x != y) with assert_not_equals

--
Fix actual/expected argument order

Co-authored-by: Jan-Ivar Bruaroey <[email protected]>

--

wpt-commits: e2ddf48b78209d0aef4fa513b53a9f28243c9335, d80a3bccd7b88a7810522c6a1e317a53b0daad57, 54ee81d1501b46e990bc1a1cde162949f7d0ba71, d4beec831b7484382a25bca41b1449b68c235d0a, 278cf9fd6cfb113fd72dc5186534db239cde9e29, e1f3c83b5abc4d122e92db3c390aa8c9b8b4b792, 3cabe516b8e1234ccafd4f5e8aef7f9663b2f53f
wpt-pr: 25086
2020-09-25 19:29:25 +00:00

122 lines
4.2 KiB
HTML

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<title>CSS Test: CSSOM View elementFromPoint</title>
<meta charset="UTF-8">
<link rel="author" title="Chris" href="mailto:[email protected]" />
<link rel="help" href="https://www.w3.org/TR/cssom-view/#dom-document-elementfrompoint" />
<meta name="flags" content="dom" />
<script src="/resources/testharness.js" type="text/javascript"></script>
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
</head>
<body>
<noscript>Test not run - JavaScript required!</noscript>
<div id="log"></div>
<script type="text/javascript">
var body = document.getElementsByTagName( 'body' )[0];
function createElement( id ) {
var elem = document.createElement( 'div' );
if ( id && typeof id == 'string' ) {
elem.id = id;
}
body.appendChild( elem );
return elem;
}
function setPosition( config ) {
var target = config.target;
target.style.position = 'absolute';
target.style.left = config.left + 'px';
target.style.top = config.top + 'px';
target.style.width = config.width + 'px';
target.style.height = config.height + 'px';
if ( config['z-index'] ) {
target.style.zIndex = config['z-index'];
}
}
var target = createElement( 'dom-1' );
setPosition( {
width: 100,
height: 100,
left: 10,
top: 10,
target: target
});
test( function () {
assert_inherits( document, 'elementFromPoint' );
}, 'document.elementFromPoint');
test( function () {
assert_true( document.elementFromPoint instanceof Function );
}, 'document.elementFromPoint is a Function');
(function(){
var wrap = [
// 左上角.
{x: 10, y: 10, r: 'top left corner'},
// 上边线
{x: 50, y: 10, r: 'top line'},
// 右上角
{x: 110, y: 10, r: 'top right corner'},
// 左边线
{x: 10, y: 50, r: 'left line'},
// 元素范围内
{x: 50, y: 50, r: 'inside'},
// 右边线
{x: 110, y: 50, r: 'right line'},
// 左下角
{x: 10, y: 110, r: 'bottom left corner'},
// 下边线
{x: 50, y: 110, r: 'bottom line'},
// 右下角
{x: 110, y: 110, r: 'bottom right corner'}
];
var i = 0, len = wrap.length, item;
for ( ; i < len; i++ ) {
item = wrap[ i ];
test( function () {
assert_equals( document.elementFromPoint( item.x, item.y).id == 'dom-1', true );
}, 'test some point of the element: ' + item.r);
}
})();
test( function () {
var elem = document.elementFromPoint( 0, 0 );
assert_equals( elem.nodeName, 'HTML' );
}, 'Point (0, 0), return root element(HTML)' );
test( function () {
var elem = document.elementFromPoint( -1000, 0 );
assert_equals( elem, null, 'negative x, return null' );
}, ' test negative x ');
test( function () {
var elem = document.elementFromPoint( 0, -1000 );
assert_equals( elem, null, 'negative y, return null' );
}, ' test negative y ');
test( function () {
var elem = document.elementFromPoint( 100000, 0 );
assert_equals( elem, null );
}, 'test outside of viewport');
test( function () {
var config = {
width: 100,
height: 100,
left: 5,
top: 5
};
var target2 = createElement( 'dom-2' );
config.target = target2;
setPosition( config );
var elem = document.elementFromPoint( 10, 10 );
var elem2 = document.elementFromPoint( 10, 10 );
assert_equals( elem.id, elem2.id );
}, 'test the top of layer');
</script>
</body>
</html>