Textarea value should default to empty string instead of null.
bug #10733 [DomCrawler] Textarea value should default to empty string instead of null. (Berdir)

This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes #10733).

Discussion
----------

[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        |

Commits
-------

f672564 Textarea value should default to empty string instead of null.