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();      }); | 
