symfony/symfony — pull request #10733 by Berdir (2014-04-17 14:33:35+00:00)
Title: [DomCrawler] Textarea value should default to empty string instead of null.

Noticed this when working on Updating Behat/Mink/Goutte to Guzzle 4, see https://github.com/fabpot/Goutte/pull/140 and https://github.com/Behat/MinkGoutteDriver/pull/34.

Testing this with Drupal 8, trying to submit a Form which has empty form elements, the $value in a TextArea form elements defaults to null, then we end up with those in getValues() and then http_build_query() creates an empty string for those. That results in array keys like ['' => false]. This is then passed through to Guzzle, which ends up in MessageFactory::addPostData(), goes into the else creates and tries to create file with those values, which will throw an exception in GuzzleHttp\Stream::create(): with "Invalid resource type false".

I think the correct fix is to default to an empty string instead of null.

Will also need tests,

| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |