Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / js / t / kivi / parse_format_time.js
diff --git a/js/t/kivi/parse_format_time.js b/js/t/kivi/parse_format_time.js
new file mode 100644 (file)
index 0000000..393d790
--- /dev/null
@@ -0,0 +1,47 @@
+function custom_time(h,m) {
+  var time = new Date();
+  time.setHours(h,m);
+  return time;
+}
+
+QUnit.test("kivi.parse_time function for German time style with colon", function( assert ) {
+  assert.equalTimes = function(actual, expected, message) {
+    console.log(this);
+    var result = (expected === undefined && actual === undefined)
+                || (expected === null      && actual === null)
+                || (expected instanceof Date && actual instanceof Date &&
+                    expected.getHours()   == actual.getHours() &&
+                    expected.getMinutes() == actual.getMinutes());
+
+    this.push( {
+        result: result,
+        actual: actual,
+        expected: expected,
+        message: message
+    } );
+  }
+
+  kivi.setup_formats({ times: "hh:mm" });
+
+  assert.equalTimes(kivi.parse_time("12:34"), custom_time(12,34));
+  assert.equalTimes(kivi.parse_time("10:00"), custom_time(10,0));
+  assert.equalTimes(kivi.parse_time("      12 :  23  ") - custom_time(12,23));
+
+  assert.equalTimes(kivi.parse_time("00:20"), custom_time(0,20));
+
+  assert.equalTimes(kivi.parse_time("23:60"), custom_time(23,60));
+
+  assert.equalTimes(kivi.parse_time("1142"), custom_time(11,42));
+
+  assert.equalTimes(kivi.parse_time("Totally Invalid!"), undefined);
+  assert.equalTimes(kivi.parse_time("."), undefined);
+  assert.equalTimes(kivi.parse_time(".."), undefined);
+  assert.equalTimes(kivi.parse_time(":"), undefined);
+  assert.equalTimes(kivi.parse_time("::"), undefined);
+  assert.equalTimes(kivi.parse_time("aa:bb"), undefined);
+  assert.equalTimes(kivi.parse_time("aasd:bbaf"), undefined);
+  assert.equalTimes(kivi.parse_time(""), null);
+  assert.equalTimes(kivi.parse_time("0"), new Date());
+  assert.equalTimes(kivi.parse_time("29:20008"), custom_time(29,20008));
+});
+