CSS:Tests: Fix tests & support tests under CSS Zoom

Firefox 126+ implements CSS zoom in a way it affects width computed style
very slightly (`100.008px` instead of `100px`); accept that difference.

Add a test for support tests resolving the same under CSS zoom & without one.
That test uncovered Chrome failing the `reliableTrDimensions` support test
under zoom; the test has been fixed.

Fixes gh-5489
Closes gh-5495
Ref gh-5496
This commit is contained in:
Michał Gołębiowski-Owczarek 2024-06-03 18:15:23 +02:00 committed by GitHub
parent f2d9fde5f3
commit 071f6dba6b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 43 additions and 5 deletions

View File

@ -54,9 +54,9 @@ support.reliableTrDimensions = function() {
}
trStyle = window.getComputedStyle( tr );
reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
parseInt( trStyle.borderTopWidth, 10 ) +
parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
reliableTrDimensionsVal = ( Math.round( parseFloat( trStyle.height ) ) +
Math.round( parseFloat( trStyle.borderTopWidth ) ) +
Math.round( parseFloat( trStyle.borderBottomWidth ) ) ) === tr.offsetHeight;
documentElement.removeChild( table );
}

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<style>
html {
zoom: 2.1;
}
</style>
</head>
<body>
<div>
<script src="../../jquery.js"></script>
<script src="../iframeTest.js"></script>
<script src="getComputedSupport.js"></script>
</div>
<script>
startIframeTest(
getComputedStyle( document.documentElement ),
getComputedSupport( jQuery.support )
);
</script>
</body>
</html>

View File

@ -1381,8 +1381,12 @@ testIframe(
"css/cssWidthBrowserZoom.html",
function( assert, jQuery, window, document, widthBeforeSet, widthAfterSet ) {
assert.expect( 2 );
assert.strictEqual( widthBeforeSet, "100px", "elem.css('width') works correctly with browser zoom" );
assert.strictEqual( widthAfterSet, "100px", "elem.css('width', val) works correctly with browser zoom" );
// Support: Firefox 126+
// Newer Firefox implements CSS zoom in a way it affects
// those values slightly.
assert.ok( /^100(?:|\.0\d*)px$/.test( widthBeforeSet ), "elem.css('width') works correctly with browser zoom" );
assert.ok( /^100(?:|\.0\d*)px$/.test( widthAfterSet ), "elem.css('width', val) works correctly with browser zoom" );
}
);

View File

@ -66,6 +66,16 @@ testIframe(
}
);
testIframe(
"Verify correctness of support tests with CSS zoom on the root element",
"support/zoom.html",
function( assert, jQuery, window, document, htmlStyle, support ) {
assert.expect( 1 );
assert.deepEqual( jQuery.extend( {}, support ), computedSupport,
"Same support properties" );
}
);
( function() {
var expected, browserKey,
userAgent = window.navigator.userAgent,