77 lines
2.0 KiB
HTML
77 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html>
|
|
<head>
|
|
<style>
|
|
body {
|
|
height: 2000px;
|
|
width: 2000px;
|
|
}
|
|
|
|
.container {
|
|
position: fixed;
|
|
top: 20px;
|
|
left: 10px;
|
|
width: 200px;
|
|
height: 100px;
|
|
background-color: silver;
|
|
}
|
|
#box {
|
|
width: 20px;
|
|
height: 10px;
|
|
margin: 12px;
|
|
background-color: blue;
|
|
}
|
|
|
|
</style>
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script>
|
|
description("Tests localToAbsolute coordinate conversion for an element inside position:fixed after zoom.");
|
|
|
|
window.jsTestIsAsync = true;
|
|
|
|
var clientRect;
|
|
function doAfterZooming()
|
|
{
|
|
window.scrollTo(0, 140);
|
|
|
|
shouldBe('internals.pageScaleFactor()', '2');
|
|
|
|
var box = document.getElementById('box');
|
|
clientRect = box.getBoundingClientRect();
|
|
|
|
shouldBe('JSON.stringify(clientRect)', 'JSON.stringify({x: 22, y: -108, width: 20, height: 10, top: -108, right: 42, bottom:-98, left: 22})');
|
|
|
|
finishJSTest();
|
|
}
|
|
|
|
function getUIScript()
|
|
{
|
|
return `(function() {
|
|
uiController.zoomToScale(2, function() {
|
|
uiController.uiScriptComplete(uiController.zoomScale);
|
|
});
|
|
})();`;
|
|
}
|
|
|
|
function doTest()
|
|
{
|
|
if (window.testRunner) {
|
|
testRunner.runUIScript(getUIScript(), function(zoomScale) {
|
|
doAfterZooming();
|
|
})
|
|
} else
|
|
window.setTimeout(doAfterZooming, 1000);
|
|
}
|
|
|
|
window.addEventListener('load', doTest, false);
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div id="box"></div>
|
|
</div>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|