From c8ee631c1999fc87c0002bb27bd411fb953a726f Mon Sep 17 00:00:00 2001
From: Misko Hevery
Date: Fri, 10 Feb 2012 21:16:50 -0800
Subject: feat(mouseenter/mouseleave): emulating ie events
---
test/jqLiteSpec.js | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
(limited to 'test')
diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js
index 8b49502f..358b8c4a 100644
--- a/test/jqLiteSpec.js
+++ b/test/jqLiteSpec.js
@@ -603,6 +603,50 @@ describe('jqLite', function() {
browserTrigger(a, 'click');
});
+
+ describe('mouseenter-mouseleave', function() {
+ var root, parent, sibling, child, log;
+
+ beforeEach(function() {
+ log = '';
+ root = jqLite('
');
+ parent = root.find('p');
+ sibling = root.find('ul');
+ child = parent.find('span');
+
+ parent.bind('mouseenter', function() { log += 'parentEnter;'; });
+ parent.bind('mouseleave', function() { log += 'parentLeave;'; });
+ parent.mouseover = function(event) { parent.data('bind').mouseover(event || {}); };
+ parent.mouseout = function(event) { parent.data('bind').mouseout(event || {}); };
+
+ child.bind('mouseenter', function() { log += 'childEnter;'; });
+ child.bind('mouseleave', function() { log += 'childLeave;'; });
+ child.mouseover = function(event) { child.data('bind').mouseover(event || {}); };
+ child.mouseout = function(event) { child.data('bind').mouseout(event || {}); };
+ });
+
+ afterEach(function() {
+ dealoc(root);
+ });
+
+ it('should fire mouseenter when coming from outside the browser window', function() {
+ if (window.jQuery) return;
+ parent.mouseover();
+ expect(log).toEqual('parentEnter;');
+
+ child.mouseover();
+ expect(log).toEqual('parentEnter;childEnter;');
+ child.mouseover();
+ expect(log).toEqual('parentEnter;childEnter;');
+
+ child.mouseout();
+ expect(log).toEqual('parentEnter;childEnter;');
+ child.mouseout();
+ expect(log).toEqual('parentEnter;childEnter;childLeave;');
+ parent.mouseout();
+ expect(log).toEqual('parentEnter;childEnter;childLeave;parentLeave;');
+ });
+ });
});
--
cgit v1.2.3