kivi.js: parse_date füllt fehlende Werte aus aktuellem Datum auf
[kivitendo-erp.git] / js / t / kivi / parse_format_date.js
1 function today() {
2   var today = new Date();
3   today.setMilliseconds(0);
4   today.setSeconds(0);
5   today.setMinutes(0);
6   today.setHours(0);
7   return today;
8 };
9
10 QUnit.test("kivi.parse_date function for German date style with dots", function( assert ) {
11   kivi.setup_formats({ dates: "dd.mm.yy" });
12
13   assert.deepEqual(kivi.parse_date("01.01.2007"), new Date(2007, 0, 1));
14   assert.deepEqual(kivi.parse_date("1.1.2007"), new Date(2007, 0, 1));
15   assert.deepEqual(kivi.parse_date("      01 .  1. 2007   "), new Date(2007, 0, 1));
16
17   assert.deepEqual(kivi.parse_date("29.02.2008"), new Date(2008, 1, 29));
18
19   assert.deepEqual(kivi.parse_date("11.12.2014"), new Date(2014, 11, 11));
20
21   assert.deepEqual(kivi.parse_date("25.12."), new Date((new Date).getFullYear(), 11, 25));
22   assert.deepEqual(kivi.parse_date("25.12"), new Date((new Date).getFullYear(), 11, 25));
23
24   assert.deepEqual(kivi.parse_date("2512"), new Date((new Date).getFullYear(), 11, 25));
25   assert.deepEqual(kivi.parse_date("25122015"), new Date(2015, 11, 25));
26   assert.deepEqual(kivi.parse_date("251215"), new Date(2015, 11, 25));
27   assert.deepEqual(kivi.parse_date("25"), new Date((new Date).getFullYear(), (new Date).getMonth(), 25));
28   assert.deepEqual(kivi.parse_date("1"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
29   assert.deepEqual(kivi.parse_date("01"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
30
31   assert.deepEqual(kivi.parse_date("Totally Invalid!"), undefined);
32   assert.deepEqual(kivi.parse_date(":"), undefined);
33   assert.deepEqual(kivi.parse_date("::"), undefined);
34   assert.deepEqual(kivi.parse_date("."), today());
35   assert.deepEqual(kivi.parse_date(".."), today());
36   assert.deepEqual(kivi.parse_date(""), null);
37   assert.deepEqual(kivi.parse_date("0"), new Date());
38   assert.deepEqual(kivi.parse_date("29.02.20008"), undefined);
39 });
40
41 QUnit.test("kivi.parse_date function for German date style with slashes", function( assert ) {
42   kivi.setup_formats({ dates: "dd/mm/yy" });
43
44   assert.deepEqual(kivi.parse_date("01/01/2007"), new Date(2007, 0, 1));
45   assert.deepEqual(kivi.parse_date("1/1/2007"), new Date(2007, 0, 1));
46   assert.deepEqual(kivi.parse_date("      01 /  1/ 2007   "), new Date(2007, 0, 1));
47
48   assert.deepEqual(kivi.parse_date("29/02/2008"), new Date(2008, 1, 29));
49
50   assert.deepEqual(kivi.parse_date("11/12/2014"), new Date(2014, 11, 11));
51
52   assert.deepEqual(kivi.parse_date("25/12/"), new Date((new Date).getFullYear(), 11, 25));
53   assert.deepEqual(kivi.parse_date("25/12"), new Date((new Date).getFullYear(), 11, 25));
54
55   assert.deepEqual(kivi.parse_date("/"), today());
56   assert.deepEqual(kivi.parse_date("//"), today());
57
58   assert.deepEqual(kivi.parse_date("Totally Invalid!"), undefined);
59 });
60
61 QUnit.test("kivi.parse_date function for American date style", function( assert ) {
62   kivi.setup_formats({ dates: "mm/dd/yy" });
63
64   assert.deepEqual(kivi.parse_date("01/01/2007"), new Date(2007, 0, 1));
65   assert.deepEqual(kivi.parse_date("1/1/2007"), new Date(2007, 0, 1));
66   assert.deepEqual(kivi.parse_date("      01 /  1/ 2007   "), new Date(2007, 0, 1));
67
68   assert.deepEqual(kivi.parse_date("02/29/2008"), new Date(2008, 1, 29));
69
70   assert.deepEqual(kivi.parse_date("12/11/2014"), new Date(2014, 11, 11));
71
72   assert.deepEqual(kivi.parse_date("12/25/"), new Date((new Date).getFullYear(), 11, 25));
73   assert.deepEqual(kivi.parse_date("12/25"), new Date((new Date).getFullYear(), 11, 25));
74
75   assert.deepEqual(kivi.parse_date("/"), today());
76   assert.deepEqual(kivi.parse_date("//"), today());
77
78   assert.deepEqual(kivi.parse_date("Totally Invalid!"), undefined);
79 });
80
81 QUnit.test("kivi.parse_date function for ISO date style", function( assert ) {
82   kivi.setup_formats({ dates: "yyyy-mm-dd" });
83
84   assert.deepEqual(kivi.parse_date("2007-01-01"), new Date(2007, 0, 1));
85   assert.deepEqual(kivi.parse_date("2007-1-1"), new Date(2007, 0, 1));
86   assert.deepEqual(kivi.parse_date("      2007 - 1     -01   "), new Date(2007, 0, 1));
87
88   assert.deepEqual(kivi.parse_date("2008-02-29"), new Date(2008, 1, 29));
89
90   assert.deepEqual(kivi.parse_date("2014-12-11"), new Date(2014, 11, 11));
91
92   assert.deepEqual(kivi.parse_date("-12-25"), new Date((new Date).getFullYear(), 11, 25));
93 });
94
95 QUnit.test("kivi.format_date function for German date style with dots", function( assert ) {
96   kivi.setup_formats({ dates: "dd.mm.yy" });
97
98   assert.deepEqual(kivi.format_date(new Date(2007, 0, 1)), "01.01.2007");
99   assert.deepEqual(kivi.format_date(new Date(2008, 1, 29)), "29.02.2008");
100   assert.deepEqual(kivi.format_date(new Date(2014, 11, 11)), "11.12.2014");
101
102   assert.deepEqual(kivi.format_date(new Date(undefined, undefined, undefined)), undefined);
103 });
104
105 QUnit.test("kivi.format_date function for German date style with slashes", function( assert ) {
106   kivi.setup_formats({ dates: "dd/mm/yy" });
107
108   assert.deepEqual(kivi.format_date(new Date(2007, 0, 1)), "01/01/2007");
109   assert.deepEqual(kivi.format_date(new Date(2008, 1, 29)), "29/02/2008");
110   assert.deepEqual(kivi.format_date(new Date(2014, 11, 11)), "11/12/2014");
111
112   assert.deepEqual(kivi.format_date(new Date(undefined, undefined, undefined)), undefined);
113 });
114
115 QUnit.test("kivi.format_date function for American date style", function( assert ) {
116   kivi.setup_formats({ dates: "mm/dd/yy" });
117
118   assert.deepEqual(kivi.format_date(new Date(2007, 0, 1)), "01/01/2007");
119   assert.deepEqual(kivi.format_date(new Date(2008, 1, 29)), "02/29/2008");
120   assert.deepEqual(kivi.format_date(new Date(2014, 11, 11)), "12/11/2014");
121
122   assert.deepEqual(kivi.format_date(new Date(undefined, undefined, undefined)), undefined);
123 });
124
125 QUnit.test("kivi.format_date function for ISO date style", function( assert ) {
126   kivi.setup_formats({ dates: "yyyy-mm-dd" });
127
128   assert.deepEqual(kivi.format_date(new Date(2007, 0, 1)), "2007-01-01");
129   assert.deepEqual(kivi.format_date(new Date(2008, 1, 29)), "2008-02-29");
130   assert.deepEqual(kivi.format_date(new Date(2014, 11, 11)), "2014-12-11");
131
132   assert.deepEqual(kivi.parse_date("1225"), new Date((new Date).getFullYear(), 11, 25));
133   assert.deepEqual(kivi.parse_date("20151225"), new Date(2015, 11, 25));
134   assert.deepEqual(kivi.parse_date("151225"), new Date(2015, 11, 25));
135   assert.deepEqual(kivi.parse_date("25"), new Date((new Date).getFullYear(), (new Date).getMonth(), 25));
136   assert.deepEqual(kivi.parse_date("1"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
137   assert.deepEqual(kivi.parse_date("01"), new Date((new Date).getFullYear(), (new Date).getMonth(), 1));
138
139   assert.deepEqual(kivi.parse_date("-"), today());
140   assert.deepEqual(kivi.parse_date("--"), today());
141
142   assert.deepEqual(kivi.format_date(new Date(undefined, undefined, undefined)), undefined);
143 });