Index: LayoutTests/fast/dom/Window/webkitConvertPoint.html |
diff --git a/LayoutTests/fast/dom/Window/webkitConvertPoint.html b/LayoutTests/fast/dom/Window/webkitConvertPoint.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0a26675bc770da05959c9220c9287b9704f622ea |
--- /dev/null |
+++ b/LayoutTests/fast/dom/Window/webkitConvertPoint.html |
@@ -0,0 +1,187 @@ |
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
+ "http://www.w3.org/TR/html4/strict.dtd"> |
+<html> |
+ <head> |
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8"> |
+ <title>Test of webkitConvertPointFromNodeToPage function</title> |
+ <script src="../../../resources/js-test.js"></script> |
+ <style type="text/css" media="screen"> |
+ body { |
+ height: 1000px; |
+ } |
+ |
+ h1 { |
+ font-size: 14pt; |
+ } |
+ .layer { |
+ position: relative; |
+ width: 600px; |
+ height: 500px; |
+ -webkit-transform: translate(0px); |
+ } |
+ .dot { |
+ position: absolute; |
+ background-color: #0f0; |
+ width: 10px; |
+ height: 10px; |
+ left: 0px; |
+ top: 0px; |
+ visibility: hidden; |
+ } |
+ b.border { |
+ border: 5px solid blue; |
+ } |
+ |
+ .a { |
+ position: relative; |
+ left: 10px; |
+ background: #cbc; |
+ width: 800px; |
+ -webkit-transform-origin: top left; |
+ -webkit-transform: translate(130px, 20px) rotate(-35deg) scale(0.6); |
+ padding: 5px; |
+ margin-bottom: 20px; |
+ } |
+ .b { |
+ position: relative; |
+ background: #bcc; |
+ -webkit-transform: translate(20px); |
+ } |
+ .c { |
+ position: relative; |
+ -webkit-transform: translate(20px); |
+ background: #99c; |
+ } |
+ .d { |
+ position: relative; |
+ background: #cc9; |
+ } |
+ |
+ </style> |
+ <script> |
+ function runTest(name, id, x1, y1, x2, y2) |
+ { |
+ debug(""); |
+ debug(name); |
+ var node = document.getElementById(id); |
+ p = webkitConvertPointFromNodeToPage(node, new WebKitPoint(0, 0)); |
+ x = Math.round(p.x); |
+ y = Math.round(p.y); |
+ shouldBe('x', x1+""); |
+ shouldBe('y', y1+""); |
+ |
+ debug("Round Trip of (0,0)"); |
+ p2 = webkitConvertPointFromPageToNode(node, p); |
+ x = Math.round(p2.x); |
+ y = Math.round(p2.y); |
+ if (x == -0) |
+ x = 0; |
+ if (y == -0) |
+ y = 0; |
+ shouldBe('x', '0'); |
+ shouldBe('y', '0'); |
+ |
+ p = webkitConvertPointFromNodeToPage(node, new WebKitPoint(5, 40)); |
+ x = Math.round(p.x); |
+ y = Math.round(p.y); |
+ if (x == -0) |
+ x = 0; |
+ if (y == -0) |
+ y = 0; |
+ shouldBe('x', x2+""); |
+ shouldBe('y', y2+""); |
+ |
+ debug("Round Trip of (5,40)"); |
+ p2 = webkitConvertPointFromPageToNode(node, p); |
+ x = Math.round(p2.x); |
+ y = Math.round(p2.y); |
+ if (x == -0) |
+ x = 0; |
+ if (y == -0) |
+ y = 0; |
+ shouldBe('x', '5'); |
+ shouldBe('y', '40'); |
+ } |
+ |
+ function run() { |
+ description("This test exercises the webkitConvertPointFromNodeToPage() function"); |
+ |
+ debug("Test parameter passing - should not crash"); |
+ var point = webkitConvertPointFromNodeToPage(new WebKitPoint(0, 0)); |
+ if (point == null) |
+ testPassed("Missing parameter test"); |
+ else |
+ testFailed("Missing parameter test"); |
+ debug("Test did not crash and therefore was successful"); |
+ debug(""); |
+ point = webkitConvertPointFromNodeToPage(null, new WebKitPoint(0, 0)); |
+ if (point == null) |
+ testPassed("null parameter test a"); |
+ else |
+ testFailed("null parameter test a"); |
+ debug("Test did not crash and therefore was successful"); |
+ debug(""); |
+ point = webkitConvertPointFromNodeToPage(null, null); |
+ if (point == null) |
+ testPassed("null parameter test b"); |
+ else |
+ testFailed("null parameter test b"); |
+ debug("Test did not crash and therefore was successful"); |
+ |
+ runTest("Test 1", "test1", 8, 13, 13, 53); |
+ runTest("Test 2", "test2", 8, 51, 13, 91); |
+ runTest("Test 3", "test3", 8, 85, 13, 125); |
+ runTest("Test 4", "test4", 8, 119, 13, 159); |
+ runTest("Test 5", "test5", 28, 153, 33, 193); |
+ runTest("Test 6", "test6", 28, 187, 33, 227); |
+ runTest("Test 7", "test7", 8, 239, 13, 279); |
+ runTest("Test 8", "test8", 8, 273, 13, 313); |
+ runTest("Test 9", "test9", 28, 291, 33, 331); |
+ runTest("Test 10", "test10", 28, 309, 33, 349); |
+ runTest("Test 11", "test11", 158, 376, 174, 394); |
+ runTest("Test 12", "test12", 168, 451, 184, 469); |
+ runTest("Test 13", "test13", 28, 487, 33, 527); |
+ |
+ isSuccessfullyParsed(); |
+ } |
+ |
+ window.onload = run; |
+ |
+ </script> |
+ </head> |
+ <body> |
+ <h1 id="test1">Test 1 - This is a H1 heading.</h1> |
+ <p id="test2">Test 2 - This is a simple paragraph.</p> |
+ <p id="test3">Test 3 - This is a paragraph with a <b>nested</b> element.</p> |
+ <p id="test4">Test 4 - This is a paragraph with a <b class="border">nested</b> element that has a border.</p> |
+ <p id="test5" class="c">Test 5 - This is a transformed paragraph with a <b class="border">nested</b> element that has a border.</p> |
+ <p id="test6" class="c">Test 6 - This is a transformed paragraph with a <b class="border">nested</b> element that has a border.<br>And then a second line.</p> |
+ <div class="d"> |
+ <p id="test7">Test 7 - This is a paragraph inside something that does not have a compositing layer.</p> |
+ </div> |
+ <div id="test8" class="d"> |
+ Test 8 - This is raw text inside something that does not have a compositing layer. |
+ </div> |
+ |
+ <div id="test9" class="b"> |
+ Test 9 - This is raw text inside something that has a compositing layer. |
+ <div id="test10" class="d"> |
+ Test 10 - This is raw text inside something that does not have a compositing layer. |
+ </div> |
+ </div> |
+ |
+ <div class="a"> |
+ <p id="test11">Test 11 - This is a rotated and scaled paragraph</p> |
+ </div> |
+ <div class="a"> |
+ <div class="b"> |
+ <p id="test12">Test 12 - This is a rotated and scaled paragraph with a <b class="border">nested</b> element that has a border.</p> |
+ </div> |
+ </div> |
+ <div class="b"> |
+ <p id="test13">Test 13 - This is a paragraph with a <b class="border">nested</b> element that has a border.</p> |
+ </div> |
+ <div id="description"></div> |
+ <div id="console"></div> |
+ </body> |
+</html> |