]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
Refactored unit tests for Keyboard Util to always use jQuery Events.
authorMarius Olbertz <marius.olbertz@gmail.com>
Sat, 5 Nov 2016 09:48:29 +0000 (10:48 +0100)
committerMarius Olbertz <marius.olbertz@gmail.com>
Sat, 5 Nov 2016 09:48:29 +0000 (10:48 +0100)
test/javascript/util/keyboard.js

index fcee539d2dfd89c9731b688e58ba02581e592ae2..9f4f09f7e24fd69d95d910236d8ce21c4be18ab4 100644 (file)
@@ -1,9 +1,10 @@
 describe('Keyboard util', function() {
   /**
-   * Create object to use as fake event.
+   * Creates a dummy event to parse.
+   * Uses jQuery Event class constructor.
    * @param  {number} keyCode Key code of the key that is simulated.
    * @param  {object} opts    Options that say if modifiers are pressed.
-   * @return {object}         Object to use intead of an event.
+   * @return {Event}          Event to use.
    */
   const createEvent = function(keyCode, opts) {
     let options = opts || {},
@@ -19,7 +20,7 @@ describe('Keyboard util', function() {
           keyCode: keyCode,
           which: keyCode
         };
-    return event;
+    return new $.Event('keydown', event);
   };
   const keyCodes = {
     'A': 65,
@@ -200,8 +201,8 @@ describe('Keyboard util', function() {
       Foundation.Keyboard.trapFocus($html);
       $html.find('a').last().focus();
 
-      // Three links, so move focus foreward three times
-      $(document.activeElement).trigger(new $.Event('keydown', createEvent(keyCodes['TAB'])));
+      let event = createEvent(keyCodes['TAB']);
+      $(document.activeElement).trigger(event);
 
       document.activeElement.should.be.equal($html.find('a').eq(0)[0]);
 
@@ -218,7 +219,8 @@ describe('Keyboard util', function() {
       Foundation.Keyboard.trapFocus($html);
       $html.find('a').first().focus();
 
-      $(document.activeElement).trigger(new $.Event('keydown', createEvent(keyCodes['TAB'], {shift: true})));
+      let event = createEvent(keyCodes['TAB'], {shift: true});
+      $(document.activeElement).trigger(event);
 
       document.activeElement.should.be.equal($html.find('a').eq(2)[0]);
 
@@ -239,7 +241,8 @@ describe('Keyboard util', function() {
 
       Foundation.Keyboard.releaseFocus($html);
 
-      $(document.activeElement).trigger(new $.Event('keydown', createEvent(keyCodes['TAB'])));
+      let event = createEvent(keyCodes['TAB']);
+      $(document.activeElement).trigger(event);
 
       document.activeElement.should.not.be.equal($html.find('a').eq(0)[0]);
 
@@ -258,7 +261,9 @@ describe('Keyboard util', function() {
 
       Foundation.Keyboard.releaseFocus($html);
 
-      $(document.activeElement).trigger(new $.Event('keydown', createEvent(keyCodes['TAB'], {shift: true})));
+
+      let event = createEvent(createEvent(keyCodes['TAB'], {shift: true}));
+      $(document.activeElement).trigger(event);
 
       document.activeElement.should.not.be.equal($html.find('a').eq(2)[0]);