127 lines
3.7 KiB
HTML
127 lines
3.7 KiB
HTML
<html>
|
|
<head>
|
|
<script>
|
|
var w;
|
|
function Open(sFeatures)
|
|
{
|
|
if (w && !w.closed)
|
|
w.close();
|
|
|
|
w = window.open("resources/popup200x200.html", "popup", sFeatures);
|
|
|
|
}
|
|
|
|
function test1()
|
|
{
|
|
Open("width=200, height=200, left = 0, top = 0, scrollbars, resizable");
|
|
|
|
setConsole(document.getElementById('console1'));
|
|
clearConsole();
|
|
shouldBe("w.innerHeight", 200);
|
|
shouldBe("w.innerWidth", 200);
|
|
shouldBe("w.outerWidth", 200);
|
|
shouldBe("w.screenLeft", 0);
|
|
shouldBe("w.screenTop", 22); // empirical result of low dpi testing
|
|
shouldBe("w.outerHeight", 223); // empirical result of low dpi testing
|
|
}
|
|
|
|
function test2()
|
|
{
|
|
console = document.getElementById('console2');
|
|
Open("width=200, height=200, left = 0, top = 0, scrollbars, menubar, status, toolbar, resizable");
|
|
|
|
setConsole(document.getElementById('console2'));
|
|
clearConsole();
|
|
shouldBe("w.innerHeight", 200);
|
|
shouldBe("w.innerWidth", 200);
|
|
shouldBe("w.outerWidth", 200);
|
|
shouldBe("w.screenLeft", 0);
|
|
shouldBe("w.screenTop", 22); // empirical result of low dpi testing
|
|
shouldBe("w.outerHeight", 313); // empirical result of low dpi testing
|
|
}
|
|
|
|
function test3()
|
|
{
|
|
Open("width=200,height=200,left=" + (screen.width - 200) + ",screenY=0, resizable");
|
|
w.moveBy(0, screen.height - w.screenTop - w.outerHeight);
|
|
|
|
// should be no-ops
|
|
w.moveTo(w.screenLeft - 100, w.screenTop + 100);
|
|
w.moveBy(100, -100);
|
|
w.resizeTo(w.outerWidth - 100 , w.outerHeight - 100);
|
|
w.resizeBy(100, 100);
|
|
|
|
setConsole(document.getElementById('console3'));
|
|
clearConsole();
|
|
shouldBe("w.innerHeight", 200);
|
|
shouldBe("w.innerWidth", 200);
|
|
shouldBe("w.outerWidth", 200);
|
|
shouldBe("w.screenLeft", screen.width - 200);
|
|
shouldBe("w.screenTop", screen.height - w.outerHeight);
|
|
shouldBe("w.outerHeight", 223); // empirical result of low dpi testing
|
|
}
|
|
|
|
var console;
|
|
function print(message, color)
|
|
{
|
|
var paragraph = document.createElement("div");
|
|
paragraph.appendChild(document.createTextNode(message));
|
|
paragraph.style.fontFamily = "monospace";
|
|
if (color)
|
|
paragraph.style.color = color;
|
|
console.appendChild(paragraph);
|
|
}
|
|
|
|
function clearConsole()
|
|
{
|
|
console.innerHTML = "";
|
|
}
|
|
|
|
function setConsole(c)
|
|
{
|
|
console = c;
|
|
}
|
|
|
|
function shouldBe(a, b)
|
|
{
|
|
var evalA = eval(a);
|
|
if (evalA == b)
|
|
print("PASS: " + a + " should be " + b + " and is.", "green");
|
|
else
|
|
print("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".", "red");
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
<p>This test checks our support for window sizing and positioning.</p>
|
|
<p>To test: Click each button below. Check to make sure that the window it opens has the specified attributes.
|
|
Also check for a series of 'PASS' messages below the button.</p>
|
|
<p style="color:red">NOTE: Make sure to test at magnified resolutions.</p>
|
|
<p>To test @ 2X resolution:</p>
|
|
<ol>
|
|
<li>Open Quartz Debug (/Developer/Applications/Performance Tools).</li>
|
|
<li>Select Tools -> Show User Interface Resolution.</li>
|
|
<li>Set the resolution to 2.0.</li>
|
|
<li>Restart Safari.</li>
|
|
</ol>
|
|
<hr>
|
|
|
|
<p>Window size (no toolbars): You should see a red 1 pixel border along every edge of this page, and no scrollbars.</p>
|
|
<input type="button" value="open it!" onclick="test1()">
|
|
<div id='console1'></div>
|
|
<hr>
|
|
|
|
<p>Window size (all toolbars): You should see a red 1 pixel border along every edge of this page, and no scrollbars.</p>
|
|
<input type="button" value="open it!" onclick="test2()">
|
|
<div id='console2'></div>
|
|
<hr>
|
|
|
|
<p>Window positioning: This window should be aligned exactly to the bottom right corner of the screen.</p>
|
|
<input type="button" value="open it!" onclick="test3()">
|
|
<div id='console3'></div>
|
|
<hr>
|
|
|
|
</body>
|
|
</html>
|