diff options
| author | Vojta Jina | 2012-04-02 12:26:57 -0700 | 
|---|---|---|
| committer | Vojta Jina | 2012-04-03 10:10:44 -0700 | 
| commit | a22e0699bef61a7083b0b628fb6043531c0ca1c0 (patch) | |
| tree | c5ca4dfa9fbef8804d3f623379dac1c0b47d7b2e /test/ng/snifferSpec.js | |
| parent | 28ff7c3a66fbd770515273c7ca2fcb9cd936b50e (diff) | |
| download | angular.js-a22e0699bef61a7083b0b628fb6043531c0ca1c0.tar.bz2 | |
feat($sniffer): add hasEvent method for sniffing events
Skip changelog
Diffstat (limited to 'test/ng/snifferSpec.js')
| -rw-r--r-- | test/ng/snifferSpec.js | 39 | 
1 files changed, 39 insertions, 0 deletions
| diff --git a/test/ng/snifferSpec.js b/test/ng/snifferSpec.js index b359e118..4e5f50ec 100644 --- a/test/ng/snifferSpec.js +++ b/test/ng/snifferSpec.js @@ -30,4 +30,43 @@ describe('$sniffer', function() {        expect(sniffer({onhashchange: true, document: {documentMode: 7}}).hashchange).toBe(false);      });    }); + + +  describe('hasEvent', function() { +    var mockDocument, mockDivElement, $sniffer; + +    beforeEach(function() { +      mockDocument = {createElement: jasmine.createSpy('createElement')}; +      mockDocument.createElement.andCallFake(function(elm) { +        if (elm === 'div') return mockDivElement; +      }); + +      $sniffer = sniffer({document: mockDocument}); +    }); + + +    it('should return true if "oninput" is present in a div element', function() { +      mockDivElement = {oninput: noop}; + +      expect($sniffer.hasEvent('input')).toBe(true); +    }); + + +    it('should return false if "oninput" is not present in a div element', function() { +      mockDivElement = {}; + +      expect($sniffer.hasEvent('input')).toBe(false); +    }); + + +    it('should only create the element once', function() { +      mockDivElement = {}; + +      $sniffer.hasEvent('input'); +      $sniffer.hasEvent('input'); +      $sniffer.hasEvent('input'); + +      expect(mockDocument.createElement).toHaveBeenCalledOnce(); +    }); +  });  }); | 
