From 93efe9056907d467aae1031f58e394c8c10d60f1 Mon Sep 17 00:00:00 2001 From: Joshua Westerheide <dev@jdoubleu.de> Date: Sat, 11 Nov 2017 17:42:05 +0100 Subject: [PATCH] [TASK] Extend untangleFilesArray function test in RequestBuilder Check for cases where the files array is nested more complex or keywords (e.g. "error") are used as field names. Run `curl -F "d0[]=@d12.txt" -F "d0[d1][d2][d3]=@d12.txt" -F "error=@error_file.txt" localhost:8080` against a custom php script to generate the testing $_FILES array. Resolves: #82976 Releases: master, 8.7, 7.6 Change-Id: I51fb9da7c87871b6bb1e8ac4de317973f307dd49 Reviewed-on: https://review.typo3.org/55811 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Christian Kuhn <lolli@schwarzbu.ch> --- .../Tests/Unit/Mvc/Web/RequestBuilderTest.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php index 1c25cc6e2879..298bf3c6a70b 100644 --- a/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php +++ b/typo3/sysext/extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php @@ -650,6 +650,7 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase 'd0' => [ 'name' => [ 'd1' => [ + 0 => 'd12.txt', 'd2' => [ 'd3' => 'd.txt' ] @@ -657,6 +658,7 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ], 'type' => [ 'd1' => [ + 0 => 'text/plain', 'd2' => [ 'd3' => 'text/plain' ] @@ -664,6 +666,7 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ], 'tmp_name' => [ 'd1' => [ + 0 => '/private/var/tmp/phpMf9Qx9', 'd2' => [ 'd3' => '/private/var/tmp/phprR3fax' ] @@ -671,6 +674,7 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ], 'error' => [ 'd1' => [ + 0 => 0, 'd2' => [ 'd3' => 0 ] @@ -678,6 +682,7 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ], 'size' => [ 'd1' => [ + 0 => 200, 'd2' => [ 'd3' => 400 ] @@ -725,6 +730,13 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ] ] ] + ], + 'error' => [ + 'name' => 'error_file.txt', + 'type' => 'text/plain', + 'tmp_name' => '/private/var/tmp/phpADDu87fE', + 'error' => 0, + 'size' => 120 ] ]; $untangledFiles = [ @@ -755,6 +767,13 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ], 'd0' => [ 'd1' => [ + 0 => [ + 'name' => 'd12.txt', + 'type' => 'text/plain', + 'tmp_name' => '/private/var/tmp/phpMf9Qx9', + 'error' => 0, + 'size' => 200 + ], 'd2' => [ 'd3' => [ 'name' => 'd.txt', @@ -785,6 +804,13 @@ class RequestBuilderTest extends \TYPO3\CMS\Core\Tests\UnitTestCase ] ] ] + ] , + 'error' => [ + 'name' => 'error_file.txt', + 'type' => 'text/plain', + 'tmp_name' => '/private/var/tmp/phpADDu87fE', + 'error' => 0, + 'size' => 120 ] ]; $requestBuilder = $this->getAccessibleMock(\TYPO3\CMS\Extbase\Mvc\Web\RequestBuilder::class, ['dummy'], [], '', false); -- GitLab