Skip to content

Commit 65dcaf6

Browse files
committed
Merge branch '3.3' into 3.4
* 3.3: [CS] Apply phpdoc_annotation_without_dot bumped Symfony version to 3.3.10 updated VERSION for 3.3.9 updated CHANGELOG for 3.3.9 [DomCrawler] Fix conversion to int on GetPhpFiles Remove `protected_to_private` rule. Filtering empty uuids in ORMQueryBuilderLoader.
2 parents 93866c2 + 7e4ac8e commit 65dcaf6

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

Crawler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public function clear()
107107
*
108108
* @param \DOMNodeList|\DOMNode|array|string|null $node A node
109109
*
110-
* @throws \InvalidArgumentException When node is not the expected type.
110+
* @throws \InvalidArgumentException when node is not the expected type
111111
*/
112112
public function add($node)
113113
{

Form.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,18 @@ public function getPhpFiles()
172172
if (!empty($qs)) {
173173
parse_str($qs, $expandedValue);
174174
$varName = substr($name, 0, strlen(key($expandedValue)));
175+
176+
array_walk_recursive(
177+
$expandedValue,
178+
function (&$value, $key) {
179+
if (ctype_digit($value) && ('size' === $key || 'error' === $key)) {
180+
$value = (int) $value;
181+
}
182+
}
183+
);
184+
185+
reset($expandedValue);
186+
175187
$values = array_replace_recursive($values, array($varName => current($expandedValue)));
176188
}
177189
}

Tests/FormTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,15 @@ public function testGetPhpFiles()
462462

463463
$form = $this->createForm('<form method="post"><input type="file" name="f.o o[bar][ba.z]" /><input type="file" name="f.o o[bar][]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
464464
$this->assertEquals(array('f.o o' => array('bar' => array('ba.z' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0), array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0)))), $form->getPhpFiles(), '->getPhpFiles() preserves periods and spaces in names recursively');
465+
466+
$form = $this->createForm('<form method="post"><input type="file" name="foo[bar]" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
467+
$files = $form->getPhpFiles();
468+
469+
$this->assertSame(0, $files['foo']['bar']['size'], '->getPhpFiles() converts size to int');
470+
$this->assertSame(4, $files['foo']['bar']['error'], '->getPhpFiles() converts error to int');
471+
472+
$form = $this->createForm('<form method="post"><input type="file" name="size[error]" /><input type="text" name="error" value="error" /><input type="submit" /></form>');
473+
$this->assertEquals(array('size' => array('error' => array('name' => '', 'type' => '', 'tmp_name' => '', 'error' => 4, 'size' => 0))), $form->getPhpFiles(), '->getPhpFiles() int conversion does not collide with file names');
465474
}
466475

467476
/**

0 commit comments

Comments
 (0)