[FIX] Add tests for parsing integers and floats, fix parsing of floats in case user locale defines thousand separator as the dot
lp bug: https://launchpad.net/bugs/893575 fixed bzr revid: xmo@openerp.com-20111129095958-966ikmsgf6zwamdh
This commit is contained in:
parent
b30865bdef
commit
90dfdbaf6a
|
@ -158,12 +158,13 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
|||
var tmp = Number(value);
|
||||
if (!isNaN(tmp))
|
||||
return tmp;
|
||||
tmp = value.replace(openerp.web._t.database.parameters.decimal_point, ".");
|
||||
var tmp2 = tmp;
|
||||
|
||||
var tmp2 = tmp = value;
|
||||
do {
|
||||
tmp = tmp2;
|
||||
tmp2 = tmp.replace(openerp.web._t.database.parameters.thousands_sep, "");
|
||||
} while(tmp !== tmp2);
|
||||
tmp = tmp.replace(openerp.web._t.database.parameters.decimal_point, ".");
|
||||
tmp = Number(tmp);
|
||||
if (isNaN(tmp))
|
||||
throw new Error(value + " is not a correct float");
|
||||
|
|
|
@ -63,6 +63,13 @@ $(document).ready(function () {
|
|||
// var res = openerp.web.parse_value(val.toString("HH:mm:ss"), {type:"time"});
|
||||
// equal(val.toString("HH:mm:ss"), res.toString("HH:mm:ss"));
|
||||
// });
|
||||
test('parse_integer', function () {
|
||||
var val = openerp.web.parse_value('123,456', {type: 'integer'});
|
||||
equal(val, 123456);
|
||||
openerp.web._t.database.parameters.thousands_sep = '|';
|
||||
var val2 = openerp.web.parse_value('123|456', {type: 'integer'});
|
||||
equal(val2, 123456);
|
||||
});
|
||||
test("parse_float", function () {
|
||||
var str = "134,112.1234";
|
||||
var val = openerp.web.parse_value(str, {type:"float"});
|
||||
|
@ -70,6 +77,12 @@ $(document).ready(function () {
|
|||
var str = "-134,112.1234";
|
||||
var val = openerp.web.parse_value(str, {type:"float"});
|
||||
equal(val, -134112.1234);
|
||||
_.extend(openerp.web._t.database.parameters, {
|
||||
decimal_point: ',',
|
||||
thousands_sep: '.'
|
||||
});
|
||||
var val3 = openerp.web.parse_value('123.456,789', {type: 'float'});
|
||||
equal(val3, 123456.789);
|
||||
});
|
||||
test('intersperse', function () {
|
||||
var g = openerp.web.intersperse;
|
||||
|
|
Loading…
Reference in New Issue