Merge pull request #223 from camptocamp/access_panelbutton
make it possible to create accessible panel buttons
This commit is contained in:
@@ -27,9 +27,44 @@
|
||||
buttonClick.destroy();
|
||||
events.destroy();
|
||||
}
|
||||
|
||||
function test_getPressedButton(t) {
|
||||
t.plan(4);
|
||||
|
||||
// set up
|
||||
|
||||
events = new OpenLayers.Events({}, element);
|
||||
buttonClick = new OpenLayers.Events.buttonclick(events);
|
||||
|
||||
var button = document.createElement('button'),
|
||||
span1 = document.createElement('span'),
|
||||
span2 = document.createElement('span'),
|
||||
span3 = document.createElement('span');
|
||||
button.className = 'olButton';
|
||||
button.appendChild(span1);
|
||||
span1.appendChild(span2);
|
||||
span2.appendChild(span3);
|
||||
|
||||
t.ok(buttonClick.getPressedButton(button) === button,
|
||||
'getPressedButton returns button when element is button');
|
||||
t.ok(buttonClick.getPressedButton(span1) === button,
|
||||
'getPressedButton returns button when element is button descendant level 1');
|
||||
t.ok(buttonClick.getPressedButton(span2) === button,
|
||||
'getPressedButton returns button when element is button descendant level 2');
|
||||
t.eq(buttonClick.getPressedButton(span3), undefined,
|
||||
'getPressedButton returns undefined when element is button descendant level 3');
|
||||
|
||||
// test
|
||||
|
||||
|
||||
// tear down
|
||||
|
||||
buttonClick.destroy();
|
||||
events.destroy();
|
||||
}
|
||||
|
||||
function test_ButtonClick_buttonClick(t) {
|
||||
t.plan(23);
|
||||
t.plan(27);
|
||||
events = new OpenLayers.Events({}, element);
|
||||
events.on({
|
||||
"buttonclick": logEvent,
|
||||
@@ -38,7 +73,8 @@
|
||||
"click": logEvent,
|
||||
"dblclick": logEvent,
|
||||
"touchstart": logEvent,
|
||||
"touchend": logEvent
|
||||
"touchend": logEvent,
|
||||
"keydown": logEvent
|
||||
});
|
||||
buttonClick = events.extensions["buttonclick"];
|
||||
|
||||
@@ -111,12 +147,26 @@
|
||||
t.eq(log[1].type, "buttonclick", "buttonclick for 2nd click IE");
|
||||
|
||||
// rightclick
|
||||
log = []
|
||||
log = [];
|
||||
trigger({type: "mousedown", button: 2});
|
||||
trigger({type: "mouseup", button: 2});
|
||||
t.eq(log.length, 2, "two events fired for rightclick");
|
||||
t.eq(log[0].type, "mousedown", "mousedown from rightclick goes through");
|
||||
t.eq(log[1].type, "mouseup", "mouseup from rightclick goes through");
|
||||
|
||||
// keydown RETURN
|
||||
log = [];
|
||||
trigger({type: "keydown", keyCode: OpenLayers.Event.KEY_RETURN});
|
||||
trigger({type: "click"});
|
||||
t.eq(log.length, 1, "one event fired for RETURN keydown");
|
||||
t.eq(log[0].type, "buttonclick", "buttonclick for RETURN keydown");
|
||||
|
||||
// keydown SPACE
|
||||
log = [];
|
||||
trigger({type: "keydown", keyCode: OpenLayers.Event.KEY_SPACE});
|
||||
trigger({type: "click"});
|
||||
t.eq(log.length, 1, "one event fired for SPACE keydown");
|
||||
t.eq(log[0].type, "buttonclick", "buttonclick for SPACE keydown");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
Reference in New Issue
Block a user