diff options
Diffstat (limited to 'test/ng/directive/aSpec.js')
| -rw-r--r-- | test/ng/directive/aSpec.js | 46 | 
1 files changed, 46 insertions, 0 deletions
diff --git a/test/ng/directive/aSpec.js b/test/ng/directive/aSpec.js new file mode 100644 index 00000000..8aa2449d --- /dev/null +++ b/test/ng/directive/aSpec.js @@ -0,0 +1,46 @@ +'use strict'; + +describe('a', function() { +  var element; + + +  afterEach(function(){ +    dealoc(element); +  }); + + +  it('should prevent default action to be executed when href is empty', +      inject(function($rootScope, $compile) { +    var orgLocation = document.location.href, +        preventDefaultCalled = false, +        event; + +    element = $compile('<a href="">empty link</a>')($rootScope); + +    if (msie < 9) { + +      event = document.createEventObject(); +      expect(event.returnValue).not.toBeDefined(); +      element[0].fireEvent('onclick', event); +      expect(event.returnValue).toEqual(false); + +    } else { + +      event = document.createEvent('MouseEvent'); +      event.initMouseEvent( +        'click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + +      event.preventDefaultOrg = event.preventDefault; +      event.preventDefault = function() { +        preventDefaultCalled = true; +        if (this.preventDefaultOrg) this.preventDefaultOrg(); +      }; + +      element[0].dispatchEvent(event); + +      expect(preventDefaultCalled).toEqual(true); +    } + +    expect(document.location.href).toEqual(orgLocation); +  })); +});  | 
