forked from reactphp/http
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFilesBufferedSinkTest.php
More file actions
35 lines (28 loc) · 1.11 KB
/
Copy pathFilesBufferedSinkTest.php
File metadata and controls
35 lines (28 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
namespace React\Tests\Http\StreamingBodyParser;
use Clue\React\Block;
use React\EventLoop\Factory;
use React\Http\File;
use React\Http\StreamingBodyParser\FilesBufferedSink;
use React\Http\StreamingBodyParser\NoBodyParser;
use React\Http\Request;
use React\Stream\ThroughStream;
use React\Tests\Http\TestCase;
class FilesBufferedSinkTest extends TestCase
{
public function testDeferredStream()
{
$parser = new DummyParser(new Request('get', 'http://example.com'));
$deferredStream = FilesBufferedSink::createPromise($parser);
$stream = new ThroughStream();
$file = new File('bar.ext', 'text', $stream);
$parser->emit('file', ['foo', $file]);
$stream->end('foo.bar');
$parser->emit('end');
$result = Block\await($deferredStream, Factory::create(), 10);
$this->assertSame('foo', $result['files'][0]['name']);
$this->assertSame('bar.ext', $result['files'][0]['file']->getFilename());
$this->assertSame('text', $result['files'][0]['file']->getContentType());
$this->assertSame('foo.bar', $result['files'][0]['buffer']);
}
}