diff options
Diffstat (limited to 'dom/canvas/test/test_hitregion_event.html')
-rw-r--r-- | dom/canvas/test/test_hitregion_event.html | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/dom/canvas/test/test_hitregion_event.html b/dom/canvas/test/test_hitregion_event.html new file mode 100644 index 000000000..4f74d8200 --- /dev/null +++ b/dom/canvas/test/test_hitregion_event.html @@ -0,0 +1,93 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test click events on canvas hit regions</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<p id="display"> +<canvas id="input"> +</canvas> +</p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +<script type="application/javascript"> +SpecialPowers.pushPrefEnv({"set": [["canvas.hitregions.enabled", true]]}, function() { + + var input = document.getElementById("input"); + var regionId = ""; + input.addEventListener('mousedown', function(evt){ + regionId = evt.region; + }) + + function runTests() + { + try { + var ctx = input.getContext("2d"); + ctx.beginPath(); + ctx.rect(20, 20, 100, 75); + ctx.fill(); + ctx.addHitRegion({id: "a"}); + + ctx.beginPath(); + ctx.fillStyle = "red"; + ctx.rect(60, 40, 100, 75); + ctx.fill(); + ctx.addHitRegion({id: "b"}); + + var mypath = new Path2D(); + mypath.rect(80, 60, 10, 10); + + ctx.beginPath(); + ctx.fillStyle = "yellow"; + ctx.rect(80, 60, 10, 10); + ctx.fill(); + ctx.addHitRegion({id: "c", path: mypath}); + + ctx.beginPath(); + ctx.fillStyle = "green"; + ctx.rect(60, 60, 10, 10); // This region is on purpose not the hit region + ctx.fill(); + var mypath = new Path2D(); + mypath.rect(70, 30, 10, 10); + ctx.addHitRegion({id: "d", path: mypath}); + + synthesizeMouse(input, 25,25, {type: "mousedown"}); + is(regionId, "a", "Hit region a", ". Found: " + regionId); + + synthesizeMouse(input, 5,5, {type: "mousedown", button: 1}); + is(regionId, "", "Hit region null", ". Found: " + regionId); + + synthesizeMouse(input, 65,45, {type: "mousedown"}); + is(regionId, "b", "Hit region b", ". Found: " + regionId); + + synthesizeMouse(input, 85,65, {type: "mousedown"}); + is(regionId, "c", "Hit region c", ". Found: " + regionId); + + synthesizeMouse(input, 75,35, {type: "mousedown"}); + is(regionId, "d", "Hit region d", ". Found: " + regionId); + + ctx.removeHitRegion("c"); + synthesizeMouse(input, 85,65, {type: "mousedown"}); + is(regionId, "b", "Hit region b", ". Found: " + regionId); + } catch (e) { + ok(false, "unexpected exception thrown: " + e); + } + + SimpleTest.finish(); + } + + runTests(); +}); + +SimpleTest.waitForExplicitFinish(); + + +</script> +</pre> +</body> +</html> |