mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-22 01:30:23 +08:00
fixes formatter doing one division too much, fixes #4427
This commit is contained in:
committed by
Alexander Makarov
parent
f3520187d6
commit
46b553f012
@@ -71,6 +71,7 @@ Yii Framework 2 Change Log
|
|||||||
- Bug #4342: mssql (dblib) driver does not support getting attributes (tof06)
|
- Bug #4342: mssql (dblib) driver does not support getting attributes (tof06)
|
||||||
- Bug #4409: Upper case letters in subdirectory prefixes of controller IDs were not properly handled (qiangxue)
|
- Bug #4409: Upper case letters in subdirectory prefixes of controller IDs were not properly handled (qiangxue)
|
||||||
- Bug #4412: Formatter used SI Prefixes for base 1024, now uses binary prefixes (kmindi)
|
- Bug #4412: Formatter used SI Prefixes for base 1024, now uses binary prefixes (kmindi)
|
||||||
|
- Bug #4427: Formatter could do one division too much (kmindi)
|
||||||
- Bug: Fixed inconsistent return of `\yii\console\Application::runAction()` (samdark)
|
- Bug: Fixed inconsistent return of `\yii\console\Application::runAction()` (samdark)
|
||||||
- Bug: URL encoding for the route parameter added to `\yii\web\UrlManager` (klimov-paul)
|
- Bug: URL encoding for the route parameter added to `\yii\web\UrlManager` (klimov-paul)
|
||||||
- Bug: Fixed the bug that requesting protected or private action methods would cause 500 error instead of 404 (qiangxue)
|
- Bug: Fixed the bug that requesting protected or private action methods would cause 500 error instead of 404 (qiangxue)
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ class Formatter extends Component
|
|||||||
|
|
||||||
$value = $value / $this->sizeFormat['base'];
|
$value = $value / $this->sizeFormat['base'];
|
||||||
$position++;
|
$position++;
|
||||||
} while ($position < 6);
|
} while ($position < 5);
|
||||||
|
|
||||||
$value = round($value, $this->sizeFormat['decimals']);
|
$value = round($value, $this->sizeFormat['decimals']);
|
||||||
$formattedValue = isset($this->sizeFormat['decimalSeparator']) ? str_replace('.', $this->sizeFormat['decimalSeparator'], $value) : $value;
|
$formattedValue = isset($this->sizeFormat['decimalSeparator']) ? str_replace('.', $this->sizeFormat['decimalSeparator'], $value) : $value;
|
||||||
|
|||||||
@@ -193,11 +193,13 @@ class FormatterTest extends TestCase
|
|||||||
public function testAsSize() {
|
public function testAsSize() {
|
||||||
// tests for base 1000
|
// tests for base 1000
|
||||||
$this->formatter->sizeFormat['base'] = 1000;
|
$this->formatter->sizeFormat['base'] = 1000;
|
||||||
|
$this->assertSame("999 B", $this->formatter->asSize(999));
|
||||||
$this->assertSame("1.05 MB", $this->formatter->asSize(1024 * 1024));
|
$this->assertSame("1.05 MB", $this->formatter->asSize(1024 * 1024));
|
||||||
$this->assertSame("1.05 MB", $this->formatter->asSize(1024 * 1024, false, false));
|
$this->assertSame("1.05 MB", $this->formatter->asSize(1024 * 1024, false, false));
|
||||||
$this->assertSame("1 KB", $this->formatter->asSize(1000));
|
$this->assertSame("1 KB", $this->formatter->asSize(1000));
|
||||||
$this->assertSame("1.02 KB", $this->formatter->asSize(1023));
|
$this->assertSame("1.02 KB", $this->formatter->asSize(1023));
|
||||||
$this->assertSame("3 gigabytes", $this->formatter->asSize(3 * 1000 * 1000 * 1000, true));
|
$this->assertSame("3 gigabytes", $this->formatter->asSize(3 * 1000 * 1000 * 1000, true));
|
||||||
|
$this->assertNotSame("3 PB", $this->formatter->asSize(3 * 1000 * 1000 * 1000 * 1000 * 1000 * 1000)); // this is 3 EB not 3 PB
|
||||||
|
|
||||||
// tests for base 1024
|
// tests for base 1024
|
||||||
$this->formatter->sizeFormat['base'] = 1024;
|
$this->formatter->sizeFormat['base'] = 1024;
|
||||||
@@ -205,6 +207,8 @@ class FormatterTest extends TestCase
|
|||||||
$this->assertSame("1 MB", $this->formatter->asSize(1024 * 1024, false, false));
|
$this->assertSame("1 MB", $this->formatter->asSize(1024 * 1024, false, false));
|
||||||
$this->assertSame("1023 B", $this->formatter->asSize(1023));
|
$this->assertSame("1023 B", $this->formatter->asSize(1023));
|
||||||
$this->assertSame("5 GiB", $this->formatter->asSize(5 * 1024 * 1024 * 1024));
|
$this->assertSame("5 GiB", $this->formatter->asSize(5 * 1024 * 1024 * 1024));
|
||||||
|
$this->assertSame("5 gibibytes", $this->formatter->asSize(5 * 1024 * 1024 * 1024,true));
|
||||||
|
$this->assertNotSame("5 PiB", $this->formatter->asSize(5 * 1024 * 1024 * 1024 * 1024 * 1024 * 1024)); // this is 5 EiB not 5 PiB
|
||||||
//$this->assertSame("1 YiB", $this->formatter->asSize(pow(2, 80)));
|
//$this->assertSame("1 YiB", $this->formatter->asSize(pow(2, 80)));
|
||||||
$this->assertSame("2 GiB", $this->formatter->asSize(2147483647)); // round 1.999 up to 2
|
$this->assertSame("2 GiB", $this->formatter->asSize(2147483647)); // round 1.999 up to 2
|
||||||
$this->formatter->sizeFormat['decimalSeparator'] = ',';
|
$this->formatter->sizeFormat['decimalSeparator'] = ',';
|
||||||
|
|||||||
Reference in New Issue
Block a user