class MultipartStreamTest in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/guzzlehttp/psr7/tests/MultipartStreamTest.php \GuzzleHttp\Tests\MultipartStreamTest
Hierarchy
- class \GuzzleHttp\Tests\MultipartStreamTest extends \GuzzleHttp\Tests\PHPUnit_Framework_TestCase
Expanded class hierarchy of MultipartStreamTest
File
- vendor/
guzzlehttp/ psr7/ tests/ MultipartStreamTest.php, line 7
Namespace
GuzzleHttp\TestsView source
class MultipartStreamTest extends \PHPUnit_Framework_TestCase {
public function testCreatesDefaultBoundary() {
$b = new MultipartStream();
$this
->assertNotEmpty($b
->getBoundary());
}
public function testCanProvideBoundary() {
$b = new MultipartStream([], 'foo');
$this
->assertEquals('foo', $b
->getBoundary());
}
public function testIsNotWritable() {
$b = new MultipartStream();
$this
->assertFalse($b
->isWritable());
}
public function testCanCreateEmptyStream() {
$b = new MultipartStream();
$boundary = $b
->getBoundary();
$this
->assertSame("--{$boundary}--\r\n", $b
->getContents());
$this
->assertSame(strlen($boundary) + 6, $b
->getSize());
}
/**
* @expectedException \InvalidArgumentException
*/
public function testValidatesFilesArrayElement() {
new MultipartStream([
[
'foo' => 'bar',
],
]);
}
/**
* @expectedException \InvalidArgumentException
*/
public function testEnsuresFileHasName() {
new MultipartStream([
[
'contents' => 'bar',
],
]);
}
public function testSerializesFields() {
$b = new MultipartStream([
[
'name' => 'foo',
'contents' => 'bar',
],
[
'name' => 'baz',
'contents' => 'bam',
],
], 'boundary');
$this
->assertEquals("--boundary\r\nContent-Disposition: form-data; name=\"foo\"\r\nContent-Length: 3\r\n\r\n" . "bar\r\n--boundary\r\nContent-Disposition: form-data; name=\"baz\"\r\nContent-Length: 3" . "\r\n\r\nbam\r\n--boundary--\r\n", (string) $b);
}
public function testSerializesFiles() {
$f1 = Psr7\FnStream::decorate(Psr7\stream_for('foo'), [
'getMetadata' => function () {
return '/foo/bar.txt';
},
]);
$f2 = Psr7\FnStream::decorate(Psr7\stream_for('baz'), [
'getMetadata' => function () {
return '/foo/baz.jpg';
},
]);
$f3 = Psr7\FnStream::decorate(Psr7\stream_for('bar'), [
'getMetadata' => function () {
return '/foo/bar.gif';
},
]);
$b = new MultipartStream([
[
'name' => 'foo',
'contents' => $f1,
],
[
'name' => 'qux',
'contents' => $f2,
],
[
'name' => 'qux',
'contents' => $f3,
],
], 'boundary');
$expected = <<<EOT
--boundary
Content-Disposition: form-data; name="foo"; filename="bar.txt"
Content-Length: 3
Content-Type: text/plain
foo
--boundary
Content-Disposition: form-data; name="qux"; filename="baz.jpg"
Content-Length: 3
Content-Type: image/jpeg
baz
--boundary
Content-Disposition: form-data; name="qux"; filename="bar.gif"
Content-Length: 3
Content-Type: image/gif
bar
--boundary--
EOT;
$this
->assertEquals($expected, str_replace("\r", '', $b));
}
public function testSerializesFilesWithCustomHeaders() {
$f1 = Psr7\FnStream::decorate(Psr7\stream_for('foo'), [
'getMetadata' => function () {
return '/foo/bar.txt';
},
]);
$b = new MultipartStream([
[
'name' => 'foo',
'contents' => $f1,
'headers' => [
'x-foo' => 'bar',
'content-disposition' => 'custom',
],
],
], 'boundary');
$expected = <<<EOT
--boundary
x-foo: bar
content-disposition: custom
Content-Length: 3
Content-Type: text/plain
foo
--boundary--
EOT;
$this
->assertEquals($expected, str_replace("\r", '', $b));
}
public function testSerializesFilesWithCustomHeadersAndMultipleValues() {
$f1 = Psr7\FnStream::decorate(Psr7\stream_for('foo'), [
'getMetadata' => function () {
return '/foo/bar.txt';
},
]);
$f2 = Psr7\FnStream::decorate(Psr7\stream_for('baz'), [
'getMetadata' => function () {
return '/foo/baz.jpg';
},
]);
$b = new MultipartStream([
[
'name' => 'foo',
'contents' => $f1,
'headers' => [
'x-foo' => 'bar',
'content-disposition' => 'custom',
],
],
[
'name' => 'foo',
'contents' => $f2,
'headers' => [
'cOntenT-Type' => 'custom',
],
],
], 'boundary');
$expected = <<<EOT
--boundary
x-foo: bar
content-disposition: custom
Content-Length: 3
Content-Type: text/plain
foo
--boundary
cOntenT-Type: custom
Content-Disposition: form-data; name="foo"; filename="baz.jpg"
Content-Length: 3
baz
--boundary--
EOT;
$this
->assertEquals($expected, str_replace("\r", '', $b));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | @expectedException \InvalidArgumentException | |
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | ||
MultipartStreamTest:: |
public | function | @expectedException \InvalidArgumentException |