Merge pull request #15644 from owncloud/sftp-defaultport-storageid

Fix SFTP storage id to be compatible with older ids
remotes/origin/poc-doctrine-migrations
Morris Jobke 10 years ago
commit 512558c827
  1. 10
      apps/files_external/lib/sftp.php
  2. 57
      apps/files_external/tests/backends/sftp.php

@ -133,7 +133,15 @@ class SFTP extends \OC\Files\Storage\Common {
* {@inheritdoc}
*/
public function getId(){
return 'sftp::' . $this->user . '@' . $this->host . ':' . $this->port . '/' . $this->root;
$id = 'sftp::' . $this->user . '@' . $this->host;
if ($this->port !== 22) {
$id .= ':' . $this->port;
}
// note: this will double the root slash,
// we should not change it to keep compatible with
// old storage ids
$id .= '/' . $this->root;
return $id;
}
/**

@ -47,4 +47,61 @@ class SFTP extends Storage {
parent::tearDown();
}
/**
* @dataProvider configProvider
*/
public function testStorageId($config, $expectedStorageId) {
$instance = new \OC\Files\Storage\SFTP($config);
$this->assertEquals($expectedStorageId, $instance->getId());
}
public function configProvider() {
return [
[
// no root path
[
'run' => true,
'host' => 'somehost',
'user' => 'someuser',
'password' => 'somepassword',
'root' => '',
],
'sftp::someuser@somehost//',
],
[
// without leading nor trailing slash
[
'run' => true,
'host' => 'somehost',
'user' => 'someuser',
'password' => 'somepassword',
'root' => 'remotedir/subdir',
],
'sftp::someuser@somehost//remotedir/subdir/',
],
[
// regular path
[
'run' => true,
'host' => 'somehost',
'user' => 'someuser',
'password' => 'somepassword',
'root' => '/remotedir/subdir/',
],
'sftp::someuser@somehost//remotedir/subdir/',
],
[
// different port
[
'run' => true,
'host' => 'somehost:8822',
'user' => 'someuser',
'password' => 'somepassword',
'root' => 'remotedir/subdir/',
],
'sftp::someuser@somehost:8822//remotedir/subdir/',
],
];
}
}

Loading…
Cancel
Save