mirror of
https://github.com/danog/phpseclib.git
synced 2024-12-03 10:08:04 +01:00
d9e9504fba
* PSR2-1.0: Fix indentation phpcbf did not fix. Remove PSR2.Methods.FunctionCallSignature.SpaceAfterOpenBracket exception. Use phpcbf to fix PHP code to ruleset. Ignore coding guidelines in ANSI switch block. Base code sniffer ruleset on PSR2 rather than PEAR. Update PHP Code Sniffer to 2.3.3 Conflicts: build/code-sniffer-ruleset-tests.xml build/code-sniffer-ruleset.xml composer.lock phpseclib/Crypt/DES.php phpseclib/Crypt/Hash.php phpseclib/Crypt/RSA.php phpseclib/File/X509.php phpseclib/Math/BigInteger.php phpseclib/Net/SFTP.php phpseclib/Net/SSH1.php phpseclib/Net/SSH2.php tests/Functional/Net/SFTPUserStoryTest.php tests/Unit/Crypt/TwofishTest.php
120 lines
3.5 KiB
PHP
120 lines
3.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @author Marc Scholten <marc@pedigital.de>
|
|
* @copyright 2013 Marc Scholten
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
*/
|
|
|
|
class Unit_Net_SSH2Test extends PhpseclibTestCase
|
|
{
|
|
public function formatLogDataProvider()
|
|
{
|
|
return array(
|
|
array(
|
|
array('hello world'),
|
|
array('<--'),
|
|
"<--\r\n00000000 68:65:6c:6c:6f:20:77:6f:72:6c:64 hello world\r\n\r\n"
|
|
),
|
|
array(
|
|
array('hello', 'world'),
|
|
array('<--', '<--'),
|
|
"<--\r\n00000000 68:65:6c:6c:6f hello\r\n\r\n" .
|
|
"<--\r\n00000000 77:6f:72:6c:64 world\r\n\r\n"
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @dataProvider formatLogDataProvider
|
|
*/
|
|
public function testFormatLog(array $message_log, array $message_number_log, $expected)
|
|
{
|
|
$ssh = $this->createSSHMock();
|
|
|
|
$result = $ssh->_format_log($message_log, $message_number_log);
|
|
$this->assertEquals($expected, $result);
|
|
}
|
|
|
|
public function testGenerateIdentifier()
|
|
{
|
|
$identifier = $this->createSSHMock()->_generate_identifier();
|
|
$this->assertStringStartsWith('SSH-2.0-phpseclib_0.3', $identifier);
|
|
|
|
if (extension_loaded('openssl')) {
|
|
$this->assertContains('openssl', $identifier);
|
|
$this->assertNotContains('mcrypt', $identifier);
|
|
} elseif (extension_loaded('mcrypt')) {
|
|
$this->assertNotContains('openssl', $identifier);
|
|
$this->assertContains('mcrypt', $identifier);
|
|
} else {
|
|
$this->assertNotContains('openssl', $identifier);
|
|
$this->assertNotContains('mcrypt', $identifier);
|
|
}
|
|
|
|
if (extension_loaded('gmp')) {
|
|
$this->assertContains('gmp', $identifier);
|
|
$this->assertNotContains('bcmath', $identifier);
|
|
} elseif (extension_loaded('bcmath')) {
|
|
$this->assertNotContains('gmp', $identifier);
|
|
$this->assertContains('bcmath', $identifier);
|
|
} else {
|
|
$this->assertNotContains('gmp', $identifier);
|
|
$this->assertNotContains('bcmath', $identifier);
|
|
}
|
|
}
|
|
|
|
public function testGetExitStatusIfNotConnected()
|
|
{
|
|
$ssh = $this->createSSHMock();
|
|
|
|
$this->assertFalse($ssh->getExitStatus());
|
|
}
|
|
|
|
public function testPTYIDefaultValue()
|
|
{
|
|
$ssh = $this->createSSHMock();
|
|
$this->assertFalse($ssh->isPTYEnabled());
|
|
}
|
|
|
|
public function testEnablePTY()
|
|
{
|
|
$ssh = $this->createSSHMock();
|
|
|
|
$ssh->enablePTY();
|
|
$this->assertTrue($ssh->isPTYEnabled());
|
|
|
|
$ssh->disablePTY();
|
|
$this->assertFalse($ssh->isPTYEnabled());
|
|
}
|
|
|
|
public function testQuietModeDefaultValue()
|
|
{
|
|
$ssh = $this->createSSHMock();
|
|
|
|
$this->assertFalse($ssh->isQuietModeEnabled());
|
|
}
|
|
|
|
public function testEnableQuietMode()
|
|
{
|
|
$ssh = $this->createSSHMock();
|
|
|
|
$ssh->enableQuietMode();
|
|
$this->assertTrue($ssh->isQuietModeEnabled());
|
|
|
|
$ssh->disableQuietMode();
|
|
$this->assertFalse($ssh->isQuietModeEnabled());
|
|
}
|
|
|
|
/**
|
|
* @return \phpseclib\Net\SSH2
|
|
*/
|
|
protected function createSSHMock()
|
|
{
|
|
return $this->getMockBuilder('phpseclib\Net\SSH2')
|
|
->disableOriginalConstructor()
|
|
->setMethods(array('__destruct'))
|
|
->getMock();
|
|
}
|
|
}
|