404

[ Avaa Bypassed ]




Upload:

Command:

botdev@18.117.252.141: ~ $
<?php

namespace React\Tests\Stream;

use React\EventLoop\Factory;
use React\EventLoop\LoopInterface;
use React\Stream\DuplexResourceStream;
use React\Stream\WritableResourceStream;

/**
 * @group internet
 */
class FunctionalInternetTest extends TestCase
{
    public function testUploadKilobytePlain()
    {
        $size = 1000;
        $stream = stream_socket_client('tcp://httpbin.org:80');

        $loop = Factory::create();
        $stream = new DuplexResourceStream($stream, $loop);

        $buffer = '';
        $stream->on('data', function ($chunk) use (&$buffer) {
            $buffer .= $chunk;
        });

        $stream->on('error', $this->expectCallableNever());

        $stream->write("POST /post HTTP/1.0\r\nHost: httpbin.org\r\nContent-Length: $size\r\n\r\n" . str_repeat('.', $size));

        $this->awaitStreamClose($stream, $loop);

        $this->assertNotEquals('', $buffer);
    }

    public function testUploadBiggerBlockPlain()
    {
        $size = 50 * 1000;
        $stream = stream_socket_client('tcp://httpbin.org:80');

        $loop = Factory::create();
        $stream = new DuplexResourceStream($stream, $loop);

        $buffer = '';
        $stream->on('data', function ($chunk) use (&$buffer) {
            $buffer .= $chunk;
        });

        $stream->on('error', $this->expectCallableNever());

        $stream->write("POST /post HTTP/1.0\r\nHost: httpbin.org\r\nContent-Length: $size\r\n\r\n" . str_repeat('.', $size));

        $this->awaitStreamClose($stream, $loop);

        $this->assertNotEquals('', $buffer);
    }

    public function testUploadKilobyteSecure()
    {
        $size = 1000;
        $stream = stream_socket_client('tls://httpbin.org:443');

        $loop = Factory::create();
        $stream = new DuplexResourceStream($stream, $loop);

        $buffer = '';
        $stream->on('data', function ($chunk) use (&$buffer) {
            $buffer .= $chunk;
        });

        $stream->on('error', $this->expectCallableNever());

        $stream->write("POST /post HTTP/1.0\r\nHost: httpbin.org\r\nContent-Length: $size\r\n\r\n" . str_repeat('.', $size));

        $this->awaitStreamClose($stream, $loop);

        $this->assertNotEquals('', $buffer);
    }

    public function testUploadBiggerBlockSecureRequiresSmallerChunkSize()
    {
        $size = 50 * 1000;
        $stream = stream_socket_client('tls://httpbin.org:443');

        $loop = Factory::create();
        $stream = new DuplexResourceStream(
            $stream,
            $loop,
            null,
            new WritableResourceStream($stream, $loop, null, 8192)
        );

        $buffer = '';
        $stream->on('data', function ($chunk) use (&$buffer) {
            $buffer .= $chunk;
        });

        $stream->on('error', $this->expectCallableNever());

        $stream->write("POST /post HTTP/1.0\r\nHost: httpbin.org\r\nContent-Length: $size\r\n\r\n" . str_repeat('.', $size));

        $this->awaitStreamClose($stream, $loop);

        $this->assertNotEquals('', $buffer);
    }

    private function awaitStreamClose(DuplexResourceStream $stream, LoopInterface $loop, $timeout = 10.0)
    {
        $stream->on('close', function () use ($loop) {
            $loop->stop();
        });

        $that = $this;
        $loop->addTimer($timeout, function () use ($loop, $that) {
            $loop->stop();
            $that->fail('Timed out while waiting for stream to close');
        });

        $loop->run();
    }
}

Filemanager

Name Type Size Permission Actions
Stub Folder 0755
CallableStub.php File 104 B 0644
CompositeStreamTest.php File 8.21 KB 0644
DuplexResourceStreamIntegrationTest.php File 11.2 KB 0644
DuplexResourceStreamTest.php File 14.42 KB 0644
EnforceBlockingWrapper.php File 656 B 0644
FunctionalInternetTest.php File 3.4 KB 0644
ReadableResourceStreamTest.php File 11.37 KB 0644
TestCase.php File 1.15 KB 0644
ThroughStreamTest.php File 7.09 KB 0644
UtilTest.php File 7.89 KB 0644
WritableStreamResourceTest.php File 16.06 KB 0644