| <script src='../../resources/testharness.js'></script> |
| <script src='../../resources/testharnessreport.js'></script> |
| <body> |
| <canvas id='canvas' width='400' height='400'> |
| </canvas> |
| <script src='./resources/canvas-hit-region-event.js'></script> |
| <script> |
| test(function(t) { |
| |
| var canvas = document.getElementById('canvas'); |
| var context = canvas.getContext('2d'); |
| |
| context.rect(20, 20, 60, 60); |
| context.rect(0, 0, 100, 100); |
| context.addHitRegion({ |
| id : 'nonzero' |
| // default fillRule |
| }); |
| |
| // default fillRule(nonzero) |
| assert_equals(clickCanvas(1, 1), 'nonzero'); |
| assert_equals(clickCanvas(99, 98), 'nonzero'); |
| assert_equals(clickCanvas(21, 21), 'nonzero'); |
| assert_equals(clickCanvas(50, 50), 'nonzero'); |
| |
| context.removeHitRegion('nonzero'); |
| |
| context.addHitRegion({ |
| id : 'evenodd', |
| fillRule : 'evenodd' |
| }); |
| |
| // fillRule = evenodd |
| assert_equals(clickCanvas(1, 1), 'evenodd'); |
| assert_equals(clickCanvas(99, 98), 'evenodd'); |
| assert_equals(clickCanvas(21, 21), null); |
| assert_equals(clickCanvas(50, 50), null); |
| |
| context.removeHitRegion('evenodd'); |
| |
| context.addHitRegion({ |
| id : 'nonzero', |
| fillRule : 'nonzero' |
| }); |
| |
| // fillRule = nonzero |
| assert_equals(clickCanvas(1, 1), 'nonzero'); |
| assert_equals(clickCanvas(99, 98), 'nonzero'); |
| assert_equals(clickCanvas(21, 21), 'nonzero'); |
| assert_equals(clickCanvas(50, 50), 'nonzero'); |
| |
| context.removeHitRegion('nonzero'); |
| |
| assert_throws_js(TypeError, function() { |
| context.addHitRegion({id : 'nonzero', fillRule : null}); |
| }); |
| |
| context.addHitRegion({ |
| id : 'nonzero', |
| fillRule : undefined |
| }); |
| |
| // fillRule = undefined, falls back to default (nonzero):'); |
| assert_equals(clickCanvas(1, 1), 'nonzero'); |
| assert_equals(clickCanvas(99, 98), 'nonzero'); |
| assert_equals(clickCanvas(21, 21), 'nonzero'); |
| assert_equals(clickCanvas(50, 50), 'nonzero'); |
| |
| }, 'Canvas Hit Regions: fillRule test'); |
| </script> |
| </body> |