aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/snifferSpec.js
diff options
context:
space:
mode:
authorVojta Jina2012-04-02 12:26:57 -0700
committerVojta Jina2012-04-03 10:10:44 -0700
commita22e0699bef61a7083b0b628fb6043531c0ca1c0 (patch)
treec5ca4dfa9fbef8804d3f623379dac1c0b47d7b2e /test/ng/snifferSpec.js
parent28ff7c3a66fbd770515273c7ca2fcb9cd936b50e (diff)
downloadangular.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.js39
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();
+ });
+ });
});