diff options
| author | Misko Hevery | 2012-05-09 19:27:15 -0400 |
|---|---|---|
| committer | Misko Hevery | 2012-05-17 10:36:45 -0700 |
| commit | acf095d1783e30e750d046ef24e81b5a0a31fbd4 (patch) | |
| tree | c77ebb4302b4399cd0fa04281ae01f2119da220d /test/ngMock/angular-mocksSpec.js | |
| parent | 301d8f233b363b27c5e8ded009ee5fd875c174fc (diff) | |
| download | angular.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.js | 36 |
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(); }); |
