Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / js / t / kivi / parse_format_date.js
index b488b1e..121d43e 100644 (file)
@@ -1,3 +1,12 @@
+function today() {
+  var today = new Date();
+  today.setMilliseconds(0);
+  today.setSeconds(0);
+  today.setMinutes(0);
+  today.setHours(0);
+  return today;
+};
+
 QUnit.test("kivi.parse_date function for German date style with dots", function( assert ) {
   kivi.setup_formats({ dates: "dd.mm.yy" });
 
@@ -12,7 +21,22 @@ QUnit.test("kivi.parse_date function for German date style with dots", function(
   assert.deepEqual(kivi.parse_date("25.12."), new Date((new Date).getFullYear(), 11, 25));
   assert.deepEqual(kivi.parse_date("25.12"), new Date((new Date).getFullYear(), 11, 25));
 
+  assert.deepEqual(kivi.parse_date("2512"), new Date((new Date).getFullYear(), 11, 25));
+  assert.deepEqual(kivi.parse_date("25122015"), new Date(2015, 11, 25));
+  assert.deepEqual(kivi.parse_date("251215"), new Date(2015, 11, 25));
+  assert.deepEqual(kivi.parse_date("25"), new Date((new Date).getFullYear(), (new Date).getMonth(), 25));
+  assert.deepEqual(kivi.parse_date("1"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
+  assert.deepEqual(kivi.parse_date("01"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
+
   assert.deepEqual(kivi.parse_date("Totally Invalid!"), undefined);
+  assert.deepEqual(kivi.parse_date(":"), undefined);
+  assert.deepEqual(kivi.parse_date("::"), undefined);
+  assert.deepEqual(kivi.parse_date("."), today());
+  assert.deepEqual(kivi.parse_date(".."), today());
+  assert.deepEqual(kivi.parse_date(""), null);
+  assert.deepEqual(kivi.parse_date("0"), new Date());
+  assert.deepEqual(kivi.parse_date("00"), new Date());
+  assert.deepEqual(kivi.parse_date("29.02.20008"), undefined);
 });
 
 QUnit.test("kivi.parse_date function for German date style with slashes", function( assert ) {
@@ -29,6 +53,9 @@ QUnit.test("kivi.parse_date function for German date style with slashes", functi
   assert.deepEqual(kivi.parse_date("25/12/"), new Date((new Date).getFullYear(), 11, 25));
   assert.deepEqual(kivi.parse_date("25/12"), new Date((new Date).getFullYear(), 11, 25));
 
+  assert.deepEqual(kivi.parse_date("/"), today());
+  assert.deepEqual(kivi.parse_date("//"), today());
+
   assert.deepEqual(kivi.parse_date("Totally Invalid!"), undefined);
 });
 
@@ -46,6 +73,9 @@ QUnit.test("kivi.parse_date function for American date style", function( assert
   assert.deepEqual(kivi.parse_date("12/25/"), new Date((new Date).getFullYear(), 11, 25));
   assert.deepEqual(kivi.parse_date("12/25"), new Date((new Date).getFullYear(), 11, 25));
 
+  assert.deepEqual(kivi.parse_date("/"), today());
+  assert.deepEqual(kivi.parse_date("//"), today());
+
   assert.deepEqual(kivi.parse_date("Totally Invalid!"), undefined);
 });
 
@@ -100,5 +130,18 @@ QUnit.test("kivi.format_date function for ISO date style", function( assert ) {
   assert.deepEqual(kivi.format_date(new Date(2008, 1, 29)), "2008-02-29");
   assert.deepEqual(kivi.format_date(new Date(2014, 11, 11)), "2014-12-11");
 
+  assert.deepEqual(kivi.parse_date("1225"), new Date((new Date).getFullYear(), 11, 25));
+  assert.deepEqual(kivi.parse_date("20151225"), new Date(2015, 11, 25));
+  assert.deepEqual(kivi.parse_date("151225"), new Date(2015, 11, 25));
+  assert.deepEqual(kivi.parse_date("25"), new Date((new Date).getFullYear(), (new Date).getMonth(), 25));
+  assert.deepEqual(kivi.parse_date("1"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
+  assert.deepEqual(kivi.parse_date("01"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
+
+  assert.deepEqual(kivi.parse_date("0"), new Date());
+  assert.deepEqual(kivi.parse_date("00"), new Date());
+
+  assert.deepEqual(kivi.parse_date("-"), today());
+  assert.deepEqual(kivi.parse_date("--"), today());
+
   assert.deepEqual(kivi.format_date(new Date(undefined, undefined, undefined)), undefined);
 });