PhpseclibSftpTest.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace Gaufrette\Functional\Adapter;
  3. use Gaufrette\Adapter\PhpseclibSftp;
  4. use Gaufrette\Filesystem;
  5. use phpseclib\Net\SFTP;
  6. class PhpseclibSftpTest extends FunctionalTestCase
  7. {
  8. /** @var SFTP */
  9. private $sftp;
  10. /** @var string */
  11. private $baseDir;
  12. public function setUp()
  13. {
  14. $host = getenv('SFTP_HOST');
  15. $port = getenv('SFTP_PORT') ?: 22;
  16. $user = getenv('SFTP_USER');
  17. $password = getenv('SFTP_PASSWORD');
  18. $baseDir = getenv('SFTP_BASE_DIR');
  19. if ($host === false || $user === false || $password === false || $baseDir === false) {
  20. $this->markTestSkipped('Either SFTP_HOST, SFTP_USER, SFTP_PASSWORD and/or SFTP_BASE_DIR env variables are not defined.');
  21. }
  22. $this->baseDir = rtrim($baseDir, '/') . '/' . uniqid();
  23. $this->sftp = new SFTP($host, $port);
  24. $this->sftp->login($user, $password);
  25. $this->filesystem = new Filesystem(new PhpseclibSftp($this->sftp, $this->baseDir, true));
  26. }
  27. public function tearDown()
  28. {
  29. if (!isset($this->sftp)) {
  30. return;
  31. }
  32. $this->sftp->rmdir($this->baseDir);
  33. }
  34. }