event-contextmenu.html revision f856a43636b28d436393ba16bcbe9016ebf7a59a
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots<!doctype html>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots<html>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots<head>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <meta charset="utf-8">
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <title>YUI Event Delegate Tests</title>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots</head>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots<body lang="en" class="yui3-skin-sam">
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <div id="doc">
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <button id="btn-1">Button 1</button>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots </div>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <script src="/build/yui/yui.js"></script>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <script src="window-focus.js"></script>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots <script type="text/javascript">
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots YUI({
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min',
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots allowRollup: false,
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots lazyEventFacade: true,
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots logExclude: { Dom: true, Selector: true, Node: true, attribute: true, base: true, event: true, widget: true }
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots }).use('console', 'test', 'event-contextmenu', 'node-event-simulate', 'window-focus', function (Y) {
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var suite = new Y.Test.Suite("Delegate");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots (new Y.Console()).render();
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots // add the test cases and suites
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots suite.add(new Y.Test.Case({
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots name: "Event Delegate Tests",
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots test_simple_on_for_mac: function(){
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var success = false;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var btn = Y.one("#btn-1");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.UA.os = "macintosh";
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.on("contextmenu", function (e) {
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots success = true;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.simulate("keydown", { keyCode: 77, shiftKey: true, ctrlKey: true, altKey: true });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Assert.isTrue(success, "contextmenu event listener not called");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.detach("contextmenu");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots },
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots test_menu_key: function(){
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var success = false;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var btn = Y.one("#btn-1");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.UA.os = "windows";
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.on("contextmenu", function (e) {
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots success = true;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.simulate("keydown", { keyCode: 93 });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Assert.isTrue(success, "contextmenu event listener not called");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.detach("contextmenu");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots },
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots test_shiftF10_key: function(){
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var success = false;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var btn = Y.one("#btn-1");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.UA.os = "windows";
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.on("contextmenu", function (e) {
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots success = true;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.simulate("keydown", { shiftKey: true, keyCode: 121 });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Assert.isTrue(success, "contextmenu event listener not called");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.detach("contextmenu");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots },
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots test_multiple_on_listeners: function(){
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var called = 0;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var btn = Y.one("#btn-1");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots var onContextMenu = function (e) {
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots called = called + 1;
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots };
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.on("contextmenu", onContextMenu);
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.on("contextmenu", onContextMenu);
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.simulate("keydown", { shiftKey: true, keyCode: 121 });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots alert(called);
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Assert.isTrue((called === 2), "contextmenu event listener not called correct number of times");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots btn.detach("contextmenu");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots }
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots }));
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots //run all tests
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Test.Runner.setName("Delegate");
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Test.Runner.add(suite);
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots Y.Test.Runner.run();
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots });
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots </script>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots</body>
f856a43636b28d436393ba16bcbe9016ebf7a59aTodd Kloots</html>