| Server IP : 54.233.248.239 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/mongodb/mongodb/tests/GridFS/ |
Upload File : |
<?php
namespace MongoDB\Tests\GridFS;
use MongoDB\BSON\Binary;
use MongoDB\BSON\UTCDateTime;
/**
* Functional tests for the internal StreamWrapper class.
*/
class StreamWrapperFunctionalTest extends FunctionalTestCase
{
public function setUp()
{
parent::setUp();
$this->filesCollection->insertMany([
['_id' => 'length-10', 'length' => 10, 'chunkSize' => 4, 'uploadDate' => new UTCDateTime('1484202200000')],
]);
$this->chunksCollection->insertMany([
['_id' => 1, 'files_id' => 'length-10', 'n' => 0, 'data' => new Binary('abcd', Binary::TYPE_GENERIC)],
['_id' => 2, 'files_id' => 'length-10', 'n' => 1, 'data' => new Binary('efgh', Binary::TYPE_GENERIC)],
['_id' => 3, 'files_id' => 'length-10', 'n' => 2, 'data' => new Binary('ij', Binary::TYPE_GENERIC)],
]);
}
public function testReadableStreamClose()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertTrue(fclose($stream));
}
public function testReadableStreamEof()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertFalse(feof($stream));
$this->assertStreamContents('abcdefghij', $stream);
$this->assertTrue(feof($stream));
}
public function testReadableStreamRead()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertSame('abc', fread($stream, 3));
$this->assertSame('defghij', fread($stream, 10));
$this->assertSame('', fread($stream, 3));
}
public function testReadableStreamSeek()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertSame(0, fseek($stream, 2, \SEEK_SET));
$this->assertSame('cde', fread($stream, 3));
$this->assertSame(0, fseek($stream, 10, \SEEK_SET));
$this->assertSame('', fread($stream, 3));
$this->assertSame(-1, fseek($stream, -1, \SEEK_SET));
$this->assertSame(-1, fseek($stream, 11, \SEEK_SET));
$this->assertSame(0, fseek($stream, -5, \SEEK_CUR));
$this->assertSame('fgh', fread($stream, 3));
$this->assertSame(0, fseek($stream, 1, \SEEK_CUR));
$this->assertSame('j', fread($stream, 3));
$this->assertSame(-1, fseek($stream, 1, \SEEK_CUR));
$this->assertSame(-1, fseek($stream, -11, \SEEK_CUR));
$this->assertSame(0, fseek($stream, 0, \SEEK_END));
$this->assertSame('', fread($stream, 3));
$this->assertSame(0, fseek($stream, -8, \SEEK_END));
$this->assertSame('cde', fread($stream, 3));
$this->assertSame(-1, fseek($stream, -11, \SEEK_END));
$this->assertSame(-1, fseek($stream, 1, \SEEK_END));
}
public function testReadableStreamStat()
{
$stream = $this->bucket->openDownloadStream('length-10');
$stat = fstat($stream);
$this->assertSame(0100444, $stat[2]);
$this->assertSame(0100444, $stat['mode']);
$this->assertSame(10, $stat[7]);
$this->assertSame(10, $stat['size']);
$this->assertSame(1484202200, $stat[9]);
$this->assertSame(1484202200, $stat['mtime']);
$this->assertSame(1484202200, $stat[10]);
$this->assertSame(1484202200, $stat['ctime']);
$this->assertSame(4, $stat[11]);
$this->assertSame(4, $stat['blksize']);
}
public function testReadableStreamWrite()
{
$stream = $this->bucket->openDownloadStream('length-10');
$this->assertSame(0, fwrite($stream, 'foobar'));
}
public function testWritableStreamClose()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertTrue(fclose($stream));
$this->assertStreamContents('foobar', $this->bucket->openDownloadStreamByName('filename'));
}
public function testWritableStreamEof()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertFalse(feof($stream));
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertFalse(feof($stream));
}
public function testWritableStreamRead()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame('', fread($stream, 8192));
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertSame('', fread($stream, 8192));
}
public function testWritableStreamSeek()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame(6, fwrite($stream, 'foobar'));
$this->assertSame(-1, fseek($stream, 0, \SEEK_SET));
$this->assertSame(-1, fseek($stream, 7, \SEEK_SET));
$this->assertSame(0, fseek($stream, 6, \SEEK_SET));
$this->assertSame(0, fseek($stream, 0, \SEEK_CUR));
$this->assertSame(-1, fseek($stream, -1, \SEEK_CUR));
$this->assertSame(-1, fseek($stream, 1, \SEEK_CUR));
$this->assertSame(0, fseek($stream, 0, \SEEK_END));
$this->assertSame(-1, fseek($stream, -1, \SEEK_END));
$this->assertSame(-1, fseek($stream, 1, \SEEK_END));
}
public function testWritableStreamStat()
{
$currentTimestamp = time();
$stream = $this->bucket->openUploadStream('filename', ['chunkSizeBytes' => 1024]);
$stat = fstat($stream);
$this->assertSame(0100222, $stat[2]);
$this->assertSame(0100222, $stat['mode']);
$this->assertSame(0, $stat[7]);
$this->assertSame(0, $stat['size']);
$this->assertGreaterThanOrEqual($currentTimestamp, $stat[9]);
$this->assertGreaterThanOrEqual($currentTimestamp, $stat['mtime']);
$this->assertGreaterThanOrEqual($currentTimestamp, $stat[10]);
$this->assertGreaterThanOrEqual($currentTimestamp, $stat['ctime']);
$this->assertSame(1024, $stat[11]);
$this->assertSame(1024, $stat['blksize']);
$this->assertSame(6, fwrite($stream, 'foobar'));
$stat = fstat($stream);
$this->assertSame(6, $stat[7]);
$this->assertSame(6, $stat['size']);
}
public function testWritableStreamWrite()
{
$stream = $this->bucket->openUploadStream('filename');
$this->assertSame(6, fwrite($stream, 'foobar'));
}
}