1 openerp.testing.section('web-formats', {
2 dependencies: ['web.formats']
4 test("format_datetime", function (instance) {
5 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
6 var str = instance.web.format_value(date, {type:"datetime"});
7 equal(str, moment(date).format("MM/DD/YYYY HH:mm:ss"));
9 test("format_date", function (instance) {
10 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
11 var str = instance.web.format_value(date, {type:"date"});
12 equal(str, moment(date).format("MM/DD/YYYY"));
14 test("format_time", function (instance) {
15 var date = instance.web.str_to_datetime("2009-05-04 12:34:23");
16 var str = instance.web.format_value(date, {type:"time"});
17 equal(str, moment(date).format("HH:mm:ss"));
19 test("format_float_time", function (instance) {
21 instance.web.format_value(1.0, {type:'float', widget:'float_time'}),
24 instance.web.format_value(0.9853, {type:'float', widget:'float_time'}),
27 instance.web.format_value(0.0085, {type:'float', widget:'float_time'}),
30 instance.web.format_value(-1.0, {type:'float', widget:'float_time'}),
33 instance.web.format_value(-0.9853, {type:'float', widget:'float_time'}),
36 instance.web.format_value(-0.0085, {type:'float', widget:'float_time'}),
39 instance.web.format_value(4.9999, {type:'float', widget:'float_time'}),
42 instance.web.format_value(-6.9999, {type:'float', widget:'float_time'}),
45 test("format_float", function (instance) {
47 var str = instance.web.format_value(fl, {type:"float"});
49 equal(instance.web.format_value(12.02, {type: 'float'}),
51 equal(instance.web.format_value(0.0002, {type: 'float', digits: [1, 3]}),
53 equal(instance.web.format_value(0.0002, {type: 'float', digits: [1, 4]}),
55 equal(instance.web.format_value(0.0002, {type: 'float', digits: [1, 6]}),
57 equal(instance.web.format_value(1, {type: 'float', digits: [1, 6]}),
59 equal(instance.web.format_value(1, {type: 'float'}),
61 equal(instance.web.format_value(-11.25, {type: 'float'}),
63 instance.web._t.database.parameters.grouping = [1, 2, -1];
64 equal(instance.web.format_value(1111111.25, {type: 'float'}),
66 instance.web._t.database.parameters.grouping = [1, 0];
67 equal(instance.web.format_value(-11.25, {type: 'float'}),
70 test('parse_integer', function (instance) {
71 var tmp = instance.web._t.database.parameters.thousands_sep;
73 var val = instance.web.parse_value('123,456', {type: 'integer'});
75 instance.web._t.database.parameters.thousands_sep = '|';
76 var val2 = instance.web.parse_value('123|456', {type: 'integer'});
79 instance.web._t.database.parameters.thousands_sep = tmp;
82 test("parse_float", function (instance) {
83 var tmp1 = instance.web._t.database.parameters.thousands_sep;
84 var tmp2 = instance.web._t.database.parameters.decimal_point;
86 var str = "134,112.1234";
87 var val = instance.web.parse_value(str, {type:"float"});
88 equal(val, 134112.1234);
89 str = "-134,112.1234";
90 val = instance.web.parse_value(str, {type:"float"});
91 equal(val, -134112.1234);
92 _.extend(instance.web._t.database.parameters, {
96 var val3 = instance.web.parse_value('123.456,789', {type: 'float'});
97 equal(val3, 123456.789);
99 instance.web._t.database.parameters.thousands_sep = tmp1;
100 instance.web._t.database.parameters.decimal_point = tmp2;
103 test('intersperse', function (instance) {
104 var g = instance.web.intersperse;
105 equal(g("", []), "");
106 equal(g("0", []), "0");
107 equal(g("012", []), "012");
108 equal(g("1", []), "1");
109 equal(g("12", []), "12");
110 equal(g("123", []), "123");
111 equal(g("1234", []), "1234");
112 equal(g("123456789", []), "123456789");
113 equal(g("&ab%#@1", []), "&ab%#@1");
115 equal(g("0", []), "0");
116 equal(g("0", [1]), "0");
117 equal(g("0", [2]), "0");
118 equal(g("0", [200]), "0");
120 equal(g("12345678", [0], '.'), '12345678');
121 equal(g("", [1], '.'), '');
122 equal(g("12345678", [1], '.'), '1234567.8');
123 equal(g("12345678", [1], '.'), '1234567.8');
124 equal(g("12345678", [2], '.'), '123456.78');
125 equal(g("12345678", [2, 1], '.'), '12345.6.78');
126 equal(g("12345678", [2, 0], '.'), '12.34.56.78');
127 equal(g("12345678", [-1, 2], '.'), '12345678');
128 equal(g("12345678", [2, -1], '.'), '123456.78');
129 equal(g("12345678", [2, 0, 1], '.'), '12.34.56.78');
130 equal(g("12345678", [2, 0, 0], '.'), '12.34.56.78');
131 equal(g("12345678", [2, 0, -1], '.'), '12.34.56.78');
132 equal(g("12345678", [3,3,3,3], '.'), '12.345.678');
133 equal(g("12345678", [3,0], '.'), '12.345.678');
135 test('format_integer', function (instance) {
136 instance.web._t.database.parameters.grouping = [3, 3, 3, 3];
137 equal(instance.web.format_value(1000000, {type: 'integer'}),
139 instance.web._t.database.parameters.grouping = [3, 2, -1];
140 equal(instance.web.format_value(106500, {type: 'integer'}),
142 instance.web._t.database.parameters.grouping = [1, 2, -1];
143 equal(instance.web.format_value(106500, {type: 'integer'}),
146 test('format_float', function (instance) {
147 instance.web._t.database.parameters.grouping = [3, 3, 3, 3];
148 equal(instance.web.format_value(1000000, {type: 'float'}),
150 instance.web._t.database.parameters.grouping = [3, 2, -1];
151 equal(instance.web.format_value(106500, {type: 'float'}),
153 instance.web._t.database.parameters.grouping = [1, 2, -1];
154 equal(instance.web.format_value(106500, {type: 'float'}),
157 _.extend(instance.web._t.database.parameters, {
162 equal(instance.web.format_value(6000, {type: 'float'}),
166 openerp.testing.section('web-formats', {
167 dependencies: ['web.formats']
169 test('ES date format', function (instance) {
170 var old_format = instance.web._t.database.parameters.date_format;
171 instance.web._t.database.parameters.date_format = '%a, %Y %b %d';
172 var date = instance.web.str_to_date("2009-05-04");
173 strictEqual(instance.web.format_value(date, {type:"date"}),
175 strictEqual(instance.web.parse_value('Mon, 2009 May 04', {type: 'date'}),
177 instance.web._t.database.parameters.date_format = old_format;
179 test('extended ES date format', function (instance) {
180 var old_format = instance.web._t.database.parameters.date_format;
181 instance.web._t.database.parameters.date_format = '%a, %Y.eko %b %da';
182 var date = instance.web.str_to_date("2009-05-04");
183 strictEqual(instance.web.format_value(date, {type:"date"}),
184 'Mon, 2009.eko May 04a');
185 strictEqual(instance.web.parse_value('Mon, 2009.eko May 04a', {type: 'date'}),
187 instance.web._t.database.parameters.date_format = old_format;