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