phpseclib/tests/Functional/Net/SFTPLargeFileTest.php
terrafrost d00e20a140 Merge remote-tracking branch 'graham/1.0-phpdoc' into 2.0-phpdoc
Conflicts:
	phpseclib/Crypt/Base.php
	phpseclib/Net/SCP.php
	tests/Unit/File/ASN1Test.php
2015-04-16 00:42:53 -05:00

69 lines
1.9 KiB
PHP

<?php
/**
* @author Andreas Fischer <bantu@phpbb.com>
* @copyright 2014 Andreas Fischer
* @license http://www.opensource.org/licenses/mit-license.html MIT License
*/
use phpseclib\Crypt\Base;
use phpseclib\Net\SFTP;
class Functional_Net_SFTPLargeFileTest extends PhpseclibFunctionalTestCase
{
protected $sftp;
protected $scratchDir;
static public function setUpBeforeClass()
{
if (!extension_loaded('mcrypt') && !extension_loaded('openssl')) {
self::markTestSkipped('This test depends on mcrypt or openssl for performance.');
}
parent::setUpBeforeClass();
}
public function setUp()
{
$this->scratchDir = uniqid('phpseclib-sftp-large-scratch-');
$this->sftp = new SFTP($this->getEnv('SSH_HOSTNAME'));
$this->assertTrue($this->sftp->login(
$this->getEnv('SSH_USERNAME'),
$this->getEnv('SSH_PASSWORD')
));
$this->assertTrue($this->sftp->mkdir($this->scratchDir));
$this->assertTrue($this->sftp->chdir($this->scratchDir));
}
public function tearDown()
{
if ($this->sftp) {
$this->sftp->chdir($this->getEnv('SSH_HOME'));
$this->sftp->delete($this->scratchDir);
}
parent::tearDown();
}
/**
* @group github298
* @group github455
* @group github457
*/
public function testPutSizeLocalFile()
{
$tmp_filename = $this->createTempFile(128, 1024 * 1024);
$filename = 'file-large-from-local.txt';
$this->assertTrue(
$this->sftp->put($filename, $tmp_filename, SFTP::SOURCE_LOCAL_FILE),
'Failed asserting that local file could be successfully put().'
);
$this->assertSame(
128 * 1024 * 1024,
$this->sftp->size($filename),
'Failed asserting that uploaded local file has the expected length.'
);
}
}