Index: third_party/WebKit/LayoutTests/fast/html/resources/hit-test.js |
diff --git a/third_party/WebKit/LayoutTests/fast/html/resources/hit-test.js b/third_party/WebKit/LayoutTests/fast/html/resources/hit-test.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..54cda3e5cd183f64254919451e52f04ea1087a9f |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/html/resources/hit-test.js |
@@ -0,0 +1,42 @@ |
+setup({explicit_done: true}); |
+ |
+var img = document.getElementById('img'); |
+var area = document.getElementById('area'); |
+ |
+var hitRect = [[area, 3, 3], [area, 9, 9], [img, 1, 3], [img, 3, 1], [img, 11, 9], [img, 9, 11], [img, 21, 41], [img, 101, 101]]; |
+var hitNone = [[img, 3, 3], [img, 9, 9], [img, 1, 3], [img, 3, 1], [img, 11, 9], [img, 9, 11], [img, 21, 41], [img, 101, 101]]; |
+var hitAll = [[area, 1, 1], [area, 1, 299], [area, 299, 1], [area, 299, 299], [area, 21, 41], [area, 101, 101]]; |
+var hitCircle = [[area, 11, 40], [area, 29, 40], [area, 20, 31], [area, 20, 49], [img, 12, 32], [img, 28, 48], [img, 101, 101]]; |
+var hitPoly = [[area, 101, 101], [area, 119, 101], [area, 101, 119], [img, 118, 118], [img, 3, 3], [img, 21, 41]]; |
+var hitStar = [[area, 101, 101], [area, 199, 101], [area, 150, 51], [img, 150, 125], [img, 3, 3], [img, 21, 41]]; |
+ |
+var tests; |
+// The test file should have `tests` defined as follows: |
+// tests = [ |
+// {desc: string, shape: string?, coords: string?, hit: [[element, x, y], ...]}, |
+// ... |
+// ]; |
+ |
+onload = function() { |
+ tests.forEach(function(t) { |
+ test(function(t_obj) { |
+ if (area.shape === null) { |
+ area.removeAttribute('shape'); |
+ } else { |
+ area.shape = t.shape; |
+ } |
+ if (area.coords === null) { |
+ area.removeAttribute('coords'); |
+ } else { |
+ area.coords = t.coords; |
+ } |
+ t.hit.forEach(function(arr) { |
+ var expected = arr[0]; |
+ var x = arr[1]; |
+ var y = arr[2]; |
+ assert_equals(document.elementFromPoint(x, y), expected, 'elementFromPoint('+x+', '+y+')'); |
+ }); |
+ }, t.desc + ': ' + format_value(t.coords) + ' (' + t.shape + ')'); |
+ }); |
+ done(); |
+}; |