8000 #10808 crawler test · defrag/symfony@9f51e4e · GitHub
[go: up one dir, main page]

Skip to content

Commit 9f51e4e

Browse files
committed
symfony#10808 crawler test
1 parent 97750f7 commit 9f51e4e

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

src/Symfony/Component/DomCrawler/Form.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,11 @@ public function getPhpValues()
146146
$values = array();
147147
foreach ($this->getValues() as $name => $value) {
148148
$qs = http_build_query(array($name => $value), '', '&');
149-
parse_str($qs, $expandedValue);
150-
$varName = substr($name, 0, strlen(key($expandedValue)));
151-
$values = array_replace_recursive($values, array($varName => current($expandedValue)));
149+
if(!empty($qs)) {
150+
parse_str($qs, $expandedValue);
151+
$varName = substr($name, 0, strlen(key($expandedValue)));
152+
$values = array_replace_recursive($values, array($varName => current($expandedValue)));
153+
}
152154
}
153155

154156
return $values;
@@ -169,9 +171,11 @@ public function getPhpFiles()
169171
$values = array();
170172
foreach ($this->getFiles() as $name => $value) {
171173
$qs = http_build_query(array($name => $value), '', '&');
172-
parse_str($qs, $expandedValue);
173-
$varName = substr($name, 0, strlen(key($expandedValue)));
174-
$values = array_replace_recursive($values, array($varName => current($expandedValue)));
174+
if(!empty($qs)) {
175+
parse_str($qs, $expandedValue);
176+
$varName = substr($name, 0, strlen(key($expandedValue)));
177+
$values = array_replace_recursive($values, array($varName => current($expandedValue)));
178+
}
175179
}
176180

177181
return $values;

src/Symfony/Component/DomCrawler/Tests/FormTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,8 +394,8 @@ public function testOffsetExists()
394394

395395
public function testGetValues()
396396
{
397-
$form = $this->createForm('<form><input type="text" name="foo[bar]" value="foo" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
398-
$this->assertEquals(array('foo[bar]' => 'foo', 'bar' => 'bar'), $form->getValues(), '->getValues() returns all form field values');
397+
$form = $this->createForm('<form><input type="text" name="foo[bar]" value="foo" /><input type="text" name="bar" value="bar" /><select multiple="multiple" name="baz[]"></select><input type="submit" /></form>');
398+
$this->assertEquals(array('foo[bar]' => 'foo', 'bar' => 'bar', 'baz' => array()), $form->getValues(), '->getValues() returns all form field values');
399399

400400
$form = $this->createForm('<form><input type="checkbox" name="foo" value="foo" /><input type="text" name="bar" value="bar" /><input type="submit" /></form>');
401401
$this->assertEquals(array('bar' => 'bar'), $form->getValues(), '->getValues() does not include not-checked checkboxes');
@@ -431,6 +431,10 @@ public function testGetPhpValues()
431431

432432
$form = $this->createForm('<form><input type="text" name="fo.o[ba.r][]" value="foo" /><input type="text" name="fo.o[ba.r][ba.z]" value="bar" /><input type="submit" /></form>');
433433
$this->assertEquals(array('fo.o' => array('ba.r' => array('foo', 'ba.z' => 'bar'))), $form->getPhpValues(), '->getPhpValues() preserves periods and spaces in names recursively');
434+
435+
$form = $this->createForm('<form><input type="text" name="foo[bar]" value="foo" /><input type="text" name="bar" value="bar" /><select multiple="multiple" name="baz[]"></select><input type="submit" /></form>');
436+
$this->assertEquals(array('foo' => array('bar' => 'foo'), 'bar' => 'bar'), $form->getPhpValues(), '->getPhpValues() doesnt return empty values');
437+
434438
}
435439

436440
public function testGetFiles()

0 commit comments

Comments
 (0)
0