From 37580db6b138610e37ff244381579a7bd8b43c10 Mon Sep 17 00:00:00 2001 From: Klimov Paul Date: Fri, 8 Sep 2017 15:34:05 +0300 Subject: [PATCH] unit test fix --- framework/validators/FileValidator.php | 8 +++++--- tests/framework/validators/FileValidatorTest.php | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/framework/validators/FileValidator.php b/framework/validators/FileValidator.php index 977c2cc..791d67e 100644 --- a/framework/validators/FileValidator.php +++ b/framework/validators/FileValidator.php @@ -304,9 +304,11 @@ class FileValidator extends Validator $limit = $this->maxSize; } - $maxFileSize = Yii::$app->getRequest()->getBodyParam('MAX_FILE_SIZE', 0); - if ($maxFileSize > 0 && $maxFileSize < $limit) { - $limit = (int)$maxFileSize; + if (($request = Yii::$app->getRequest()) instanceof \yii\web\Request) { + $maxFileSize = Yii::$app->getRequest()->getBodyParam('MAX_FILE_SIZE', 0); + if ($maxFileSize > 0 && $maxFileSize < $limit) { + $limit = (int)$maxFileSize; + } } return $limit; diff --git a/tests/framework/validators/FileValidatorTest.php b/tests/framework/validators/FileValidatorTest.php index 8afcf03..65e7b68 100644 --- a/tests/framework/validators/FileValidatorTest.php +++ b/tests/framework/validators/FileValidatorTest.php @@ -77,6 +77,8 @@ class FileValidatorTest extends TestCase public function testGetSizeLimit() { + $this->mockWebApplication(); + $size = min($this->sizeToBytes(ini_get('upload_max_filesize')), $this->sizeToBytes(ini_get('post_max_size'))); $val = new FileValidator(); $this->assertEquals($size, $val->getSizeLimit()); @@ -84,10 +86,10 @@ class FileValidatorTest extends TestCase $this->assertEquals($size, $val->getSizeLimit()); $val->maxSize = abs($size - 1); $this->assertEquals($size - 1, $val->getSizeLimit()); - $_POST['MAX_FILE_SIZE'] = $size + 1; + Yii::$app->request->setBodyParams(['MAX_FILE_SIZE' => $size + 1]); $this->assertEquals($size - 1, $val->getSizeLimit()); - $_POST['MAX_FILE_SIZE'] = abs($size - 2); - $this->assertSame($_POST['MAX_FILE_SIZE'], $val->getSizeLimit()); + Yii::$app->request->setBodyParams(['MAX_FILE_SIZE' => abs($size - 2)]); + $this->assertSame(abs($size - 2), $val->getSizeLimit()); } protected function sizeToBytes($sizeStr)