Open hint and QL menu in the guided tour

Change-Id: I404b6c798fc403b9fd9e8bddaaf485c67a8d85e3
diff --git a/dev/js/spec/tourSpec.js b/dev/js/spec/tourSpec.js
index e495be4..5dac709 100644
--- a/dev/js/spec/tourSpec.js
+++ b/dev/js/spec/tourSpec.js
@@ -4,8 +4,9 @@
  * @author Helge Stallkamp
  */
 
-define(['tour/tours', 'vc', 'session', 'match'], function(tourClass, vcClass, sessionClass, matchClass){
+define(['tour/tours', 'vc', 'session', 'match', 'hint',  'hint/foundries/cnx', 'selectMenu'], function(tourClass, vcClass, sessionClass, matchClass, hintClass, hintArray, selectMenuClass){
   const loc   = KorAP.Locale;
+  
   var introKorAP =
   	"<form autocomplete='off' action='/' id='searchform'>" + 
     "<div id='searchbar' class=''>" +
@@ -399,7 +400,7 @@
   });
   
   KorAP.vc = vc;
-
+  
   describe('KorAP.GuidedTour', function(){
 
     afterAll(function () {
@@ -415,7 +416,9 @@
         i--;
       };
     })
-        
+    
+    KorAP.Hint = hintClass.create({inputField: intrkorap.getElementById("q-field")});
+    
     it('IDs and classes, that are needed for the guided tour should be in existence', function(){
       //gTstartSearch
       expect(intrkorap.querySelector('#searchbar')).not.toBeNull();
@@ -447,6 +450,7 @@
     });
       
    it('Guided Tour should be started and display steps and labels in the right order', function(){
+
      let vcpanel = intrkorap.getElementById("vc-view");
      vcpanel.appendChild(vc.element());
      let searchTour = tourClass.gTstartSearch(intrkorap);
@@ -461,17 +465,31 @@
      for(let i = 2; i <= totalSteps; i++){
        searchTour.goToStepNumber(i);
        expect(document.querySelector(".introjs-tooltiptext").textContent).toEqual(searchTour.testIntros[i-1]);
+
+       switch(i){
+       case 4:
+       expect(intrkorap.querySelector('#hint')).not.toBeNull(); 
+       expect(KorAP.Hint).not.toBeNull();
+       expect(KorAP.Hint.active().dontHide).toBe(true); 
+       expect(KorAP.Hint._active).not.toBeNull();
+       break;
        
-       if(i == totalSteps){
-         expect(document.querySelector(".introjs-donebutton").textContent).toEqual(loc.TOUR_seargo);
-         expect(document.querySelector(".introjs-prevbutton").textContent).toEqual(loc.TOUR_lprev);
-         expect(document.querySelector(".introjs-nextbutton").classList.contains("introjs-disabled")).toBe(true);
-       } 
+       case 5:
+       expect(KorAP.Hint._active).toBeNull();
+       break;
+                     
+       case totalSteps:
+       expect(document.querySelector(".introjs-donebutton").textContent).toEqual(loc.TOUR_seargo);
+       expect(document.querySelector(".introjs-prevbutton").textContent).toEqual(loc.TOUR_lprev);
+       expect(document.querySelector(".introjs-nextbutton").classList.contains("introjs-disabled")).toBe(true);
+       break;
+       }
        searchTour.exit();
      } 
      
      let resultTour = tourClass.gTshowResults(resultkor);
      KorAP.session = sessionClass.create('KalamarJSDem'); 
+     
      resultTour.start(resultkor);
      let totalStepsR = resultTour.stepCount;
      expect(document.querySelector(".introjs-tooltiptext").textContent).toEqual(loc.TOUR_kwic);
@@ -479,8 +497,7 @@
      expect(document.querySelector(".introjs-prevbutton").textContent).toEqual(loc.TOUR_lprev);
      expect(document.querySelector(".introjs-nextbutton").textContent).toEqual(loc.TOUR_lnext);
      resultTour.exit();
-     
-    for(let i = 2; i <= totalStepsR; i++){
+     for(let i = 2; i <= totalStepsR; i++){
        resultTour.goToStepNumber(i);
        expect(document.querySelector(".introjs-tooltiptext").textContent).toEqual(resultTour.testIntros[i-1]);
        if(i == totalStepsR){
@@ -489,5 +506,18 @@
        resultTour.exit();
      } 
    });
+   
+   it('Guided Tour should hide Hint and QL Menu if aborted',  function(){
+     let tourAbort = tourClass.gTstartSearch(intrkorap);
+     tourAbort.start(); 
+     expect(KorAP.Hint._active).toBeNull();
+     expect(document.querySelector(".introjs-skipbutton")).not.toBeNull();
+     tourAbort.goToStepNumber(4);
+     expect(KorAP.Hint._active).not.toBeNull()
+     expect(KorAP.Hint.active().dontHide).toBe(true);
+     tourAbort.exit();
+     expect(KorAP.Hint._active).toBeNull();
+   });
+   
   });
 });