summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFabio Bas <ctrlaltca@gmail.com>2013-09-17 23:24:10 +0200
committerFabio Bas <ctrlaltca@gmail.com>2013-09-17 23:24:16 +0200
commitc26f4bced87e3208105666e9fcd847d5b29dc6e2 (patch)
tree4e4d99f806741ae9f6691572015f0c0aeec67650 /tests
parenta8753134c454d9f57620f3c21e8aab0e1275000f (diff)
NumberFormat: force the use of C locale when formatting numbers. Add some testcases. Fixes #486
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/I18N/core/NumberFormatTest.php67
1 files changed, 53 insertions, 14 deletions
diff --git a/tests/unit/I18N/core/NumberFormatTest.php b/tests/unit/I18N/core/NumberFormatTest.php
index 6a6f2dd0..958f05f4 100644
--- a/tests/unit/I18N/core/NumberFormatTest.php
+++ b/tests/unit/I18N/core/NumberFormatTest.php
@@ -24,6 +24,7 @@ class NumberFormatTest extends PHPUnit_Framework_TestCase {
$fr = new NumberFormat('fr');
$de = new NumberFormat('de');
$ja = new NumberFormat('ja_JP');
+ $it = new NumberFormat('it_IT');
$number = '123456789.125156';
@@ -42,6 +43,10 @@ class NumberFormatTest extends PHPUnit_Framework_TestCase {
//custom/unkown currency
$wanted = 'DLL123,456,789';
$this->assertEquals($wanted, $ja->format($number,'c','DLL'));
+
+ //italian
+ $wanted = '€ 123.456.789,13';
+ $this->assertEquals($wanted, $it->format($number,'c','EUR'));
}
function testCustomFormat() {
@@ -108,24 +113,58 @@ class NumberFormatTest extends PHPUnit_Framework_TestCase {
function testRounding()
{
- $formatter = new NumberFormat();
-
- $number = 349.999;
- $pattern = '#.00';
- $expected = '350.00';
-
- $this->assertEquals($expected, $formatter->format($number, $pattern));
+ $formatter = new NumberFormat();
+
+ $number = 349.999;
+ $pattern = '#.00';
+ $expected = '350.00';
+
+ $this->assertEquals($expected, $formatter->format($number, $pattern));
}
function testRounding2()
{
- $formatter = new NumberFormat();
-
- $number = 349.99;
- $pattern = '#.00';
- $expected = '349.99';
-
- $this->assertEquals($expected, $formatter->format($number, $pattern));
+ $formatter = new NumberFormat();
+
+ $number = 349.99;
+ $pattern = '#.00';
+ $expected = '349.99';
+
+ $this->assertEquals($expected, $formatter->format($number, $pattern));
+ }
+
+ function testLocalizedCurrencyFormats2() {
+
+ $it = new NumberFormat('it_IT');
+
+ $number = 12.41;
+ $wanted = '12,41';
+ $this->assertEquals($wanted, $it->format($number,'d'));
+
+ $number = 10.23;
+ $wanted = '10,23';
+ $this->assertEquals($wanted, $it->format($number,'d'));
+
+ $number = 10010.23;
+ $wanted = '10.010,23';
+ $this->assertEquals($wanted, $it->format($number,'d'));
+
+ $old= setlocale(LC_ALL,"0");
+ setlocale(LC_ALL,"it_IT");
+
+ $number = 12.41;
+ $wanted = '12,41';
+ $this->assertEquals($wanted, $it->format($number,'d'));
+
+ $number = 10.23;
+ $wanted = '10,23';
+ $this->assertEquals($wanted, $it->format($number,'d'));
+
+ $number = 10010.23;
+ $wanted = '10.010,23';
+ $this->assertEquals($wanted, $it->format($number,'d'));
+
+ setlocale(LC_ALL,$old);
}
}