[CORD-965] Fixed Safari bug on Keyboard Shortcut and added tests

Change-Id: Ibaf99ea4eccda47105f6dba149950b55ad7f383c
diff --git a/src/app/template/directives/directives.ts b/src/app/template/directives/directives.ts
index 625c101..3e4840d 100644
--- a/src/app/template/directives/directives.ts
+++ b/src/app/template/directives/directives.ts
@@ -7,23 +7,41 @@
 import * as $ from 'jquery';
 import {IXosKeyboardShortcutService} from '../../core/services/keyboard-shortcut';
 
+export interface IXosNavHandlerService {
+  minimalize: () => void;
+}
+
+export class XosNavHandlerService implements IXosNavHandlerService {
+
+  static $inject = ['XosKeyboardShortcut'];
+
+  constructor(
+    private XosKeyboardShortcut: IXosKeyboardShortcutService
+  ) {
+    this.XosKeyboardShortcut.registerKeyBinding({
+      key: 'n',
+      description: 'Toggle Navigation',
+      cb: this.minimalize,
+    }, 'global');
+  }
+
+  public minimalize() {
+    $("body").toggleClass("nav-toggle");
+  }
+
+}
+
 /**
  * minimalizaSidebar - Directive for minimalize sidebar
  */
-export function minimalizaMenu($rootScope, XosKeyboardShortcut: IXosKeyboardShortcutService) {
+export function minimalizaMenu() {
   return {
     restrict: 'EA',
     template: '<div class="left-nav-toggle"><a href ng-click="minimalize()"><i class="stroke-hamburgermenu"></i> </a>',
-    controller: function ($scope, $element) {
+    controller: function ($scope, XosNavHandler: IXosNavHandlerService) {
       $scope.minimalize = function () {
-        $("body").toggleClass("nav-toggle");
+        XosNavHandler.minimalize();
       };
-
-      XosKeyboardShortcut.registerKeyBinding({
-        key: 'n',
-        description: 'Toggle Navigation',
-        cb: $scope.minimalize,
-      }, 'global');
     }
   };
 }