Skip to content

Commit 6de7bc0

Browse files
committed
Use clue/stream-filter to work around trying to rewind the closed writable stream
1 parent 687602d commit 6de7bc0

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

tests/WritableStreamResourceTest.php

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace React\Tests\Stream;
44

5+
use Clue\StreamFilter as Filter;
56
use React\Stream\WritableResourceStream;
67

78
class WritableResourceStreamTest extends TestCase
@@ -294,19 +295,24 @@ public function testEndWithoutDataDoesNotCloseIfWritableResourceStreamIsFull()
294295
public function testEndWithDataClosesImmediatelyIfWritableResourceStreamFlushes()
295296
{
296297
$stream = fopen('php://temp', 'r+');
298+
$filterBuffer = '';
297299
$loop = $this->createLoopMock();
298300

299301
$buffer = new WritableResourceStream($stream, $loop);
300302
$buffer->on('error', $this->expectCallableNever());
301303
$buffer->on('close', $this->expectCallableOnce());
302304

305+
Filter\append($stream, function ($chunk) use (&$filterBuffer) {
306+
$filterBuffer .= $chunk;
307+
return $chunk;
308+
});
309+
303310
$this->assertTrue($buffer->isWritable());
304311
$buffer->end('final words');
305312
$this->assertFalse($buffer->isWritable());
306313

307314
$buffer->handleWrite();
308-
rewind($stream);
309-
$this->assertSame('final words', stream_get_contents($stream));
315+
$this->assertSame('final words', $filterBuffer);
310316
}
311317

312318
/**
@@ -402,16 +408,22 @@ public function testDoubleCloseWillEmitOnlyOnce()
402408
public function testWritingToClosedWritableResourceStreamShouldNotWriteToStream()
403409
{
404410
$stream = fopen('php://temp', 'r+');
411+
$filterBuffer = '';
405412
$loop = $this->createLoopMock();
406413

407414
$buffer = new WritableResourceStream($stream, $loop);
415+
416+
Filter\append($stream, function ($chunk) use (&$filterBuffer) {
417+
$filterBuffer .= $chunk;
418+
return $chunk;
419+
});
420+
408421
$buffer->close();
409422

410423
$buffer->write('foo');
411424

412425
$buffer->handleWrite();
413-
rewind($stream);
414-
$this->assertSame('', stream_get_contents($stream));
426+
$this->assertSame('', $filterBuffer);
415427
}
416428

417429
/**

0 commit comments

Comments
 (0)