* This file is licensed under the Licensed under the MIT license: * http://opensource.org/licenses/MIT */ namespace Icewind\SMB\Test; use Icewind\SMB\BasicAuth; use Icewind\SMB\System; use Icewind\SMB\TimeZoneProvider; use Icewind\SMB\Wrapped\Server; class ServerTest extends TestCase { /** * @var \Icewind\SMB\Wrapped\Server $server */ private $server; private $config; public function setUp() { $this->requireBackendEnv('smbclient'); $this->config = json_decode(file_get_contents(__DIR__ . '/config.json')); $this->server = new Server( $this->config->host, new BasicAuth( $this->config->user, $this->config->password ), new System(), new TimeZoneProvider($this->config->host, new System()) ); } public function testListShares() { $shares = $this->server->listShares(); foreach ($shares as $share) { if ($share->getName() === $this->config->share) { return; } } $this->fail('Share "' . $this->config->share . '" not found'); } /** * @expectedException \Icewind\SMB\Exception\AuthenticationException */ public function testWrongUserName() { $this->markTestSkipped('This fails for no reason on travis'); $server = new Server( $this->config->host, new BasicAuth( uniqid(), uniqid() ), new System(), new TimeZoneProvider($this->config->host, new System()) ); $server->listShares(); } /** * @expectedException \Icewind\SMB\Exception\AuthenticationException */ public function testWrongPassword() { $server = new Server( $this->config->host, new BasicAuth( $this->config->user, uniqid() ), new System(), new TimeZoneProvider($this->config->host, new System()) ); $server->listShares(); } /** * @expectedException \Icewind\SMB\Exception\InvalidHostException */ public function testWrongHost() { $server = new Server( uniqid(), new BasicAuth( $this->config->user, $this->config->password ), new System(), new TimeZoneProvider($this->config->host, new System()) ); $server->listShares(); } /** * @expectedException \Icewind\SMB\Exception\InvalidHostException */ public function testHostEscape() { $server = new Server( $this->config->host . ';asd', new BasicAuth( $this->config->user, $this->config->password ), new System(), new TimeZoneProvider($this->config->host, new System()) ); $server->listShares(); } }