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.js46
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);
+ }));
+});