diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index 63f14a28777..10d33ad5fb6 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -19,7 +19,15 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{ $this->host=$params['host']; $this->user=$params['user']; $this->password=$params['password']; - $this->secure=isset($params['secure'])?(bool)$params['secure']:false; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } $this->root=isset($params['root'])?$params['root']:'/'; if(!$this->root || $this->root[0]!='/'){ $this->root='/'.$this->root; diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 58b95a6ae01..b4288a46744 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -268,7 +268,15 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{ $this->host=$params['host']; $this->user=$params['user']; $this->root=isset($params['root'])?$params['root']:'/'; - $this->secure=isset($params['secure'])?(bool)$params['secure']:true; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } if(!$this->root || $this->root[0]!='/'){ $this->root='/'.$this->root; } diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php index d136f04f3eb..a20491b4887 100644 --- a/apps/files_external/lib/webdav.php +++ b/apps/files_external/lib/webdav.php @@ -23,7 +23,15 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{ $this->host=$params['host']; $this->user=$params['user']; $this->password=$params['password']; - $this->secure=isset($params['secure'])?(bool)$params['secure']:false; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } $this->root=isset($params['root'])?$params['root']:'/'; if(!$this->root || $this->root[0]!='/'){ $this->root='/'.$this->root; diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index 68481b4e66b..a58f0f40d0b 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -26,5 +26,23 @@ if(!is_array($config) or !isset($config['ftp']) or !$config['ftp']['run']){ OCP\Files::rmdirr($this->instance->constructUrl('')); } } + + public function testConstructUrl(){ + $config = array ( 'host' => 'localhost', 'user' => 'ftp', 'password' => 'ftp', 'root' => '/', 'secure' => false ); + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = true; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = 'false'; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = 'true'; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + } }