Permalink
Browse files

Fix formatting with locales using , as decimal separator

No double number formatting for readable size

Fixed testPrecisionLocalized for travis (when locale is missing?)

Switched locale to nl_NL and fixed test

Skip test when locale is not available
  • Loading branch information...
1 parent 3e1f975 commit 559fb5805ba1ec0ac60ec2afce920e3e87514b14 Mark van Driel committed Aug 14, 2013
Showing with 20 additions and 5 deletions.
  1. +15 −0 lib/Cake/Test/Case/Utility/CakeNumberTest.php
  2. +5 −5 lib/Cake/Utility/CakeNumber.php
@@ -597,6 +597,21 @@ public function testReadableSizeLocalized() {
}
/**
+ * test precision() with locales
+ *
+ * @return void
+ */
+ public function testPrecisionLocalized() {
+ $restore = setlocale(LC_NUMERIC, 0);
+
+ $this->skipIf(setlocale(LC_NUMERIC, 'de_DE') === false, "The German locale isn't available.");
+
+ $result = $this->Number->precision(1.234);
+ $this->assertEquals('1,234', $result);
+ setlocale(LC_NUMERIC, $restore);
+ }
+
+/**
* testToPercentage method
*
* @return void
@@ -84,7 +84,7 @@ class CakeNumber {
* @link http://book.cakephp.org/2.0/en/core-libraries/helpers/number.html#NumberHelper::precision
*/
public static function precision($value, $precision = 3) {
- return sprintf("%01.{$precision}F", $value);
+ return sprintf("%01.{$precision}f", $value);
}
/**
@@ -99,13 +99,13 @@ public static function toReadableSize($size) {
case $size < 1024:
return __dn('cake', '%d Byte', '%d Bytes', $size, $size);
case round($size / 1024) < 1024:
- return __d('cake', '%d KB', self::precision($size / 1024, 0));
+ return __d('cake', '%s KB', self::precision($size / 1024, 0));
case round($size / 1024 / 1024, 2) < 1024:
- return __d('cake', '%.2f MB', self::precision($size / 1024 / 1024, 2));
+ return __d('cake', '%s MB', self::precision($size / 1024 / 1024, 2));
case round($size / 1024 / 1024 / 1024, 2) < 1024:
- return __d('cake', '%.2f GB', self::precision($size / 1024 / 1024 / 1024, 2));
+ return __d('cake', '%s GB', self::precision($size / 1024 / 1024 / 1024, 2));
default:
- return __d('cake', '%.2f TB', self::precision($size / 1024 / 1024 / 1024 / 1024, 2));
+ return __d('cake', '%s TB', self::precision($size / 1024 / 1024 / 1024 / 1024, 2));
}
}

0 comments on commit 559fb58

Please sign in to comment.