Index: third_party/WebKit/LayoutTests/fast/canvas/canvas-hit-regions-fallback-element-test.html |
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-hit-regions-fallback-element-test.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-hit-regions-fallback-element-test.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..17e59e8db333e97fbe44d2dcfa377aaef3836851 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-hit-regions-fallback-element-test.html |
@@ -0,0 +1,91 @@ |
+<!DOCTYPE html> |
+<title>HitRegion Canvas Fallback Element Test</title> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<script src="./resources/test-helpers.js"></script> |
+<canvas width="400" height="400"> |
+ <a id="a"></a> |
+ <a id="a_with_image"><img></a> |
+ <button id="button"></button> |
+ <input id="checkbox" type="checkbox"> |
+ <input id="radio" type="radio"> |
+ <input id="input_button" type="button"> |
+ <input id="input_image_button" type="image"> |
+ <select id="empty_select"></select> |
+ <select id="select_size_greater_than_1" size="2"></select> |
+ <select id="select_multiple" multiple="multiple"></select> |
+ <select> |
+ <option id="option_with_select"></option> |
+ </select> |
+ <select multiple="multiple"> |
+ <option id="option_with_select_multiple"></option> |
+ </select> |
+ <select size="2"> |
+ <option id="option_with_select_size_greater_than_1"></option> |
+ </select> |
+ <p id="p"></p> |
+ <p id="p_with_tabindex" tabindex="0"></p> |
+ <table> |
+ <caption></caption> |
+ <thead><tr><th></th></tr></thead> |
+ <tfoot><tr><td></td></tr></tfoot> |
+ <tbody><tr><td></td></tr></tbody> |
+ </table> |
+</canvas> |
+<button id="button_is_not_descendant_of_canvas"></button> |
+<style> |
+ |
+body { |
+ margin : 0px; |
+ padding : 0px; |
+} |
+ |
+</style> |
+<script> |
+ |
+function canvas_fallback_test(element, expected) { |
+ test(function() { |
+ var canvas = document.querySelector('canvas'); |
+ var context = canvas.getContext('2d'); |
+ |
+ context.clearRect(0, 0, 400, 400); |
+ context.rect(0, 0, 100, 100); |
+ if (expected) { |
+ assert_throws(expected, function() { |
+ context.addHitRegion({ control : element }); |
+ }); |
+ } else { |
+ context.addHitRegion({ control : element }); |
+ } |
+ }, element.id); |
+} |
+ |
+const NotSupportedError = { name : 'NotSupportedError' }; |
+ |
+canvas_fallback_test(document.getElementById('button_is_not_descendant_of_canvas'), NotSupportedError); |
+canvas_fallback_test(document.querySelector('canvas'), NotSupportedError); |
+canvas_fallback_test(document.getElementById('a')); |
+canvas_fallback_test(document.getElementById('a_with_image'), NotSupportedError); |
+canvas_fallback_test(document.getElementById('button')); |
+canvas_fallback_test(document.getElementById('checkbox')); |
+canvas_fallback_test(document.getElementById('radio')); |
+canvas_fallback_test(document.getElementById('input_button')); |
+canvas_fallback_test(document.getElementById('input_image_button'), NotSupportedError); |
+canvas_fallback_test(document.getElementById('empty_select'), NotSupportedError); |
+canvas_fallback_test(document.getElementById('select_size_greater_than_1')); |
+canvas_fallback_test(document.getElementById('select_multiple')); |
+canvas_fallback_test(document.getElementById('option_with_select'), NotSupportedError); |
+canvas_fallback_test(document.getElementById('option_with_select_multiple')); |
+canvas_fallback_test(document.getElementById('option_with_select_size_greater_than_1')); |
+canvas_fallback_test(document.getElementById('p'), NotSupportedError); |
+canvas_fallback_test(document.getElementById('p_with_tabindex')); |
+canvas_fallback_test(document.querySelector('canvas table')); |
+canvas_fallback_test(document.querySelector('canvas tr')); |
+canvas_fallback_test(document.querySelector('canvas th')); |
+canvas_fallback_test(document.querySelector('canvas td')); |
+canvas_fallback_test(document.querySelector('canvas thead')); |
+canvas_fallback_test(document.querySelector('canvas tfoot')); |
+canvas_fallback_test(document.querySelector('canvas tbody')); |
+canvas_fallback_test(document.querySelector('canvas caption')); |
+ |
+</script> |