mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
CSS:Tests: Fix tests & support tests under CSS Zoom (3.x version)
Firefox 126+ implements CSS zoom in a way it affects width computed style very slightly (`100.008px` instead of `100px`); accept that difference. Also, skip the width setter under zoom test in Firefox 126 completely - that version has CSS zoom affecting `offsetWidth` values. This has been fixed in Firefox 127 so it's not worth working around it. 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-5496 Ref gh-5495
This commit is contained in:
parent
b6f53def96
commit
29a9030c78
@ -151,9 +151,9 @@ define( [
|
||||
}
|
||||
|
||||
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 );
|
||||
}
|
||||
|
24
test/data/support/zoom.html
Normal file
24
test/data/support/zoom.html
Normal 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>
|
@ -1396,8 +1396,20 @@ 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" );
|
||||
|
||||
// Support: Firefox 126 only
|
||||
// In Firefox 126 only, CSS zoom affects `offsetWidth`. Since the issue
|
||||
// is fixed in v127, let's just skip the test in v126.
|
||||
if ( /\bfirefox\/126\.\d\b/i.test( navigator.userAgent ) ) {
|
||||
assert.ok( true, "elem.css('width', val) works incorrectly with browser zoom in Firefox 126 and we accept that" );
|
||||
} else {
|
||||
assert.ok( /^100(?:|\.0\d*)px$/.test( widthAfterSet ), "elem.css('width', val) works correctly with browser zoom" );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -66,6 +66,26 @@ 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 );
|
||||
|
||||
// Support: Firefox 126 only
|
||||
// In Firefox 126 only, CSS zoom affects `offsetWidth`, causing
|
||||
// the `scrollboxSize` support test to fail. Accept that.
|
||||
if ( /\bfirefox\/126\.\d\b/i.test( navigator.userAgent ) ) {
|
||||
assert.deepEqual( jQuery.extend( {}, support ),
|
||||
jQuery.extend( {}, computedSupport, { scrollboxSize: false } ),
|
||||
"Same support properties except for `scrollboxSize`" );
|
||||
} else {
|
||||
assert.deepEqual( jQuery.extend( {}, support ), computedSupport,
|
||||
"Same support properties" );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
( function() {
|
||||
var browserKey, expected,
|
||||
userAgent = window.navigator.userAgent,
|
||||
|
Loading…
Reference in New Issue
Block a user