blob: e8f2ec31b414318732bed628cff861fa4b4dbd1b [file] [log] [blame]
<!doctype html>
<html>
<head>
<title>maction toggle</title>
<script type="text/javascript">
function click(id, bubble, preventDefault)
{
var event = new MouseEvent('click', {bubbles: bubble, cancelable: true});
if (preventDefault)
event.preventDefault();
document.getElementById(id).dispatchEvent(event);
}
function test()
{
// selection=1 ; ([1] 2 3 4)
// After three clicks, selection=4: (1 2 3 [4])
click('m1'); click('m1'); click('m1');
// selection=2 ; (1 [2] 3 4)
// After one click, selection=3: (1 2 [3] 4)
click('m2');
// selection=4 ; (1 2 3 [4])
// After one click, selection=1: ([1] 2 3 4)
click('m3');
// Other edge cases
for (var i = 1; i <= 13; i++)
click('e'+i);
// Nested maction elements, bubble = false ; ([([1] 2 3)] 4 5)
// After one click on the inner maction: ([(1 [2] 3)] 4 5)
click('m4', false);
// Nested maction elements, bubble = true ; ([([1] 2 3)] 4 5)
// After one click on the inner maction: ([(1 [2] 3)] 4 5)
// Bubbling sends the event to outer maction handlers, but default handling is done only once.
click('m5', true);
// Prevent default ; ([1] 2 3)
// After one click on the inner maction: ([1] 2 3)
click('m6', false, true);
}
</script>
</head>
<body onload="test()">
<!-- This test verifies the effect of mouse clicks on <maction actiontype="toggle"> elements. -->
<!-- selection="1" (default) ; three clicks -->
<math>
<maction actiontype="toggle" id="m1">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
<mn>4</mn>
</maction>
</math>
<!-- selection="2" ; one click -->
<math>
<maction actiontype="toggle" selection="2" id="m2">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
<mn>4</mn>
</maction>
</math>
<!-- selection="4" (last child) ; one click -->
<math>
<maction actiontype="toggle" selection="4" id="m3">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
<mn>4</mn>
</maction>
</math>
<!-- Other edge cases -->
<math>
<maction actiontype="toggle" id="e1">
</maction>
</math>
<math>
<maction actiontype="toggle" id="e2">
<mn>1</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="-10" id="e3">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="-1" id="e4">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="0" id="e5">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="4" id="e6">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="10" id="e7">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="&#x20;&#x9;&#xD;&#xA;2&#x20;&#x9;&#xD;&#xA;" id="e8">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<maction actiontype="toggle" selection="TWO" id="e9">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<math>
<!-- These values are limits for 32 bits signed integers.
The maction element will convert them to 1 and 3 respectively. -->
<maction actiontype="toggle" selection="-65536" id="e10">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
<maction actiontype="toggle" selection="65535" id="e11">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
<!-- These values are -1 and +1 for 32 or 64 bits signed integers.
The maction element will convert both of them to 1. -->
<maction actiontype="toggle" selection="-18446744073709551617" id="e12">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
<maction actiontype="toggle" selection="18446744073709551617" id="e13">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
<!-- Nested <maction> elements ; bubble = false -->
<math>
<maction actiontype="toggle">
<maction actiontype="toggle" id="m4">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
<mn>4</mn>
<mn>5</mn>
</maction>
</math>
<!-- Nested <maction> elements ; bubble = true -->
<math>
<maction actiontype="toggle">
<maction actiontype="toggle" id="m5">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
<mn>4</mn>
<mn>5</mn>
</maction>
</math>
<!-- Prevent default -->
<math>
<maction actiontype="toggle" id="m6">
<mn>1</mn>
<mn>2</mn>
<mn>3</mn>
</maction>
</math>
</body>
</html>