1 $(document).ready(function () {
4 module('server-formats', {
6 openerp = window.openerp.init([]);
7 window.openerp.web.corelib(openerp);
8 window.openerp.web.coresetup(openerp);
9 window.openerp.web.dates(openerp);
12 test('Parse server datetime', function () {
13 var date = openerp.web.str_to_datetime("2009-05-04 12:34:23");
15 [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),
16 date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()],
17 [2009, 5 - 1, 4, 12, 34, 23]);
19 [date.getFullYear(), date.getMonth(), date.getDate(),
20 date.getHours(), date.getMinutes(), date.getSeconds()],
21 [2009, 5 - 1, 4, 12 - (date.getTimezoneOffset() / 60), 34, 23]);
23 var date2 = openerp.web.str_to_datetime('2011-12-10 00:00:00');
25 [date2.getUTCFullYear(), date2.getUTCMonth(), date2.getUTCDate(),
26 date2.getUTCHours(), date2.getUTCMinutes(), date2.getUTCSeconds()],
27 [2011, 12 - 1, 10, 0, 0, 0]);
29 test('Parse server date', function () {
30 var date = openerp.web.str_to_date("2009-05-04");
32 [date.getFullYear(), date.getMonth(), date.getDate()],
35 test('Parse server time', function () {
36 var date = openerp.web.str_to_time("12:34:23");
38 [date.getHours(), date.getMinutes(), date.getSeconds()],
42 module('web-formats', {
44 openerp = window.openerp.init([]);
45 window.openerp.web.corelib(openerp);
46 window.openerp.web.coresetup(openerp);
47 window.openerp.web.dates(openerp);
48 window.openerp.web.formats(openerp);
51 test("format_datetime", function () {
52 var date = openerp.web.str_to_datetime("2009-05-04 12:34:23");
53 var str = openerp.web.format_value(date, {type:"datetime"});
54 equal(str, date.toString("MM/dd/yyyy HH:mm:ss"));
56 test("format_date", function () {
57 var date = openerp.web.str_to_datetime("2009-05-04 12:34:23");
58 var str = openerp.web.format_value(date, {type:"date"});
59 equal(str, date.toString("MM/dd/yyyy"));
61 test("format_time", function () {
62 var date = openerp.web.str_to_datetime("2009-05-04 12:34:23");
63 var str = openerp.web.format_value(date, {type:"time"});
64 equal(str, date.toString("HH:mm:ss"));
66 test("format_float_time", function () {
68 openerp.web.format_value(1.0, {type:'float', widget:'float_time'}),
71 openerp.web.format_value(0.9853, {type:'float', widget:'float_time'}),
74 openerp.web.format_value(0.0085, {type:'float', widget:'float_time'}),
77 openerp.web.format_value(-1.0, {type:'float', widget:'float_time'}),
80 openerp.web.format_value(-0.9853, {type:'float', widget:'float_time'}),
83 openerp.web.format_value(-0.0085, {type:'float', widget:'float_time'}),
86 test("format_float", function () {
88 var str = openerp.web.format_value(fl, {type:"float"});
90 equal(openerp.web.format_value(12.02, {type: 'float'}),
92 equal(openerp.web.format_value(0.0002, {type: 'float', digits: [1, 3]}),
94 equal(openerp.web.format_value(0.0002, {type: 'float', digits: [1, 4]}),
96 equal(openerp.web.format_value(0.0002, {type: 'float', digits: [1, 6]}),
98 equal(openerp.web.format_value(1, {type: 'float', digits: [1, 6]}),
100 equal(openerp.web.format_value(1, {type: 'float'}),
102 equal(openerp.web.format_value(-11.25, {type: 'float'}),
104 openerp.web._t.database.parameters.grouping = [1, 2, -1];
105 equal(openerp.web.format_value(1111111.25, {type: 'float'}),
107 openerp.web._t.database.parameters.grouping = [1, 0];
108 equal(openerp.web.format_value(-11.25, {type: 'float'}),
111 // test("parse_datetime", function () {
112 // var val = openerp.web.str_to_datetime("2009-05-04 12:34:23");
113 // var res = openerp.web.parse_value(val.toString("MM/dd/yyyy HH:mm:ss"), {type:"datetime"});
114 // equal(val.toString("MM/dd/yyyy HH:mm:ss"), res.toString("MM/dd/yyyy HH:mm:ss"));
116 // test("parse_date", function () {
117 // var val = openerp.web.str_to_date("2009-05-04");
118 // var res = openerp.web.parse_value(val.toString("MM/dd/yyyy"), {type:"date"});
119 // equal(val.toString("MM/dd/yyyy"), res.toString("MM/dd/yyyy"));
121 // test("parse_time", function () {
122 // var val = openerp.web.str_to_time("12:34:23");
123 // var res = openerp.web.parse_value(val.toString("HH:mm:ss"), {type:"time"});
124 // equal(val.toString("HH:mm:ss"), res.toString("HH:mm:ss"));
126 test('parse_integer', function () {
127 var val = openerp.web.parse_value('123,456', {type: 'integer'});
129 openerp.web._t.database.parameters.thousands_sep = '|';
130 var val2 = openerp.web.parse_value('123|456', {type: 'integer'});
133 test("parse_float", function () {
134 var str = "134,112.1234";
135 var val = openerp.web.parse_value(str, {type:"float"});
136 equal(val, 134112.1234);
137 var str = "-134,112.1234";
138 var val = openerp.web.parse_value(str, {type:"float"});
139 equal(val, -134112.1234);
140 _.extend(openerp.web._t.database.parameters, {
144 var val3 = openerp.web.parse_value('123.456,789', {type: 'float'});
145 equal(val3, 123456.789);
147 test('intersperse', function () {
148 var g = openerp.web.intersperse;
149 equal(g("", []), "");
150 equal(g("0", []), "0");
151 equal(g("012", []), "012");
152 equal(g("1", []), "1");
153 equal(g("12", []), "12");
154 equal(g("123", []), "123");
155 equal(g("1234", []), "1234");
156 equal(g("123456789", []), "123456789");
157 equal(g("&ab%#@1", []), "&ab%#@1");
159 equal(g("0", []), "0");
160 equal(g("0", [1]), "0");
161 equal(g("0", [2]), "0");
162 equal(g("0", [200]), "0");
164 equal(g("12345678", [0], '.'), '12345678');
165 equal(g("", [1], '.'), '');
166 equal(g("12345678", [1], '.'), '1234567.8');
167 equal(g("12345678", [1], '.'), '1234567.8');
168 equal(g("12345678", [2], '.'), '123456.78');
169 equal(g("12345678", [2, 1], '.'), '12345.6.78');
170 equal(g("12345678", [2, 0], '.'), '12.34.56.78');
171 equal(g("12345678", [-1, 2], '.'), '12345678');
172 equal(g("12345678", [2, -1], '.'), '123456.78');
173 equal(g("12345678", [2, 0, 1], '.'), '12.34.56.78');
174 equal(g("12345678", [2, 0, 0], '.'), '12.34.56.78');
175 equal(g("12345678", [2, 0, -1], '.'), '12.34.56.78');
176 equal(g("12345678", [3,3,3,3], '.'), '12.345.678');
177 equal(g("12345678", [3,0], '.'), '12.345.678');
179 test('format_integer', function () {
180 openerp.web._t.database.parameters.grouping = [3, 3, 3, 3];
181 equal(openerp.web.format_value(1000000, {type: 'integer'}),
183 openerp.web._t.database.parameters.grouping = [3, 2, -1];
184 equal(openerp.web.format_value(106500, {type: 'integer'}),
186 openerp.web._t.database.parameters.grouping = [1, 2, -1];
187 equal(openerp.web.format_value(106500, {type: 'integer'}),
190 test('format_float', function () {
191 openerp.web._t.database.parameters.grouping = [3, 3, 3, 3];
192 equal(openerp.web.format_value(1000000, {type: 'float'}),
194 openerp.web._t.database.parameters.grouping = [3, 2, -1];
195 equal(openerp.web.format_value(106500, {type: 'float'}),
197 openerp.web._t.database.parameters.grouping = [1, 2, -1];
198 equal(openerp.web.format_value(106500, {type: 'float'}),
201 _.extend(openerp.web._t.database.parameters, {
206 equal(openerp.web.format_value(6000, {type: 'float'}),
209 module('custom-date-formats', {
211 openerp = window.openerp.init([]);
212 window.openerp.web.corelib(openerp);
213 window.openerp.web.coresetup(openerp);
214 window.openerp.web.dates(openerp);
215 window.openerp.web.formats(openerp);
218 test('format stripper', function () {
219 strictEqual(openerp.web.strip_raw_chars('%a, %Y %b %d'), '%a, %Y %b %d');
220 strictEqual(openerp.web.strip_raw_chars('%a, %Y.eko %bren %da'), '%a, %Y. %b %d');
222 test('ES date format', function () {
223 openerp.web._t.database.parameters.date_format = '%a, %Y %b %d';
224 var date = openerp.web.str_to_date("2009-05-04");
225 strictEqual(openerp.web.format_value(date, {type:"date"}), 'Mon, 2009 May 04');
226 strictEqual(openerp.web.parse_value('Mon, 2009 May 04', {type: 'date'}), '2009-05-04');
228 test('extended ES date format', function () {
229 openerp.web._t.database.parameters.date_format = '%a, %Y.eko %bren %da';
230 var date = openerp.web.str_to_date("2009-05-04");
231 strictEqual(openerp.web.format_value(date, {type:"date"}), 'Mon, 2009. May 04');
232 strictEqual(openerp.web.parse_value('Mon, 2009. May 04', {type: 'date'}), '2009-05-04');