1 openerp.testing.section('server-formats', {
2 dependencies: ['web.coresetup', 'web.dates']
4 test('Parse server datetime', function (instance) {
5 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
7 [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),
8 date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()],
9 [2009, 5 - 1, 4, 12, 34, 23]);
11 [date.getFullYear(), date.getMonth(), date.getDate(),
12 date.getHours(), date.getMinutes(), date.getSeconds()],
13 [2009, 5 - 1, 4, 12 - (date.getTimezoneOffset() / 60), 34, 23]);
15 var date2 = instance.web.str_to_datetime('2011-12-10 00:00:00');
17 [date2.getUTCFullYear(), date2.getUTCMonth(), date2.getUTCDate(),
18 date2.getUTCHours(), date2.getUTCMinutes(), date2.getUTCSeconds()],
19 [2011, 12 - 1, 10, 0, 0, 0]);
21 test('Parse server date', function (instance) {
22 var date = instance.web.str_to_date("2009-05-04");
24 [date.getFullYear(), date.getMonth(), date.getDate()],
27 test('Parse server time', function (instance) {
28 var date = instance.web.str_to_time("12:34:23");
30 [date.getHours(), date.getMinutes(), date.getSeconds()],
34 openerp.testing.section('web-formats', {
35 dependencies: ['web.formats']
37 test("format_datetime", function (instance) {
38 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
39 var str = instance.web.format_value(date, {type:"datetime"});
40 equal(str, date.toString("MM/dd/yyyy HH:mm:ss"));
42 test("format_date", function (instance) {
43 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
44 var str = instance.web.format_value(date, {type:"date"});
45 equal(str, date.toString("MM/dd/yyyy"));
47 test("format_time", function (instance) {
48 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
49 var str = instance.web.format_value(date, {type:"time"});
50 equal(str, date.toString("HH:mm:ss"));
52 test("format_float_time", function (instance) {
54 instance.web.format_value(1.0, {type:'float', widget:'float_time'}),
57 instance.web.format_value(0.9853, {type:'float', widget:'float_time'}),
60 instance.web.format_value(0.0085, {type:'float', widget:'float_time'}),
63 instance.web.format_value(-1.0, {type:'float', widget:'float_time'}),
66 instance.web.format_value(-0.9853, {type:'float', widget:'float_time'}),
69 instance.web.format_value(-0.0085, {type:'float', widget:'float_time'}),
72 instance.web.format_value(4.9999, {type:'float', widget:'float_time'}),
75 instance.web.format_value(-6.9999, {type:'float', widget:'float_time'}),
78 test("format_float", function (instance) {
80 var str = instance.web.format_value(fl, {type:"float"});
82 equal(instance.web.format_value(12.02, {type: 'float'}),
84 equal(instance.web.format_value(0.0002, {type: 'float', digits: [1, 3]}),
86 equal(instance.web.format_value(0.0002, {type: 'float', digits: [1, 4]}),
88 equal(instance.web.format_value(0.0002, {type: 'float', digits: [1, 6]}),
90 equal(instance.web.format_value(1, {type: 'float', digits: [1, 6]}),
92 equal(instance.web.format_value(1, {type: 'float'}),
94 equal(instance.web.format_value(-11.25, {type: 'float'}),
96 instance.web._t.database.parameters.grouping = [1, 2, -1];
97 equal(instance.web.format_value(1111111.25, {type: 'float'}),
99 instance.web._t.database.parameters.grouping = [1, 0];
100 equal(instance.web.format_value(-11.25, {type: 'float'}),
103 // test("parse_datetime", function () {
104 // var val = openerp.web.str_to_datetime("2009-05-04 12:34:23");
105 // var res = openerp.web.parse_value(val.toString("MM/dd/yyyy HH:mm:ss"), {type:"datetime"});
106 // equal(val.toString("MM/dd/yyyy HH:mm:ss"), res.toString("MM/dd/yyyy HH:mm:ss"));
108 // test("parse_date", function () {
109 // var val = openerp.web.str_to_date("2009-05-04");
110 // var res = openerp.web.parse_value(val.toString("MM/dd/yyyy"), {type:"date"});
111 // equal(val.toString("MM/dd/yyyy"), res.toString("MM/dd/yyyy"));
113 // test("parse_time", function () {
114 // var val = openerp.web.str_to_time("12:34:23");
115 // var res = openerp.web.parse_value(val.toString("HH:mm:ss"), {type:"time"});
116 // equal(val.toString("HH:mm:ss"), res.toString("HH:mm:ss"));
118 test('parse_integer', function (instance) {
119 var val = instance.web.parse_value('123,456', {type: 'integer'});
121 instance.web._t.database.parameters.thousands_sep = '|';
122 var val2 = instance.web.parse_value('123|456', {type: 'integer'});
125 test("parse_float", function (instance) {
126 var str = "134,112.1234";
127 var val = instance.web.parse_value(str, {type:"float"});
128 equal(val, 134112.1234);
129 var str = "-134,112.1234";
130 var val = instance.web.parse_value(str, {type:"float"});
131 equal(val, -134112.1234);
132 _.extend(instance.web._t.database.parameters, {
136 var val3 = instance.web.parse_value('123.456,789', {type: 'float'});
137 equal(val3, 123456.789);
139 test('intersperse', function (instance) {
140 var g = instance.web.intersperse;
141 equal(g("", []), "");
142 equal(g("0", []), "0");
143 equal(g("012", []), "012");
144 equal(g("1", []), "1");
145 equal(g("12", []), "12");
146 equal(g("123", []), "123");
147 equal(g("1234", []), "1234");
148 equal(g("123456789", []), "123456789");
149 equal(g("&ab%#@1", []), "&ab%#@1");
151 equal(g("0", []), "0");
152 equal(g("0", [1]), "0");
153 equal(g("0", [2]), "0");
154 equal(g("0", [200]), "0");
156 equal(g("12345678", [0], '.'), '12345678');
157 equal(g("", [1], '.'), '');
158 equal(g("12345678", [1], '.'), '1234567.8');
159 equal(g("12345678", [1], '.'), '1234567.8');
160 equal(g("12345678", [2], '.'), '123456.78');
161 equal(g("12345678", [2, 1], '.'), '12345.6.78');
162 equal(g("12345678", [2, 0], '.'), '12.34.56.78');
163 equal(g("12345678", [-1, 2], '.'), '12345678');
164 equal(g("12345678", [2, -1], '.'), '123456.78');
165 equal(g("12345678", [2, 0, 1], '.'), '12.34.56.78');
166 equal(g("12345678", [2, 0, 0], '.'), '12.34.56.78');
167 equal(g("12345678", [2, 0, -1], '.'), '12.34.56.78');
168 equal(g("12345678", [3,3,3,3], '.'), '12.345.678');
169 equal(g("12345678", [3,0], '.'), '12.345.678');
171 test('format_integer', function (instance) {
172 instance.web._t.database.parameters.grouping = [3, 3, 3, 3];
173 equal(instance.web.format_value(1000000, {type: 'integer'}),
175 instance.web._t.database.parameters.grouping = [3, 2, -1];
176 equal(instance.web.format_value(106500, {type: 'integer'}),
178 instance.web._t.database.parameters.grouping = [1, 2, -1];
179 equal(instance.web.format_value(106500, {type: 'integer'}),
182 test('format_float', function (instance) {
183 instance.web._t.database.parameters.grouping = [3, 3, 3, 3];
184 equal(instance.web.format_value(1000000, {type: 'float'}),
186 instance.web._t.database.parameters.grouping = [3, 2, -1];
187 equal(instance.web.format_value(106500, {type: 'float'}),
189 instance.web._t.database.parameters.grouping = [1, 2, -1];
190 equal(instance.web.format_value(106500, {type: 'float'}),
193 _.extend(instance.web._t.database.parameters, {
198 equal(instance.web.format_value(6000, {type: 'float'}),
202 openerp.testing.section('web-formats', {
203 dependencies: ['web.formats']
205 test('format stripper', function (instance) {
206 strictEqual(instance.web.strip_raw_chars('%a, %Y %b %d'),
208 strictEqual(instance.web.strip_raw_chars('%a, %Y.eko %bren %da'),
211 test('ES date format', function (instance) {
212 instance.web._t.database.parameters.date_format = '%a, %Y %b %d';
213 var date = instance.web.str_to_date("2009-05-04");
214 strictEqual(instance.web.format_value(date, {type:"date"}),
216 strictEqual(instance.web.parse_value('Mon, 2009 May 04', {type: 'date'}),
219 test('extended ES date format', function (instance) {
220 instance.web._t.database.parameters.date_format = '%a, %Y.eko %bren %da';
221 var date = instance.web.str_to_date("2009-05-04");
222 strictEqual(instance.web.format_value(date, {type:"date"}),
223 'Mon, 2009. May 04');
224 strictEqual(instance.web.parse_value('Mon, 2009. May 04', {type: 'date'}),