diff options
Diffstat (limited to 'js/vendor/angular-ui/modules/directives/event/test/eventSpec.js')
-rw-r--r-- | js/vendor/angular-ui/modules/directives/event/test/eventSpec.js | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/js/vendor/angular-ui/modules/directives/event/test/eventSpec.js b/js/vendor/angular-ui/modules/directives/event/test/eventSpec.js new file mode 100644 index 000000000..53865f8c5 --- /dev/null +++ b/js/vendor/angular-ui/modules/directives/event/test/eventSpec.js @@ -0,0 +1,79 @@ +describe('uiEvent', function () { + var $scope, $rootScope, $compile; + + beforeEach(module('ui.directives')); + beforeEach(inject(function (_$rootScope_, _$compile_) { + $compile = _$compile_; + $rootScope = _$rootScope_; + })); + + //helper for creating event elements + function eventElement(scope, eventObject) { + scope._uiEvent = eventObject || {}; + return $compile('<span ui-event="_uiEvent">')(scope); + } + + describe('test', function () { + it('should work with dblclick event and assignment', function () { + $scope = $rootScope.$new(); + var elm = eventElement($scope, {'dblclick': 'dbl=true'}); + expect($scope.dbl).toBeUndefined(); + elm.trigger('dblclick'); + expect($scope.dbl).toBe(true); + }); + + it('should work with two events in one key a function', function () { + $scope = $rootScope.$new(); + $scope.counter = 0; + $scope.myfn = function () { + $scope.counter++; + }; + var elm = eventElement($scope, {'keyup mouseenter': 'myfn()'}); + elm.trigger('keyup'); + elm.trigger('mouseenter'); + expect($scope.counter).toBe(2); + }); + + it('should work work with multiple entries', function () { + $scope = $rootScope.$new(); + $scope.amount = 5; + var elm = eventElement($scope, { + 'click': 'amount=amount*2', + 'mouseenter': 'amount=amount*4', + 'keyup': 'amount=amount*3' + }); + elm.trigger('click'); + expect($scope.amount).toBe(10); + elm.trigger('mouseenter'); + expect($scope.amount).toBe(40); + elm.trigger('keyup'); + expect($scope.amount).toBe(120); + }); + + it('should allow passing of $event object', function () { + $scope = $rootScope.$new(); + $scope.clicky = function (par1, $event, par2) { + expect($event.foo).toBe('bar'); + expect(par1).toBe(1); + expect(par2).toBe(2); + }; + var elm = eventElement($scope, {'click': 'clicky(1, $event, 2)'}); + $(elm).trigger({ + type: 'click', + foo: 'bar' + }); + }); + + it('should allow passing of $params object', function () { + $scope = $rootScope.$new(); + $scope.onStuff = function ($event, $params) { + expect($event.type).toBe('stuff'); + expect($params[0]).toBe('foo'); + expect($params[1]).toBe('bar'); + }; + var elm = eventElement($scope, {'stuff': 'onStuff($event, $params)'}); + $(elm).trigger('stuff', ['foo', 'bar']); + }); + }); + +});
\ No newline at end of file |