Skip to content

Commit 64210e5

Browse files
authored
Merge pull request php-vcr#206 from alnorth/empty-string-post-fix
Make handling of empty strings in CURLOPT_POSTFIELDS consistent.
2 parents 256036f + 95c7634 commit 64210e5

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/VCR/Util/CurlHelper.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,9 @@ public static function setCurlOptionOnRequest(Request $request, $option, $value,
157157
if (count($value) == 0) {
158158
$request->removeHeader('Content-Type');
159159
}
160-
} else {
160+
} elseif (!empty($value)) {
161+
// Empty values are ignored to be consistent with how requests are read out of
162+
// storage using \VCR\Request::fromArray(array $request).
161163
$request->setBody($value);
162164
}
163165
$request->setMethod('POST');

tests/VCR/Util/CurlHelperTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,18 @@ public function testSetCurlOptionOnRequestPostFieldsString()
7171
$this->assertEquals($payload, (string) $request->getBody());
7272
}
7373

74+
public function testSetCurlOptionOnRequestPostFieldsEmptyString()
75+
{
76+
$request = new Request('POST', 'example.com');
77+
$payload = '';
78+
79+
CurlHelper::setCurlOptionOnRequest($request, CURLOPT_POSTFIELDS, $payload);
80+
81+
// This is consistent with how requests are read out of storage using
82+
// \VCR\Request::fromArray(array $request).
83+
$this->assertSame(null, $request->getBody());
84+
}
85+
7486
public function testSetCurlOptionOnRequestSetSingleHeader()
7587
{
7688
$request = new Request('GET', 'example.com');

0 commit comments

Comments
 (0)