refactor
authorWolfram Schneider <wosch@indexdata.dk>
Fri, 23 Aug 2013 13:49:00 +0000 (15:49 +0200)
committerWolfram Schneider <wosch@indexdata.dk>
Fri, 23 Aug 2013 13:49:00 +0000 (15:49 +0200)
test/spec/mkws-pazpar2.js

index fe05c51..a8bfff4 100644 (file)
@@ -4,41 +4,6 @@
  *
  */
 
-// global state object
-var jasmine_state = {
-    time: 0
-};
-
-function my_click(id, time) {
-    setTimeout(function () {
-        debug("trigger click on id: " + id);
-        $(id).trigger("click");
-    }, time * 1000);
-}
-
-function found(time, none) {
-    setTimeout(function () {
-        jasmine_state.time = time;
-
-        var found = $("#mkwsPager").html().match(/found: ([0-9]+)/);
-
-        describe("pazpar2 hit count", function () {
-            if (none) {
-                it("no results yet", function () {
-                    expect(found).toBe(null);
-                });
-            } else {
-                it("got results", function () {
-                    expect(found[0]).toMatch(/^[0-9]+$/);
-                });
-            }
-            debug("mkws pager found records: " + (found != null ? found[0] : "unknown"));
-            debug("time state: " + jasmine_state.time);
-        });
-
-    }, time * 1000);
-}
-
 describe("Check pazpar2 search", function () {
     it("pazpar2 was successfully initialize", function () {
         expect(mkws_config.error).toBe(undefined);
@@ -60,20 +25,69 @@ describe("Check pazpar2 search", function () {
             $("input#mkwsButton").trigger("click");
         }, 3 * 1000);
     });
+});
 
 
+describe("Check pazpar2 navigation", function () {
     // Asynchronous part
-    it("check running search", function () {
-        var max_time = 10;
-
+    it("check running search next/prev", function () {
         expect($("#mkwsPager").length == 1).toBe(true);
 
+        function my_click(id, time) {
+            setTimeout(function () {
+                debug("trigger click on id: " + id);
+                $(id).trigger("click");
+                expect(time >= 0).toBeTruthy();
+            }, time * 1000);
+        }
+
         runs(function () {
             // click next/prev after N seconds
+            my_click("#mkwsNext", 7);
             my_click("#mkwsNext", 10);
-            my_click("#mkwsNext", 13);
-            my_click("#mkwsPrev", 15);
+            my_click("#mkwsPrev", 12);
+        });
+    });
+});
+
+
+describe("Check pazpar2 hit counter", function () {
+    it("check running search hit counter", function () {
+        var max_time = 13;
+        var j_time = 0;
+        var j_hits = 0;
 
+        function found(time, none) {
+            describe("found hits", function () {
+                setTimeout(function () {
+                    j_time = time;
+
+                    var found = $("#mkwsPager").text();
+                    var re = /found: ([0-9]+)/;
+                    re.exec(found);
+                    var hits = -1;
+
+                    if (RegExp.$1 != '') {
+                        hits = RegExp.$1;
+                    }
+
+                    // debug("found: " + found);
+                    if (none) {
+                        expect(hits < 0).toBeTruthy();
+                    } else {
+                        expect(hits).toBeGreaterThan(0);
+                        j_hits = hits;
+                    }
+
+                    debug("mkws pager found records: '" + hits + "'");
+                    debug("time state: " + j_time);
+
+                    expect(time >= 0).toBeTruthy();
+                }, time * 1000);
+            });
+        }
+
+        runs(function () {
             // check hit counter after N seconds
             found(0, true);
             found(5);
@@ -82,19 +96,16 @@ describe("Check pazpar2 search", function () {
             found(max_time);
         });
 
-/*
         waitsFor(function () {
-            return jasmine_state.time == max_time ? true : false;
+            return j_time == max_time ? true : false;
         }, "The Value should be 20 seconds", 30 * 1000); // (max_time + 1) * 1000);
+        runs(function () {
+            expect($("#mkwsPager").length == 1).toBe(true);
+        })
 
-       runs(function () {
-           expect($("#mkwsPager").length == 1).toBe(true);
-       })
-       */
-
-/* runs(function () {
-            expect(jasmine_state.time).toEqual(max_time);
+        runs(function () {
+            expect(j_time <= max_time).toBeTruthy();
+            expect(j_hits > 0).toBeTruthy();
         });
-       */
     });
 });