From: Vincent Petry Date: Thu, 28 Nov 2013 10:45:26 +0000 (+0100) Subject: Add trailing slash in FTP root path when missing X-Git-Tag: v5.0.14~9 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7c623053dc82f4136eeeb8992236895d34b2ff0e;p=nextcloud-server.git Add trailing slash in FTP root path when missing Fixes #6093 Backport of 84f3dd15a63fb80f33e61f6056e142b0443329d5 --- diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index 85d7a5a32ae..00bf7a189ce 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -35,6 +35,9 @@ class FTP extends \OC\Files\Storage\StreamWrapper{ if ( ! $this->root || $this->root[0]!='/') { $this->root='/'.$this->root; } + if (substr($this->root, -1) !== '/') { + $this->root .= '/'; + } } else { throw new \Exception(); } diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index e146725473a..f994991d59d 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -48,5 +48,17 @@ class FTP extends Storage { $config['secure'] = 'true'; $instance = new OC_Filestorage_FTP($config); $this->assertEquals('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['root'] = ''; + $instance = new \OC\Files\Storage\FTP($config); + $this->assertEquals('ftps://ftp:ftp@localhost/somefile.txt', $instance->constructUrl('somefile.txt')); + + $config['root'] = '/abc'; + $instance = new \OC\Files\Storage\FTP($config); + $this->assertEquals('ftps://ftp:ftp@localhost/abc/somefile.txt', $instance->constructUrl('somefile.txt')); + + $config['root'] = '/abc/'; + $instance = new \OC\Files\Storage\FTP($config); + $this->assertEquals('ftps://ftp:ftp@localhost/abc/somefile.txt', $instance->constructUrl('somefile.txt')); } }