mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
CSS: Add an integration test for issue gh-1764
Refs gh-1764 Refs gh-2401 Closes gh-2425
This commit is contained in:
parent
b60b26e184
commit
8887106702
18
test/integration/data/gh-1764-fullscreen-iframe.css
Normal file
18
test/integration/data/gh-1764-fullscreen-iframe.css
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
.result {
|
||||||
|
font-size: 24px;
|
||||||
|
margin: 0.5em 0;
|
||||||
|
width: 700px;
|
||||||
|
height: 56px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error {
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warn {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.success {
|
||||||
|
background-color: lightgreen;
|
||||||
|
}
|
21
test/integration/data/gh-1764-fullscreen-iframe.html
Normal file
21
test/integration/data/gh-1764-fullscreen-iframe.html
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head lang="en">
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<title>Test for gh-1764 - test iframe</title>
|
||||||
|
<link rel="stylesheet" href="gh-1764-fullscreen-iframe.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="iframe-page">
|
||||||
|
<div class="container">
|
||||||
|
<div class="result"></div>
|
||||||
|
<button class="toggle-fullscreen">Toggle fullscreen mode - iframe</button>
|
||||||
|
</div>
|
||||||
|
<script src="../../../dist/jquery.js"></script>
|
||||||
|
<script src="gh-1764-fullscreen.js"></script>
|
||||||
|
<script>
|
||||||
|
bootstrapFrom( ".iframe-page", "iframe" );
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
99
test/integration/data/gh-1764-fullscreen.js
Normal file
99
test/integration/data/gh-1764-fullscreen.js
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/* exported bootstrapFrom */
|
||||||
|
|
||||||
|
// `mode` may be "iframe" or not specified.
|
||||||
|
function bootstrapFrom( mainSelector, mode ) {
|
||||||
|
if ( mode === "iframe" && window.parent === window ) {
|
||||||
|
jQuery( mainSelector + " .result" )
|
||||||
|
.attr( "class", "result warn" )
|
||||||
|
.text( "This test should be run in an iframe. Open ../gh-1764-fullscreen.html." );
|
||||||
|
jQuery( mainSelector + " .toggle-fullscreen" ).remove();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var fullscreenSupported = document.exitFullscreen ||
|
||||||
|
document.exitFullscreen ||
|
||||||
|
document.msExitFullscreen ||
|
||||||
|
document.mozCancelFullScreen ||
|
||||||
|
document.webkitExitFullscreen;
|
||||||
|
|
||||||
|
function isFullscreen() {
|
||||||
|
return !!(document.fullscreenElement ||
|
||||||
|
document.mozFullScreenElement ||
|
||||||
|
document.webkitFullscreenElement ||
|
||||||
|
document.msFullscreenElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
function requestFullscreen( element ) {
|
||||||
|
if ( !isFullscreen() ) {
|
||||||
|
if ( element.requestFullscreen ) {
|
||||||
|
element.requestFullscreen();
|
||||||
|
} else if ( element.msRequestFullscreen ) {
|
||||||
|
element.msRequestFullscreen();
|
||||||
|
} else if ( element.mozRequestFullScreen ) {
|
||||||
|
element.mozRequestFullScreen();
|
||||||
|
} else if ( element.webkitRequestFullscreen ) {
|
||||||
|
element.webkitRequestFullscreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function exitFullscreen() {
|
||||||
|
if ( document.exitFullscreen ) {
|
||||||
|
document.exitFullscreen();
|
||||||
|
} else if ( document.msExitFullscreen ) {
|
||||||
|
document.msExitFullscreen();
|
||||||
|
} else if ( document.mozCancelFullScreen ) {
|
||||||
|
document.mozCancelFullScreen();
|
||||||
|
} else if ( document.webkitExitFullscreen ) {
|
||||||
|
document.webkitExitFullscreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function runTest() {
|
||||||
|
var dimensions;
|
||||||
|
if ( !fullscreenSupported ) {
|
||||||
|
jQuery( mainSelector + " .result" )
|
||||||
|
.attr( "class", "result success" )
|
||||||
|
.text( "Fullscreen mode is not supported in this browser. Test not run." );
|
||||||
|
} else if ( !isFullscreen() ) {
|
||||||
|
jQuery( mainSelector + " .result" )
|
||||||
|
.attr( "class", "result warn" )
|
||||||
|
.text( "Enable fullscreen mode to fire the test." );
|
||||||
|
} else {
|
||||||
|
dimensions = jQuery( mainSelector + " .result" ).css( [ "width", "height" ] );
|
||||||
|
dimensions.width = parseFloat( dimensions.width ).toFixed( 3 );
|
||||||
|
dimensions.height = parseFloat( dimensions.height ).toFixed( 3 );
|
||||||
|
if ( dimensions.width === "700.000" && dimensions.height === "56.000" ) {
|
||||||
|
jQuery( mainSelector + " .result" )
|
||||||
|
.attr( "class", "result success" )
|
||||||
|
.text( "Dimensions in fullscreen mode are computed correctly." );
|
||||||
|
} else {
|
||||||
|
jQuery( mainSelector + " .result" )
|
||||||
|
.attr( "class", "result error" )
|
||||||
|
.html( "Incorrect dimensions; " +
|
||||||
|
"expected: { width: '700.000', height: '56.000' };<br>" +
|
||||||
|
"got: { width: '" + dimensions.width + "', height: '" +
|
||||||
|
dimensions.height + "' }." );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleFullscreen() {
|
||||||
|
if ( isFullscreen() ) {
|
||||||
|
exitFullscreen();
|
||||||
|
} else {
|
||||||
|
requestFullscreen( jQuery( mainSelector + " .container" )[0] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$( mainSelector + " .toggle-fullscreen" ).on( "click", toggleFullscreen );
|
||||||
|
|
||||||
|
$( document ).on( [
|
||||||
|
"webkitfullscreenchange",
|
||||||
|
"mozfullscreenchange",
|
||||||
|
"fullscreenchange",
|
||||||
|
"MSFullscreenChange",
|
||||||
|
].join( " " ), runTest );
|
||||||
|
|
||||||
|
runTest();
|
||||||
|
}
|
34
test/integration/gh-1764-fullscreen.html
Normal file
34
test/integration/gh-1764-fullscreen.html
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head lang="en">
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<title>Test for gh-1764</title>
|
||||||
|
<link rel="stylesheet" href="./data/gh-1764-fullscreen-iframe.css">
|
||||||
|
<style>
|
||||||
|
#test-iframe {
|
||||||
|
position: absolute;
|
||||||
|
top: 100px;
|
||||||
|
left: 0;
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="main-page">
|
||||||
|
<div class="container">
|
||||||
|
<div class="result"></div>
|
||||||
|
<button class="toggle-fullscreen">Toggle fullscreen mode - main page</button>
|
||||||
|
</div>
|
||||||
|
<script src="../../dist/jquery.js"></script>
|
||||||
|
<iframe id="test-iframe" allowfullscreen src="data/gh-1764-fullscreen-iframe.html"></iframe>
|
||||||
|
<script src="./data/gh-1764-fullscreen.js"></script>
|
||||||
|
<script>
|
||||||
|
bootstrapFrom( ".main-page" );
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user