aboutsummaryrefslogtreecommitdiffstats
path: root/test/ngMock/angular-mocksSpec.js
diff options
context:
space:
mode:
authorMisko Hevery2012-05-09 19:27:15 -0400
committerMisko Hevery2012-05-17 10:36:45 -0700
commitacf095d1783e30e750d046ef24e81b5a0a31fbd4 (patch)
treec77ebb4302b4399cd0fa04281ae01f2119da220d /test/ngMock/angular-mocksSpec.js
parent301d8f233b363b27c5e8ded009ee5fd875c174fc (diff)
downloadangular.js-acf095d1783e30e750d046ef24e81b5a0a31fbd4.tar.bz2
fix(jqLite): have same expando format as jQuery
Diffstat (limited to 'test/ngMock/angular-mocksSpec.js')
-rw-r--r--test/ngMock/angular-mocksSpec.js36
1 files changed, 30 insertions, 6 deletions
diff --git a/test/ngMock/angular-mocksSpec.js b/test/ngMock/angular-mocksSpec.js
index 88946ab9..469df91e 100644
--- a/test/ngMock/angular-mocksSpec.js
+++ b/test/ngMock/angular-mocksSpec.js
@@ -353,6 +353,18 @@ describe('ngMock', function() {
return keys.sort();
}
+ function browserTrigger(element, eventType) {
+ element = element[0];
+ if (document.createEvent) {
+ var event = document.createEvent('MouseEvents');
+ event.initMouseEvent(eventType, true, true, window, 0, 0, 0, 0, 0, false, false,
+ false, false, 0, element);
+ element.dispatchEvent(event);
+ } else {
+ element.fireEvent('on' + eventType);
+ }
+ }
+
it('should remove data', function() {
expect(angular.element.cache).toEqual({});
var div = angular.element('<div></div>');
@@ -364,17 +376,29 @@ describe('ngMock', function() {
it('should deregister event handlers', function() {
expect(keys(angular.element.cache)).toEqual([]);
-
+ var log = '';
var div = angular.element('<div></div>');
- div.bind('click', angular.noop);
- div.bind('mousemove', angular.noop);
- div.data('some', 'data');
- expect(keys(angular.element.cache).length).toBe(1);
+ // crazy IE9 requires div to be connected to render DOM for click event to work
+ // mousemove works even when not connected. This is a heisen-bug since stepping
+ // through the code makes the test pass. Viva IE!!!
+ angular.element(document.body).append(div)
+
+ div.bind('click', function() { log += 'click1;'});
+ div.bind('click', function() { log += 'click2;'});
+ div.bind('mousemove', function() { log += 'mousemove;'});
+
+ browserTrigger(div, 'click');
+ browserTrigger(div, 'mousemove');
+ expect(log).toEqual('click1;click2;mousemove;');
+ log = '';
angular.mock.clearDataCache();
+
+ browserTrigger(div, 'click');
+ browserTrigger(div, 'mousemove');
+ expect(log).toEqual('');
expect(keys(angular.element.cache)).toEqual([]);
- expect(div.data('some')).toBeUndefined();
div.remove();
});