diff options
| author | Igor Minar | 2010-09-30 23:07:36 +0800 | 
|---|---|---|
| committer | Misko Hevery | 2010-10-01 07:44:46 +0800 | 
| commit | 8248e77a7b910bcbc71ca25c06bef44dd6712990 (patch) | |
| tree | 333b5b91e914a96f27b214bac3ef61c8d04e5b4d /test/widgetsSpec.js | |
| parent | 0af763dcec8b9f6b17208ac58607cd1124382f63 (diff) | |
| download | angular.js-8248e77a7b910bcbc71ca25c06bef44dd6712990.tar.bz2 | |
'A' tag widget and ng:click propagation change
* added a widget for A (anchor) tag, that modifies the default behavior
  and prevent default action (location change and page reload) for tags
  with empty href attribute
* stopped event propagation for all ng:click handlers
Diffstat (limited to 'test/widgetsSpec.js')
| -rw-r--r-- | test/widgetsSpec.js | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js index d113e6ee..edaa5061 100644 --- a/test/widgetsSpec.js +++ b/test/widgetsSpec.js @@ -498,5 +498,40 @@ describe("widget", function(){        expect(element.text()).toEqual('');      });    }); + +  describe('a', function() { +    it('should prevent default action to be executed when href is empty', function() { +      var orgLocation = document.location.href, +          preventDefaultCalled = false, +          event; + +      compile('<a href="">empty link</a>'); + +      if (msie) { + +        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); +    }); +  })  });  | 
