steal("jquerypp/event/hover", 'syn', 'steal-qunit', function ($, Syn){ module("jquerypp/dom/hover"); test("hovering", function (){ $("#qunit-fixture").append("
Content
"); var hoverenters = 0, hoverinits = 0, hoverleaves = 0, delay = 15; $("#hover").bind("hoverinit", function (ev, hover){ hover.delay(delay); hoverinits++ ; } ).bind('hoverenter', function (){ hoverenters++ ; } ).bind('hoverleave', function (){ hoverleaves++ ; } ); var hover = $("#hover"); var off = hover.offset(); Syn("mouseover", { pageX: off.top, pageY: off.left} , hover[0]); ok(hoverinits, 'hoverinit'); ok(hoverenters === 0, "hoverinit hasn't been called"); stop(); _AN_Call_settimeout("setTimeout", window, function (){ ok(hoverenters === 1, "hoverenter has been called"); ok(hoverleaves === 0, "hoverleave hasn't been called"); Syn("mouseout", { pageX: off.top, pageY: off.left} , hover[0]); ok(hoverleaves === 1, "hoverleave has been called"); delay = 30; Syn("mouseover", { pageX: off.top, pageY: off.left} , hover[0]); ok(hoverinits === 2, 'hoverinit'); _AN_Call_settimeout('setTimeout', window, function (){ Syn("mouseout", { pageX: off.top, pageY: off.left} , hover[0]); _AN_Call_settimeout("setTimeout", window, function (){ ok(hoverenters === 1, "hoverenter was not called"); ok(hoverleaves === 1, "hoverleave was not called"); start(); } , 30); } , 10); } , 30); } ); test("hoverInit delay 0 triggers hoverenter (issue #57)", function (){ $("#qunit-fixture").append("
Content
"); var hoverenters = 0, hoverinits = 0, hoverleaves = 0, delay = 0; $("#hoverzero").on({ hoverinit: function (ev, hover){ hover.delay(delay); hoverinits++ ; } , hoverenter: function (){ hoverenters++ ; } , 'hoverleave': function (){ hoverleaves++ ; } } ); var hover = $("#hoverzero"); var off = hover.offset(); Syn("mouseover", { pageX: off.top, pageY: off.left} , hover[0]); ok(hoverinits, 'hoverinit'); ok(hoverenters === 1, "hoverenter has been called"); } ); } );