summaryrefslogtreecommitdiffstats
path: root/js/vendor/angular-ui/modules/directives/keypress/test/keyupSpec.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/vendor/angular-ui/modules/directives/keypress/test/keyupSpec.js')
-rw-r--r--js/vendor/angular-ui/modules/directives/keypress/test/keyupSpec.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/js/vendor/angular-ui/modules/directives/keypress/test/keyupSpec.js b/js/vendor/angular-ui/modules/directives/keypress/test/keyupSpec.js
new file mode 100644
index 000000000..d2ffa18e4
--- /dev/null
+++ b/js/vendor/angular-ui/modules/directives/keypress/test/keyupSpec.js
@@ -0,0 +1,67 @@
+describe('uiKeyup', function () {
+
+ var $scope, $compile;
+
+ var createKeyEvent = function (mainKey, alt, ctrl, shif) {
+ var keyEvent = jQuery.Event("keyup");
+
+ keyEvent.keyCode = mainKey;
+ keyEvent.altKey = alt || false;
+ keyEvent.ctrlKey = ctrl || false;
+ keyEvent.shiftKey = shif || false;
+
+ return keyEvent;
+ };
+
+ var createElement = function (elementDef) {
+ var elementStr = angular.isString(elementDef) ? elementDef : angular.toJson(elementDef);
+ return $compile("<span ui-keyup='" + elementStr + "'></span>")($scope);
+ };
+
+ beforeEach(module('ui.directives'));
+ beforeEach(inject(function (_$rootScope_, _$compile_) {
+ $compile = _$compile_;
+ $scope = _$rootScope_.$new();
+
+ $scope.cb = function (event) {
+ this.event1 = event;
+ };
+ }));
+
+ it('should support single key press', function () {
+ createElement({'13': 'event=true'}).trigger(createKeyEvent(13));
+ expect($scope.event).toBe(true);
+ });
+
+ it('should support combined key press', function () {
+ createElement({'ctrl-shift-13': 'event=true'}).trigger(createKeyEvent(13, false, true, true));
+ expect($scope.event).toBe(true);
+ });
+
+ it('should support alternative combinations', function () {
+ $scope.event = 0;
+ createElement({'ctrl-shift-14 ctrl-shift-13': 'event=event+1'}).trigger(createKeyEvent(13, false, true, true)).trigger(createKeyEvent(14, false, true, true));
+ expect($scope.event).toBe(2);
+ });
+
+ it('should support multiple key press definitions', function () {
+ var elm = createElement({'13': 'event1=true', 'ctrl-shift-13': 'event2=true'});
+
+ elm.trigger(createKeyEvent(13));
+ expect($scope.event1).toBe(true);
+
+ elm.trigger(createKeyEvent(13, false, true, true));
+ expect($scope.event2).toBe(true);
+ });
+
+ it('should support $event in expressions', function () {
+
+ var element = createElement({'esc': 'cb($event)', '13': 'event2=$event'});
+
+ element.trigger(createKeyEvent(27));
+ expect($scope.event1.keyCode).toBe(27);
+
+ element.trigger(createKeyEvent(13));
+ expect($scope.event2.keyCode).toBe(13);
+ });
+}); \ No newline at end of file