event-contextmenu.html revision 259d076b01f41c9f1846783430d4db658226dab1
0N/A filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min',
0N/A logExclude: { Dom: true, Selector: true, Node: true, attribute: true, base: true, event: true, widget: true }
0N/A }).use('console', 'test', 'event-contextmenu', 'node-event-simulate', 'window-focus', function (Y) {
0N/A var keyDownConfig = Y.UA.os == "macintosh" ? { shiftKey: true, ctrlKey: true, altKey: true, keyCode: 77 } : { shiftKey: true, keyCode: 121 };
0N/A btn.simulate("contextmenu");
0N/A btn.simulate("keydown", keyDownConfig);
(new Y.Console()).render();
var suite = new Y.Test.Suite("ContextMenu");
btn.on("contextmenu", onContextMenu);
btn.simulate("contextmenu");
Y.Assert.isTrue((called === 1), "contextmenu event listener not called");
btn.detach("contextmenu");
btn.on("contextmenu", onContextMenu);
btn.simulate("keydown", { keyCode: 77, shiftKey: true, ctrlKey: true, altKey: true });
if (Y.UA.os == "macintosh") {
Y.Assert.isTrue((called === 1), "contextmenu event listener not called");
Y.Assert.isTrue((called === 0), "ctrl + shift + alt + M should only fire the contextmenu event for mac");
btn.detach("contextmenu");
btn.on("contextmenu", onContextMenu);
btn.once("keydown", function (e) {
btn.simulate("contextmenu");
btn.simulate("keydown", { shiftKey: true, keyCode: 121 });
if (Y.UA.os == "windows") {
Y.Assert.isTrue((called === 1), "contextmenu event listener not called");
Y.Assert.isTrue((called === 0), "the shift + f10 key should only fire the contextmenu event on windows");
btn.detach("contextmenu");
btn.on("contextmenu", onContextMenu);
if (Y.UA.os == "windows") {
btn.once("keydown", function (e) {
if (e.keyCode === 93) {
btn.simulate("contextmenu");
btn.simulate("keydown", { keyCode: 93 });
if (Y.UA.os == "windows") {
Y.Assert.isTrue((called === 1), "contextmenu event listener not called");
Y.Assert.isTrue((called === 0), "the Menu key should only fire the contextmenu event on windows");
btn.detach("contextmenu");
btn.on("contextmenu", onContextMenu);
btn.on("contextmenu", onContextMenu);
Y.Assert.isTrue((called === 2), "contextmenu event listener not called correct number of times");
btn.detach("contextmenu");
doc.delegate("contextmenu", onContextMenu, "button");
doc.delegate("contextmenu", onContextMenu, "button");
Y.Assert.isTrue((called === 2), "contextmenu event listener not called correct number of times");
doc.detach("contextmenu");
btn.on("contextmenu", onContextMenu);
btn.on("contextmenu", onContextMenu);
doc.delegate("contextmenu", onContextMenu, "button");
doc.delegate("contextmenu", onContextMenu, "button");
Y.Assert.isTrue((called === 4), "contextmenu event listener not called correct number of times");
btn.detach("contextmenu");
doc.detach("contextmenu");
Y.Test.Runner.add(suite);