aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/directive/aSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/ng/directive/aSpec.js')
-rw-r--r--test/ng/directive/aSpec.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/test/ng/directive/aSpec.js b/test/ng/directive/aSpec.js
index dc0de729..bd9f246d 100644
--- a/test/ng/directive/aSpec.js
+++ b/test/ng/directive/aSpec.js
@@ -84,4 +84,71 @@ describe('a', function() {
expect(jq.prototype.on).not.toHaveBeenCalled();
});
+
+
+ if (isDefined(window.SVGElement)) {
+ describe('SVGAElement', function() {
+ it('should prevent default action to be executed when href is empty', function() {
+ var orgLocation = document.location.href,
+ preventDefaultCalled = false,
+ event,
+ child;
+
+ element = $compile('<svg><a xlink:href="">empty link</a></svg>')($rootScope);
+ child = element.children('a');
+
+ if (msie < 9) {
+
+ event = document.createEventObject();
+ expect(event.returnValue).not.toBeDefined();
+ child[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();
+ };
+
+ child[0].dispatchEvent(event);
+
+ expect(preventDefaultCalled).toEqual(true);
+ }
+
+ expect(document.location.href).toEqual(orgLocation);
+ });
+
+
+ it('should not link and hookup an event if xlink:href is present at compile', function() {
+ var jq = jQuery || jqLite;
+ element = jq('<svg><a xlink:href="bobby">hello@you</a></svg>');
+ var linker = $compile(element);
+
+ spyOn(jq.prototype, 'on');
+
+ linker($rootScope);
+
+ expect(jq.prototype.on).not.toHaveBeenCalled();
+ });
+
+
+ it('should not link and hookup an event if name is present at compile', function() {
+ var jq = jQuery || jqLite;
+ element = jq('<svg><a name="bobby">hello@you</a></svg>');
+ var linker = $compile(element);
+
+ spyOn(jq.prototype, 'on');
+
+ linker($rootScope);
+
+ expect(jq.prototype.on).not.toHaveBeenCalled();
+ });
+ });
+ }
});