aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_encryption/tests/proxy.php2
-rw-r--r--apps/files_external/appinfo/app.php16
-rw-r--r--apps/files_external/lib/amazons3.php14
-rwxr-xr-xapps/files_external/lib/config.php18
-rwxr-xr-xapps/files_external/lib/dropbox.php54
-rw-r--r--apps/files_external/lib/ftp.php6
-rw-r--r--apps/files_external/lib/google.php18
-rw-r--r--apps/files_external/lib/smb.php4
-rw-r--r--apps/files_external/lib/streamwrapper.php5
-rw-r--r--apps/files_external/lib/swift.php12
-rw-r--r--apps/files_external/lib/webdav.php12
-rwxr-xr-xapps/files_external/personal.php2
-rw-r--r--apps/files_external/tests/amazons3.php10
-rw-r--r--apps/files_external/tests/ftp.php10
-rw-r--r--apps/files_external/tests/google.php8
-rw-r--r--apps/files_external/tests/smb.php10
-rw-r--r--apps/files_external/tests/swift.php8
-rw-r--r--apps/files_external/tests/webdav.php8
-rw-r--r--apps/files_sharing/appinfo/app.php4
-rw-r--r--apps/files_sharing/lib/sharedstorage.php74
-rw-r--r--db_structure.xml91
-rw-r--r--lib/base.php6
-rw-r--r--lib/files/cache/cache.php236
-rw-r--r--lib/files/cache/scanner.php109
-rw-r--r--lib/files/file.php61
-rw-r--r--lib/files/storage/common.php (renamed from lib/filestorage/common.php)64
-rw-r--r--lib/files/storage/commontest.php (renamed from lib/filestorage/commontest.php)13
-rw-r--r--lib/files/storage/local.php (renamed from lib/filestorage/local.php)20
-rw-r--r--lib/files/storage/storage.php (renamed from lib/filestorage.php)30
-rw-r--r--lib/files/storage/temporary.php26
-rw-r--r--lib/filestorage/temporary.php17
-rw-r--r--lib/filesystem.php30
-rw-r--r--lib/filesystemview.php12
-rwxr-xr-xlib/util.php6
-rw-r--r--tests/lib/cache/file.php2
-rw-r--r--tests/lib/files/cache/cache.php112
-rw-r--r--tests/lib/files/cache/scanner.php105
-rw-r--r--tests/lib/files/storage/commontest.php (renamed from tests/lib/filestorage/commontest.php)10
-rw-r--r--tests/lib/files/storage/local.php (renamed from tests/lib/filestorage/local.php)12
-rw-r--r--tests/lib/files/storage/storage.php (renamed from tests/lib/filestorage.php)27
-rw-r--r--tests/lib/filesystem.php24
41 files changed, 989 insertions, 319 deletions
diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php
index 042011a6c87..d600bbc4071 100644
--- a/apps/files_encryption/tests/proxy.php
+++ b/apps/files_encryption/tests/proxy.php
@@ -30,7 +30,7 @@ class Test_CryptProxy extends UnitTestCase {
//set up temporary storage
OC_Filesystem::clearMounts();
- OC_Filesystem::mount('OC_Filestorage_Temporary',array(),'/');
+ OC_Filesystem::mount('\OC\Files\Storage\Temporary',array(),'/');
OC_Filesystem::init('/'.$user.'/files');
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index 837d35c9c63..c58cfcd0f5e 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -6,14 +6,14 @@
* See the COPYING-README file.
*/
-OC::$CLASSPATH['OC_FileStorage_StreamWrapper']='apps/files_external/lib/streamwrapper.php';
-OC::$CLASSPATH['OC_Filestorage_FTP']='apps/files_external/lib/ftp.php';
-OC::$CLASSPATH['OC_Filestorage_DAV']='apps/files_external/lib/webdav.php';
-OC::$CLASSPATH['OC_Filestorage_Google']='apps/files_external/lib/google.php';
-OC::$CLASSPATH['OC_Filestorage_SWIFT']='apps/files_external/lib/swift.php';
-OC::$CLASSPATH['OC_Filestorage_SMB']='apps/files_external/lib/smb.php';
-OC::$CLASSPATH['OC_Filestorage_AmazonS3']='apps/files_external/lib/amazons3.php';
-OC::$CLASSPATH['OC_Filestorage_Dropbox']='apps/files_external/lib/dropbox.php';
+OC::$CLASSPATH['OC\Files\Storage\StreamWrapper']='apps/files_external/lib/streamwrapper.php';
+OC::$CLASSPATH['OC\Files\Storage\FTP']='apps/files_external/lib/ftp.php';
+OC::$CLASSPATH['OC\Files\Storage\DAV']='apps/files_external/lib/webdav.php';
+OC::$CLASSPATH['OC\Files\Storage\Google']='apps/files_external/lib/google.php';
+OC::$CLASSPATH['OC\Files\Storage\SWIFT']='apps/files_external/lib/swift.php';
+OC::$CLASSPATH['OC\Files\Storage\SMB']='apps/files_external/lib/smb.php';
+OC::$CLASSPATH['OC\Files\Storage\AmazonS3']='apps/files_external/lib/amazons3.php';
+OC::$CLASSPATH['OC\Files\Storage\Dropbox']='apps/files_external/lib/dropbox.php';
OC::$CLASSPATH['OC_Mount_Config']='apps/files_external/lib/config.php';
OCP\App::registerAdmin('files_external', 'settings');
diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php
index 41ec3c70b45..a17a70ed38b 100644
--- a/apps/files_external/lib/amazons3.php
+++ b/apps/files_external/lib/amazons3.php
@@ -22,7 +22,9 @@
require_once 'aws-sdk/sdk.class.php';
-class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common {
+namespace OC\Files\Storage;
+
+class AmazonS3 extends \OC\Files\Storage\Common {
private $s3;
private $bucket;
@@ -33,7 +35,7 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common {
// TODO options: storage class, encryption server side, encrypt before upload?
public function __construct($params) {
- $this->s3 = new AmazonS3(array('key' => $params['key'], 'secret' => $params['secret']));
+ $this->s3 = new \AmazonS3(array('key' => $params['key'], 'secret' => $params['secret']));
$this->bucket = $params['bucket'];
}
@@ -96,7 +98,7 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common {
foreach ($response->body->CommonPrefixes as $object) {
$files[] = basename($object->Prefix);
}
- OC_FakeDirStream::$dirs['amazons3'.$path] = $files;
+ \OC_FakeDirStream::$dirs['amazons3'.$path] = $files;
return opendir('fakedir://amazons3'.$path);
}
return false;
@@ -160,7 +162,7 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common {
switch ($mode) {
case 'r':
case 'rb':
- $tmpFile = OC_Helper::tmpFile();
+ $tmpFile = \OC_Helper::tmpFile();
$handle = fopen($tmpFile, 'w');
$response = $this->s3->get_object($this->bucket, $path, array('fileDownload' => $handle));
if ($response->isOK()) {
@@ -184,8 +186,8 @@ class OC_Filestorage_AmazonS3 extends OC_Filestorage_Common {
} else {
$ext = '';
}
- $tmpFile = OC_Helper::tmpFile($ext);
- OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack');
+ $tmpFile = \OC_Helper::tmpFile($ext);
+ \OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack');
if ($this->file_exists($path)) {
$source = $this->fopen($path, 'r');
file_put_contents($tmpFile, $source);
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index f87a042b386..6d1bb1f55f2 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -39,14 +39,14 @@ class OC_Mount_Config {
*/
public static function getBackends() {
return array(
- 'OC_Filestorage_Local' => array('backend' => 'Local', 'configuration' => array('datadir' => 'Location')),
- 'OC_Filestorage_AmazonS3' => array('backend' => 'Amazon S3', 'configuration' => array('key' => 'Key', 'secret' => '*Secret', 'bucket' => 'Bucket')),
- 'OC_Filestorage_Dropbox' => array('backend' => 'Dropbox', 'configuration' => array('configured' => '#configured','app_key' => 'App key', 'app_secret' => 'App secret', 'token' => '#token', 'token_secret' => '#token_secret'), 'custom' => 'dropbox'),
- 'OC_Filestorage_FTP' => array('backend' => 'FTP', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure ftps://')),
- 'OC_Filestorage_Google' => array('backend' => 'Google Drive', 'configuration' => array('configured' => '#configured', 'token' => '#token', 'token_secret' => '#token secret'), 'custom' => 'google'),
- 'OC_Filestorage_SWIFT' => array('backend' => 'OpenStack Swift', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'token' => '*Token', 'root' => '&Root', 'secure' => '!Secure ftps://')),
- 'OC_Filestorage_SMB' => array('backend' => 'SMB', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')),
- 'OC_Filestorage_DAV' => array('backend' => 'WebDAV', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure https://'))
+ '\OC\Files\Storage\Local' => array('backend' => 'Local', 'configuration' => array('datadir' => 'Location')),
+ '\OC\Files\Storage\AmazonS3' => array('backend' => 'Amazon S3', 'configuration' => array('key' => 'Key', 'secret' => '*Secret', 'bucket' => 'Bucket')),
+ '\OC\Files\Storage\Dropbox' => array('backend' => 'Dropbox', 'configuration' => array('configured' => '#configured','app_key' => 'App key', 'app_secret' => 'App secret', 'token' => '#token', 'token_secret' => '#token_secret'), 'custom' => 'dropbox'),
+ '\OC\Files\Storage\FTP' => array('backend' => 'FTP', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure ftps://')),
+ '\OC\Files\Storage\Google' => array('backend' => 'Google Drive', 'configuration' => array('configured' => '#configured', 'token' => '#token', 'token_secret' => '#token secret'), 'custom' => 'google'),
+ '\OC\Files\Storage\SWIFT' => array('backend' => 'OpenStack Swift', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'token' => '*Token', 'root' => '&Root', 'secure' => '!Secure ftps://')),
+ '\OC\Files\Storage\SMB' => array('backend' => 'SMB', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'share' => 'Share', 'root' => '&Root')),
+ '\OC\Files\Storage\DAV' => array('backend' => 'WebDAV', 'configuration' => array('host' => 'URL', 'user' => 'Username', 'password' => '*Password', 'root' => '&Root', 'secure' => '!Secure https://'))
);
}
@@ -124,7 +124,7 @@ class OC_Mount_Config {
if ($isPersonal) {
// Verify that the mount point applies for the current user
// Prevent non-admin users from mounting local storage
- if ($applicable != OCP\User::getUser() || $class == 'OC_Filestorage_Local') {
+ if ($applicable != OCP\User::getUser() || $class == '\OC\Files\Storage\Local') {
return false;
}
$mountPoint = '/'.$applicable.'/files/'.ltrim($mountPoint, '/');
diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index c8220832702..86dbdab9caa 100755
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -22,7 +22,9 @@
require_once 'Dropbox/autoload.php';
-class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
+namespace OC\Files\Storage;
+
+class Dropbox extends \OC\Files\Storage\Common {
private $dropbox;
private $root;
@@ -33,12 +35,12 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
public function __construct($params) {
if (isset($params['configured']) && $params['configured'] == 'true' && isset($params['app_key']) && isset($params['app_secret']) && isset($params['token']) && isset($params['token_secret'])) {
$this->root=isset($params['root'])?$params['root']:'';
- $oauth = new Dropbox_OAuth_Curl($params['app_key'], $params['app_secret']);
+ $oauth = new \Dropbox_OAuth_Curl($params['app_key'], $params['app_secret']);
$oauth->setToken($params['token'], $params['token_secret']);
- $this->dropbox = new Dropbox_API($oauth, 'dropbox');
+ $this->dropbox = new \Dropbox_API($oauth, 'dropbox');
$this->mkdir('');
} else {
- throw new Exception('Creating OC_Filestorage_Dropbox storage failed');
+ throw new \Exception('Creating \OC\Files\Storage\Dropbox storage failed');
}
}
@@ -50,8 +52,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
if ($list) {
try {
$response = $this->dropbox->getMetaData($path);
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
if ($response && isset($response['contents'])) {
@@ -71,8 +73,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
$response = $this->dropbox->getMetaData($path, 'false');
$this->metaData[$path] = $response;
return $response;
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -84,8 +86,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
try {
$this->dropbox->createFolder($path);
return true;
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -100,7 +102,7 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
foreach ($contents as $file) {
$files[] = basename($file['path']);
}
- OC_FakeDirStream::$dirs['dropbox'.$path] = $files;
+ \OC_FakeDirStream::$dirs['dropbox'.$path] = $files;
return opendir('fakedir://dropbox'.$path);
}
return false;
@@ -153,8 +155,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
try {
$this->dropbox->delete($path);
return true;
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -165,8 +167,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
try {
$this->dropbox->move($path1, $path2);
return true;
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -177,8 +179,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
try {
$this->dropbox->copy($path1, $path2);
return true;
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
}
@@ -188,13 +190,13 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
switch ($mode) {
case 'r':
case 'rb':
- $tmpFile = OC_Helper::tmpFile();
+ $tmpFile = \OC_Helper::tmpFile();
try {
$data = $this->dropbox->getFile($path);
file_put_contents($tmpFile, $data);
return fopen($tmpFile, 'r');
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
case 'w':
@@ -214,8 +216,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
} else {
$ext = '';
}
- $tmpFile = OC_Helper::tmpFile($ext);
- OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack');
+ $tmpFile = \OC_Helper::tmpFile($ext);
+ \OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack');
if ($this->file_exists($path)) {
$source = $this->fopen($path, 'r');
file_put_contents($tmpFile, $source);
@@ -232,8 +234,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
try {
$this->dropbox->putFile(self::$tempFiles[$tmpFile], $handle);
unlink($tmpFile);
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
}
}
}
@@ -251,8 +253,8 @@ class OC_Filestorage_Dropbox extends OC_Filestorage_Common {
try {
$info = $this->dropbox->getAccountInfo();
return $info['quota_info']['quota'] - $info['quota_info']['normal'];
- } catch (Exception $exception) {
- OCP\Util::writeLog('files_external', $exception->getMessage(), OCP\Util::ERROR);
+ } catch (\Exception $exception) {
+ \OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
}
}
diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php
index 261141455cc..140a21ffe13 100644
--- a/apps/files_external/lib/ftp.php
+++ b/apps/files_external/lib/ftp.php
@@ -6,7 +6,9 @@
* See the COPYING-README file.
*/
-class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
+namespace OC\Files\Storage;
+
+class FTP extends \OC\Files\Storage\StreamWrapper{
private $password;
private $user;
private $host;
@@ -69,7 +71,7 @@ class OC_FileStorage_FTP extends OC_FileStorage_StreamWrapper{
$ext='';
}
$tmpFile=OCP\Files::tmpFile($ext);
- OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
+ \OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
if($this->file_exists($path)) {
$this->getFile($path,$tmpFile);
}
diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php
index 9b83dcee537..51c5d219aae 100644
--- a/apps/files_external/lib/google.php
+++ b/apps/files_external/lib/google.php
@@ -22,7 +22,9 @@
require_once 'Google/common.inc.php';
-class OC_Filestorage_Google extends OC_Filestorage_Common {
+namespace OC\Files\Storage;
+
+class Google extends \OC\Files\Storage\Common {
private $consumer;
private $oauth_token;
@@ -35,12 +37,12 @@ class OC_Filestorage_Google extends OC_Filestorage_Common {
if (isset($params['configured']) && $params['configured'] == 'true' && isset($params['token']) && isset($params['token_secret'])) {
$consumer_key = isset($params['consumer_key']) ? $params['consumer_key'] : 'anonymous';
$consumer_secret = isset($params['consumer_secret']) ? $params['consumer_secret'] : 'anonymous';
- $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret);
- $this->oauth_token = new OAuthToken($params['token'], $params['token_secret']);
- $this->sig_method = new OAuthSignatureMethod_HMAC_SHA1();
+ $this->consumer = new \OAuthConsumer($consumer_key, $consumer_secret);
+ $this->oauth_token = new \OAuthToken($params['token'], $params['token_secret']);
+ $this->sig_method = new \OAuthSignatureMethod_HMAC_SHA1();
$this->entries = array();
} else {
- throw new Exception('Creating OC_Filestorage_Google storage failed');
+ throw new \Exception('Creating \OC\Files\Storage\Google storage failed');
}
}
@@ -96,7 +98,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common {
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
}
if ($isDownload) {
- $tmpFile = OC_Helper::tmpFile();
+ $tmpFile = \OC_Helper::tmpFile();
$handle = fopen($tmpFile, 'w');
curl_setopt($curl, CURLOPT_FILE, $handle);
}
@@ -399,7 +401,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common {
} else {
$ext = '';
}
- $tmpFile = OC_Helper::tmpFile($ext);
+ $tmpFile = \OC_Helper::tmpFile($ext);
OC_CloseStreamWrapper::$callBacks[$tmpFile] = array($this, 'writeBack');
if ($this->file_exists($path)) {
$source = $this->fopen($path, 'r');
@@ -438,7 +440,7 @@ class OC_Filestorage_Google extends OC_Filestorage_Common {
}
if (isset($uploadUri) && $handle = fopen($path, 'r')) {
$uploadUri .= '?convert=false';
- $mimetype = OC_Helper::getMimeType($path);
+ $mimetype = \OC_Helper::getMimeType($path);
$size = filesize($path);
$headers = array('X-Upload-Content-Type: ' => $mimetype, 'X-Upload-Content-Length: ' => $size);
$postData = '<?xml version="1.0" encoding="UTF-8"?>';
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index e5ba7a17743..d4882ed0249 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -8,7 +8,9 @@
require_once 'smb4php/smb.php';
-class OC_FileStorage_SMB extends OC_FileStorage_StreamWrapper{
+namespace OC\Files\Storage;
+
+class SMB extends \OC\Files\Storage\StreamWrapper{
private $password;
private $user;
private $host;
diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php
index 7263ef23253..750bdbaf4d4 100644
--- a/apps/files_external/lib/streamwrapper.php
+++ b/apps/files_external/lib/streamwrapper.php
@@ -6,8 +6,9 @@
* See the COPYING-README file.
*/
+namespace OC\Files\Storage;
-abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{
+abstract class StreamWrapper extends \OC\Files\Storage\Common{
abstract public function constructUrl($path);
public function mkdir($path) {
@@ -84,6 +85,4 @@ abstract class OC_FileStorage_StreamWrapper extends OC_Filestorage_Common{
return stat($this->constructUrl($path));
}
-
-
}
diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php
index c29d28b44c1..c67cf59df6b 100644
--- a/apps/files_external/lib/swift.php
+++ b/apps/files_external/lib/swift.php
@@ -8,7 +8,9 @@
require_once 'php-cloudfiles/cloudfiles.php';
-class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
+namespace OC\Files\Storage;
+
+class SWIFT extends \OC\Files\Storage\Common{
private $host;
private $root;
private $user;
@@ -272,10 +274,10 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
if(!$this->root || $this->root[0]!='/') {
$this->root='/'.$this->root;
}
- $this->auth = new CF_Authentication($this->user, $this->token, null, $this->host);
+ $this->auth = new \CF_Authentication($this->user, $this->token, null, $this->host);
$this->auth->authenticate();
- $this->conn = new CF_Connection($this->auth);
+ $this->conn = new \CF_Connection($this->auth);
if(!$this->containerExists($this->root)) {
$this->rootContainer=$this->createContainer('/');
@@ -341,7 +343,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
$subContainers=$this->getSubContainers($container);
$files=array_merge($files,$subContainers);
$id=$this->getContainerName($path);
- OC_FakeDirStream::$dirs[$id]=$files;
+ \OC_FakeDirStream::$dirs[$id]=$files;
return opendir('fakedir://'.$id);
}
@@ -426,7 +428,7 @@ class OC_FileStorage_SWIFT extends OC_Filestorage_Common{
case 'c':
case 'c+':
$tmpFile=$this->getTmpFile($path);
- OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
+ \OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
self::$tempFiles[$tmpFile]=$path;
return fopen('close://'.$tmpFile,$mode);
}
diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php
index 3c18b227fa6..70210b49ee7 100644
--- a/apps/files_external/lib/webdav.php
+++ b/apps/files_external/lib/webdav.php
@@ -6,7 +6,9 @@
* See the COPYING-README file.
*/
-class OC_FileStorage_DAV extends OC_Filestorage_Common{
+namespace OC\Files\Storage;
+
+class DAV extends \OC\Files\Storage\Common{
private $password;
private $user;
private $host;
@@ -42,7 +44,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
'password' => $this->password,
);
- $this->client = new OC_Connector_Sabre_Client($settings);
+ $this->client = new \OC_Connector_Sabre_Client($settings);
if($caview = \OCP\Files::getStorage('files_external')) {
$certPath=\OCP\Config::getSystemValue('datadirectory').$caview->getAbsolutePath("").'rootcerts.crt';
@@ -78,12 +80,12 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
try{
$response=$this->client->propfind($path, array(),1);
$id=md5('webdav'.$this->root.$path);
- OC_FakeDirStream::$dirs[$id]=array();
+ \OC_FakeDirStream::$dirs[$id]=array();
$files=array_keys($response);
array_shift($files);//the first entry is the current directory
foreach($files as $file) {
$file = urldecode(basename($file));
- OC_FakeDirStream::$dirs[$id][]=$file;
+ \OC_FakeDirStream::$dirs[$id][]=$file;
}
return opendir('fakedir://'.$id);
}catch(Exception $e) {
@@ -161,7 +163,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
$ext='';
}
$tmpFile=OCP\Files::tmpFile($ext);
- OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
+ \OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack');
if($this->file_exists($path)) {
$this->getFile($path,$tmpFile);
}
diff --git a/apps/files_external/personal.php b/apps/files_external/personal.php
index f0d76460f54..a678f345c8e 100755
--- a/apps/files_external/personal.php
+++ b/apps/files_external/personal.php
@@ -24,7 +24,7 @@ OCP\Util::addScript('files_external', 'settings');
OCP\Util::addStyle('files_external', 'settings');
$backends = OC_Mount_Config::getBackends();
// Remove local storage
-unset($backends['OC_Filestorage_Local']);
+unset($backends['\OC\Files\Storage\Local']);
$tmpl = new OCP\Template('files_external', 'settings');
$tmpl->assign('isAdminPage', false, false);
$tmpl->assign('mounts', OC_Mount_Config::getPersonalMountPoints());
diff --git a/apps/files_external/tests/amazons3.php b/apps/files_external/tests/amazons3.php
index b9b4cf65bd6..cf372aecbd7 100644
--- a/apps/files_external/tests/amazons3.php
+++ b/apps/files_external/tests/amazons3.php
@@ -20,12 +20,14 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
+namespace Test\Files\Storage;
+
$config = include('apps/files_external/tests/config.php');
if (!is_array($config) or !isset($config['amazons3']) or !$config['amazons3']['run']) {
- abstract class Test_Filestorage_AmazonS3 extends Test_FileStorage{}
+ abstract class AmazonS3 extends Storage{}
return;
} else {
- class Test_Filestorage_AmazonS3 extends Test_FileStorage {
+ class AmazonS3 extends Storage {
private $config;
private $id;
@@ -34,11 +36,11 @@ if (!is_array($config) or !isset($config['amazons3']) or !$config['amazons3']['r
$id = uniqid();
$this->config = include('apps/files_external/tests/config.php');
$this->config['amazons3']['bucket'] = $id; // Make sure we have a new empty bucket to work in
- $this->instance = new OC_Filestorage_AmazonS3($this->config['amazons3']);
+ $this->instance = new \OC\Files\Storage\AmazonS3($this->config['amazons3']);
}
public function tearDown() {
- $s3 = new AmazonS3(array('key' => $this->config['amazons3']['key'], 'secret' => $this->config['amazons3']['secret']));
+ $s3 = new \AmazonS3(array('key' => $this->config['amazons3']['key'], 'secret' => $this->config['amazons3']['secret']));
if ($s3->delete_all_objects($this->id)) {
$s3->delete_bucket($this->id);
}
diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php
index 12f3ec3908d..8a0821e25a5 100644
--- a/apps/files_external/tests/ftp.php
+++ b/apps/files_external/tests/ftp.php
@@ -6,23 +6,25 @@
* See the COPYING-README file.
*/
+namespace Test\Files\Storage;
+
$config=include('apps/files_external/tests/config.php');
if(!is_array($config) or !isset($config['ftp']) or !$config['ftp']['run']) {
- abstract class Test_Filestorage_FTP extends Test_FileStorage{}
+ abstract class FTP extends Storage{}
return;
}else{
- class Test_Filestorage_FTP extends Test_FileStorage {
+ class FTP extends Storage {
private $config;
public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['ftp']['root'].='/'.$id;//make sure we have an new empty folder to work in
- $this->instance=new OC_Filestorage_FTP($this->config['ftp']);
+ $this->instance=new \OC\Files\Storage\FTP($this->config['ftp']);
}
public function tearDown() {
- OCP\Files::rmdirr($this->instance->constructUrl(''));
+ \OCP\Files::rmdirr($this->instance->constructUrl(''));
}
}
}
diff --git a/apps/files_external/tests/google.php b/apps/files_external/tests/google.php
index d2a6358ade4..fff6461c912 100644
--- a/apps/files_external/tests/google.php
+++ b/apps/files_external/tests/google.php
@@ -20,12 +20,14 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
+namespace Test\Files\Storage;
+
$config=include('apps/files_external/tests/config.php');
if(!is_array($config) or !isset($config['google']) or !$config['google']['run']) {
- abstract class Test_Filestorage_Google extends Test_FileStorage{}
+ abstract class Google extends Storage{}
return;
}else{
- class Test_Filestorage_Google extends Test_FileStorage {
+ class Google extends Storage {
private $config;
@@ -33,7 +35,7 @@ if(!is_array($config) or !isset($config['google']) or !$config['google']['run'])
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['google']['root'].='/'.$id;//make sure we have an new empty folder to work in
- $this->instance=new OC_Filestorage_Google($this->config['google']);
+ $this->instance=new \OC\Files\Storage\Google($this->config['google']);
}
public function tearDown() {
diff --git a/apps/files_external/tests/smb.php b/apps/files_external/tests/smb.php
index 7de4fddbb34..87b110a241c 100644
--- a/apps/files_external/tests/smb.php
+++ b/apps/files_external/tests/smb.php
@@ -8,22 +8,24 @@
$config=include('apps/files_external/tests/config.php');
+namespace Test\Files\Storage;
+
if(!is_array($config) or !isset($config['smb']) or !$config['smb']['run']) {
- abstract class Test_Filestorage_SMB extends Test_FileStorage{}
+ abstract class SMB extends Storage{}
return;
}else{
- class Test_Filestorage_SMB extends Test_FileStorage {
+ class SMB extends Storage {
private $config;
public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['smb']['root'].=$id;//make sure we have an new empty folder to work in
- $this->instance=new OC_Filestorage_SMB($this->config['smb']);
+ $this->instance=new \OC\Files\Storage\SMB($this->config['smb']);
}
public function tearDown() {
- OCP\Files::rmdirr($this->instance->constructUrl(''));
+ \OCP\Files::rmdirr($this->instance->constructUrl(''));
}
}
}
diff --git a/apps/files_external/tests/swift.php b/apps/files_external/tests/swift.php
index a6f5eace1c8..98a97f99b5b 100644
--- a/apps/files_external/tests/swift.php
+++ b/apps/files_external/tests/swift.php
@@ -6,19 +6,21 @@
* See the COPYING-README file.
*/
+namespace Test\Files\Storage;
+
$config=include('apps/files_external/tests/config.php');
if(!is_array($config) or !isset($config['swift']) or !$config['swift']['run']) {
- abstract class Test_Filestorage_SWIFT extends Test_FileStorage{}
+ abstract class SWIFT extends Storage{}
return;
}else{
- class Test_Filestorage_SWIFT extends Test_FileStorage {
+ class SWIFT extends Storage {
private $config;
public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['swift']['root'].='/'.$id;//make sure we have an new empty folder to work in
- $this->instance=new OC_Filestorage_SWIFT($this->config['swift']);
+ $this->instance=new \OC\Files\Storage\SWIFT($this->config['swift']);
}
diff --git a/apps/files_external/tests/webdav.php b/apps/files_external/tests/webdav.php
index 74d980aa3f1..cddd0d513ed 100644
--- a/apps/files_external/tests/webdav.php
+++ b/apps/files_external/tests/webdav.php
@@ -6,19 +6,21 @@
* See the COPYING-README file.
*/
+namespace Test\Files\Storage;
+
$config=include('apps/files_external/tests/config.php');
if(!is_array($config) or !isset($config['webdav']) or !$config['webdav']['run']) {
- abstract class Test_Filestorage_DAV extends Test_FileStorage{}
+ abstract class DAV extends Storage{}
return;
}else{
- class Test_Filestorage_DAV extends Test_FileStorage {
+ class DAV extends Storage {
private $config;
public function setUp() {
$id=uniqid();
$this->config=include('apps/files_external/tests/config.php');
$this->config['webdav']['root'].='/'.$id;//make sure we have an new empty folder to work in
- $this->instance=new OC_Filestorage_DAV($this->config['webdav']);
+ $this->instance=new \OC\Files\Storage\DAV($this->config['webdav']);
}
public function tearDown() {
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 109f86b2e87..210c78ad174 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -2,8 +2,8 @@
OC::$CLASSPATH['OC_Share_Backend_File'] = "apps/files_sharing/lib/share/file.php";
OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'apps/files_sharing/lib/share/folder.php';
-OC::$CLASSPATH['OC_Filestorage_Shared'] = "apps/files_sharing/lib/sharedstorage.php";
-OCP\Util::connectHook('OC_Filesystem', 'setup', 'OC_Filestorage_Shared', 'setup');
+OC::$CLASSPATH['OC\Files\Storage\Shared'] = "apps/files_sharing/lib/sharedstorage.php";
+OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
OCP\Util::addScript('files_sharing', 'share');
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 6dba76955a0..876e719956f 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -20,10 +20,12 @@
*
*/
+namespace OC\Files\Storage;
+
/**
* Convert target path to source path and pass the function call to the correct storage provider
*/
-class OC_Filestorage_Shared extends OC_Filestorage_Common {
+class Shared extends \OC\Files\Storage\Common {
private $sharedFolder;
private $files = array();
@@ -50,7 +52,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if (isset($this->files[$folder])) {
$file = $this->files[$folder];
} else {
- $file = OCP\Share::getItemSharedWith('folder', $folder, OC_Share_Backend_File::FORMAT_SHARED_STORAGE);
+ $file = OCP\Share::getItemSharedWith('folder', $folder, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE);
}
if ($file) {
$this->files[$target]['path'] = $file['path'].substr($target, strlen($folder));
@@ -58,7 +60,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
return $this->files[$target];
}
} else {
- $file = OCP\Share::getItemSharedWith('file', $target, OC_Share_Backend_File::FORMAT_SHARED_STORAGE);
+ $file = OCP\Share::getItemSharedWith('file', $target, \OC_Share_Backend_File::FORMAT_SHARED_STORAGE);
if ($file) {
$this->files[$target] = $file;
return $this->files[$target];
@@ -78,7 +80,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
$file = $this->getFile($target);
if (isset($file['path'])) {
$uid = substr($file['path'], 1, strpos($file['path'], '/', 1) - 1);
- OC_Filesystem::mount('OC_Filestorage_Local', array('datadir' => OC_User::getHome($uid)), $uid);
+ \OC_Filesystem::mount('\OC\Files\Storage\Local', array('datadir' => \OC_User::getHome($uid)), $uid);
return $file['path'];
}
return false;
@@ -89,7 +91,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
* @param string Shared target file path
* @return Returns CRUDS permissions granted or false if not found
*/
- private function getPermissions($target) {
+ public function getPermissions($target) {
$file = $this->getFile($target);
if (isset($file['permissions'])) {
return $file['permissions'];
@@ -103,7 +105,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
* @return Source file path with mount point stripped out
*/
private function getInternalPath($path) {
- $mountPoint = OC_Filesystem::getMountPoint($path);
+ $mountPoint = \OC_Filesystem::getMountPoint($path);
$internalPath = substr($path, strlen($mountPoint));
return $internalPath;
}
@@ -112,7 +114,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if ($path == '' || $path == '/' || !$this->isCreatable(dirname($path))) {
return false;
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->mkdir($this->getInternalPath($source));
}
return false;
@@ -120,7 +122,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function rmdir($path) {
if (($source = $this->getSourcePath($path)) && $this->isDeletable($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->rmdir($this->getInternalPath($source));
}
return false;
@@ -128,11 +130,11 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function opendir($path) {
if ($path == '' || $path == '/') {
- $files = OCP\Share::getItemsSharedWith('file', OC_Share_Backend_Folder::FORMAT_OPENDIR);
- OC_FakeDirStream::$dirs['shared'] = $files;
+ $files = OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_Folder::FORMAT_OPENDIR);
+ \OC_FakeDirStream::$dirs['shared'] = $files;
return opendir('fakedir://shared');
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->opendir($this->getInternalPath($source));
}
return false;
@@ -142,7 +144,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if ($path == '' || $path == '/') {
return true;
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->is_dir($this->getInternalPath($source));
}
return false;
@@ -150,7 +152,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function is_file($path) {
if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->is_file($this->getInternalPath($source));
}
return false;
@@ -163,7 +165,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
$stat['ctime'] = $this->filectime($path);
return $stat;
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->stat($this->getInternalPath($source));
}
return false;
@@ -173,7 +175,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if ($path == '' || $path == '/') {
return 'dir';
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->filetype($this->getInternalPath($source));
}
return false;
@@ -183,7 +185,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if ($path == '' || $path == '/' || $this->is_dir($path)) {
return 0;
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->filesize($this->getInternalPath($source));
}
return false;
@@ -225,7 +227,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if ($path == '' || $path == '/') {
return true;
} else if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->file_exists($this->getInternalPath($source));
}
return false;
@@ -246,7 +248,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
} else {
$source = $this->getSourcePath($path);
if ($source) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->filectime($this->getInternalPath($source));
}
}
@@ -267,7 +269,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
} else {
$source = $this->getSourcePath($path);
if ($source) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->filemtime($this->getInternalPath($source));
}
}
@@ -280,8 +282,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
'target' => $this->sharedFolder.$path,
'source' => $source,
);
- OCP\Util::emitHook('OC_Filestorage_Shared', 'file_get_contents', $info);
- $storage = OC_Filesystem::getStorage($source);
+ OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->file_get_contents($this->getInternalPath($source));
}
}
@@ -296,8 +298,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
'target' => $this->sharedFolder.$path,
'source' => $source,
);
- OCP\Util::emitHook('OC_Filestorage_Shared', 'file_put_contents', $info);
- $storage = OC_Filesystem::getStorage($source);
+ OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
+ $storage = \OC_Filesystem::getStorage($source);
$result = $storage->file_put_contents($this->getInternalPath($source), $data);
return $result;
}
@@ -308,7 +310,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
// Delete the file if DELETE permission is granted
if ($source = $this->getSourcePath($path)) {
if ($this->isDeletable($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->unlink($this->getInternalPath($source));
} else if (dirname($path) == '/' || dirname($path) == '.') {
// Unshare the file from the user if in the root of the Shared folder
@@ -332,7 +334,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if (dirname($path1) == dirname($path2)) {
// Rename the file if UPDATE permission is granted
if ($this->isUpdatable($path1)) {
- $storage = OC_Filesystem::getStorage($oldSource);
+ $storage = \OC_Filesystem::getStorage($oldSource);
return $storage->rename($this->getInternalPath($oldSource), $this->getInternalPath($newSource));
}
} else {
@@ -347,7 +349,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
return $this->unlink($path1);
}
} else {
- $storage = OC_Filesystem::getStorage($oldSource);
+ $storage = \OC_Filesystem::getStorage($oldSource);
return $storage->rename($this->getInternalPath($oldSource), $this->getInternalPath($newSource));
}
}
@@ -361,7 +363,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
if ($this->isCreatable(dirname($path2))) {
$source = $this->fopen($path1, 'r');
$target = $this->fopen($path2, 'w');
- return OC_Helper::streamCopy($source, $target);
+ return \OC_Helper::streamCopy($source, $target);
}
return false;
}
@@ -392,8 +394,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
'source' => $source,
'mode' => $mode,
);
- OCP\Util::emitHook('OC_Filestorage_Shared', 'fopen', $info);
- $storage = OC_Filesystem::getStorage($source);
+ OCP\Util::emitHook('\OC\Files\Storage\Shared', 'fopen', $info);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->fopen($this->getInternalPath($source), $mode);
}
return false;
@@ -404,7 +406,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
return 'httpd/unix-directory';
}
if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->getMimeType($this->getInternalPath($source));
}
return false;
@@ -413,21 +415,21 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public function free_space($path) {
$source = $this->getSourcePath($path);
if ($source) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->free_space($this->getInternalPath($source));
}
}
public function getLocalFile($path) {
if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->getLocalFile($this->getInternalPath($source));
}
return false;
}
public function touch($path, $mtime = null) {
if ($source = $this->getSourcePath($path)) {
- $storage = OC_Filesystem::getStorage($source);
+ $storage = \OC_Filesystem::getStorage($source);
return $storage->touch($this->getInternalPath($source), $mtime);
}
return false;
@@ -435,7 +437,7 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
public static function setup($options) {
$user_dir = $options['user_dir'];
- OC_Filesystem::mount('OC_Filestorage_Shared', array('sharedFolder' => '/Shared'), $user_dir.'/Shared/');
+ \OC_Filesystem::mount('\OC\Files\Storage\Shared', array('sharedFolder' => '/Shared'), $user_dir.'/Shared/');
}
/**
@@ -447,4 +449,8 @@ class OC_Filestorage_Shared extends OC_Filestorage_Common {
//TODO
return false;
}
+
+ public function getId(){
+ return 'shared::' . $this->sharedFolder;
+ }
}
diff --git a/db_structure.xml b/db_structure.xml
index 99a30cb6137..e0b9dc11e94 100644
--- a/db_structure.xml
+++ b/db_structure.xml
@@ -53,20 +53,28 @@
<table>
- <name>*dbprefix*fscache</name>
+ <name>*dbprefix*filecache</name>
<declaration>
<field>
- <name>id</name>
- <autoincrement>1</autoincrement>
+ <name>fileid</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
+ <autoincrement>1</autoincrement>
<length>4</length>
</field>
<field>
+ <name>storage</name>
+ <type>text</type>
+ <default></default>
+ <notnull>true</notnull>
+ <length>64</length>
+ </field>
+
+ <field>
<name>path</name>
<type>text</type>
<default></default>
@@ -85,49 +93,17 @@
<field>
<name>parent</name>
<type>integer</type>
- <default>0</default>
- <notnull>true</notnull>
- <length>8</length>
- </field>
-
- <field>
- <name>name</name>
- <type>text</type>
<default></default>
<notnull>true</notnull>
- <length>300</length>
+ <length>4</length>
</field>
<field>
- <name>user</name>
+ <name>name</name>
<type>text</type>
<default></default>
<notnull>true</notnull>
- <length>64</length>
- </field>
-
- <field>
- <name>size</name>
- <type>integer</type>
- <default>0</default>
- <notnull>true</notnull>
- <length>8</length>
- </field>
-
- <field>
- <name>ctime</name>
- <type>integer</type>
- <default>0</default>
- <notnull>true</notnull>
- <length>8</length>
- </field>
-
- <field>
- <name>mtime</name>
- <type>integer</type>
- <default>0</default>
- <notnull>true</notnull>
- <length>8</length>
+ <length>250</length>
</field>
<field>
@@ -135,7 +111,7 @@
<type>text</type>
<default></default>
<notnull>true</notnull>
- <length>96</length>
+ <length>64</length>
</field>
<field>
@@ -147,55 +123,44 @@
</field>
<field>
- <name>encrypted</name>
+ <name>size</name>
<type>integer</type>
- <default>0</default>
+ <default></default>
<notnull>true</notnull>
- <length>1</length>
+ <length>4</length>
</field>
<field>
- <name>versioned</name>
+ <name>mtime</name>
<type>integer</type>
- <default>0</default>
+ <default></default>
<notnull>true</notnull>
- <length>1</length>
+ <length>4</length>
</field>
<field>
- <name>writable</name>
+ <name>encrypted</name>
<type>integer</type>
<default>0</default>
<notnull>true</notnull>
- <length>1</length>
+ <length>4</length>
</field>
<index>
- <name>fscache_path_hash_index</name>
- <field>
- <name>path_hash</name>
- <sorting>ascending</sorting>
- </field>
- </index>
-
- <index>
- <name>parent_index</name>
+ <name>storage_path_hash</name>
+ <unique>true</unique>
<field>
- <name>parent</name>
+ <name>storage</name>
<sorting>ascending</sorting>
</field>
- </index>
-
- <index>
- <name>name_index</name>
<field>
- <name>name</name>
+ <name>path_hash</name>
<sorting>ascending</sorting>
</field>
</index>
<index>
- <name>parent_name_index</name>
+ <name>parent_name_hash</name>
<field>
<name>parent</name>
<sorting>ascending</sorting>
diff --git a/lib/base.php b/lib/base.php
index c898273d9e2..8133882811f 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -81,6 +81,9 @@ class OC{
elseif(strpos($className, 'OC_')===0) {
$path = strtolower(str_replace('_', '/', substr($className, 3)) . '.php');
}
+ elseif(strpos($className, 'OC\\')===0) {
+ $path = strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
+ }
elseif(strpos($className, 'OCP\\')===0) {
$path = 'public/'.strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
}
@@ -92,6 +95,9 @@ class OC{
}
elseif(strpos($className, 'Test_')===0) {
$path = 'tests/lib/'.strtolower(str_replace('_', '/', substr($className, 5)) . '.php');
+ }
+ elseif(strpos($className, 'Test\\')===0) {
+ $path = 'tests/lib/'.strtolower(str_replace('\\', '/', substr($className, 5)) . '.php');
}else{
return false;
}
diff --git a/lib/files/cache/cache.php b/lib/files/cache/cache.php
new file mode 100644
index 00000000000..79673771e5e
--- /dev/null
+++ b/lib/files/cache/cache.php
@@ -0,0 +1,236 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Cache;
+
+class Cache {
+ /**
+ * @var \OC\Files\Storage\Storage
+ */
+ private $storage;
+
+ /**
+ * @var array partial data for the cache
+ */
+ private $partial = array();
+
+ private $storageId;
+
+ /**
+ * @param \OC\Files\Storage\Storage $storage
+ */
+ public function __construct(\OC\Files\Storage\Storage $storage) {
+ $this->storage = $storage;
+ $this->storageId = $storage->getId();
+ }
+
+ /**
+ * get the stored metadata of a file or folder
+ *
+ * @param string/int $file
+ * @return array
+ */
+ public function get($file) {
+ if (is_string($file)) {
+ $where = 'WHERE `storage` = ? AND `path_hash` = ?';
+ $params = array($this->storageId, md5($file));
+ } else { //file id
+ $where = 'WHERE `fileid` = ?';
+ $params = array($file);
+ }
+ $query = \OC_DB::prepare(
+ 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`
+ FROM `*PREFIX*filecache` ' . $where);
+ $result = $query->execute($params);
+ $data = $result->fetchRow();
+
+ //merge partial data
+ if (!$data and is_string($file)) {
+ if (isset($this->partial[$file])) {
+ $data = $this->partial[$file];
+ }
+ } else {
+ //fix types
+ $data['fileid'] = (int)$data['fileid'];
+ $data['size'] = (int)$data['size'];
+ $data['mtime'] = (int)$data['mtime'];
+ $data['encrypted'] = (bool)$data['encrypted'];
+ }
+
+ return $data;
+ }
+
+ /**
+ * get the metadata of all files stored in $folder
+ *
+ * @param string $folder
+ * @return array
+ */
+ public function getFolderContents($folder) {
+ $fileId = $this->getId($folder);
+ if ($fileId > -1) {
+ $query = \OC_DB::prepare(
+ 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`
+ FROM `*PREFIX*filecache` WHERE parent = ?');
+ $result = $query->execute(array($fileId));
+ return $result->fetchAll();
+ } else {
+ return array();
+ }
+ }
+
+ /**
+ * store meta data for a file or folder
+ *
+ * @param string $file
+ * @param array $data
+ *
+ * @return int file id
+ */
+ public function put($file, array $data) {
+ if (($id = $this->getId($file)) > -1) {
+ $this->update($id, $data);
+ return $id;
+ } else {
+ if (isset($this->partial[$file])) { //add any saved partial data
+ $data = array_merge($this->partial[$file], $data);
+ unset($this->partial[$file]);
+ }
+
+ $requiredFields = array('size', 'mtime', 'mimetype');
+ foreach ($requiredFields as $field) {
+ if (!isset($data[$field])) { //data not complete save as partial and return
+ $this->partial[$file] = $data;
+ return -1;
+ }
+ }
+
+ $data['path'] = $file;
+ $data['parent'] = $this->getParentId($file);
+ $data['name'] = basename($file);
+ $data['encrypted'] = isset($data['encrypted']) ? ((int)$data['encrypted']) : 0;
+
+ list($queryParts, $params) = $this->buildParts($data);
+ $queryParts[] = '`storage`';
+ $params[] = $this->storageId;
+ $valuesPlaceholder = array_fill(0, count($queryParts), '?');
+
+ $query = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`(' . implode(', ', $queryParts) . ') VALUES(' . implode(', ', $valuesPlaceholder) . ')');
+ $query->execute($params);
+
+ return (int)\OC_DB::insertid('*PREFIX*filecache');
+ }
+ }
+
+ /**
+ * update the metadata in the cache
+ *
+ * @param int $id
+ * @param array $data
+ */
+ public function update($id, array $data) {
+ list($queryParts, $params) = $this->buildParts($data);
+ $params[] = $id;
+
+ $query = \OC_DB::prepare('UPDATE `*PREFIX*filecache` SET ' . implode(' = ?, ', $queryParts) . '=? WHERE fileid = ?');
+ $query->execute($params);
+ }
+
+ /**
+ * extract query parts and params array from data array
+ *
+ * @param array $data
+ * @return array
+ */
+ static function buildParts(array $data) {
+ $fields = array('path', 'parent', 'name', 'mimetype', 'size', 'mtime', 'encrypted');
+
+ $params = array();
+ $queryParts = array();
+ foreach ($data as $name => $value) {
+ if (array_search($name, $fields) !== false) {
+ $params[] = $value;
+ $queryParts[] = '`' . $name . '`';
+ if ($name === 'path') {
+ $params[] = md5($value);
+ $queryParts[] = '`path_hash`';
+ } elseif ($name === 'mimetype') {
+ $params[] = substr($value, 0, strpos($value, '/'));
+ $queryParts[] = '`mimepart`';
+ }
+ }
+ }
+ return array($queryParts, $params);
+ }
+
+ /**
+ * get the file id for a file
+ *
+ * @param string $file
+ * @return int
+ */
+ public function getId($file) {
+ $pathHash = md5($file);
+
+ $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
+ $result = $query->execute(array($this->storageId, $pathHash));
+
+ if ($row = $result->fetchRow()) {
+ return $row['fileid'];
+ } else {
+ return -1;
+ }
+ }
+
+ /**
+ * get the id of the parent folder of a file
+ *
+ * @param string $file
+ * @return int
+ */
+ public function getParentId($file) {
+ if ($file === '') {
+ return -1;
+ } else {
+ $parent = dirname($file);
+ if ($parent === '.') {
+ $parent = '';
+ }
+ return $this->getId($parent);
+ }
+ }
+
+ /**
+ * check if a file is available in the cache
+ *
+ * @param string $file
+ * @return bool
+ */
+ public function inCache($file) {
+ return $this->getId($file) != -1;
+ }
+
+ /**
+ * remove a file or folder from the cache
+ *
+ * @param string $file
+ */
+ public function remove($file) {
+ $pathHash = md5($file);
+ $query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
+ $query->execute(array($this->storageId, $pathHash));
+ }
+
+ /**
+ * remove all entries for files that are stored on the storage from the cache
+ */
+ public function clear() {
+ $query = \OC_DB::prepare('DELETE FROM `*PREFIX*filecache` WHERE storage=?');
+ $query->execute(array($this->storageId));
+ }
+}
diff --git a/lib/files/cache/scanner.php b/lib/files/cache/scanner.php
new file mode 100644
index 00000000000..e8f54c34be7
--- /dev/null
+++ b/lib/files/cache/scanner.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Cache;
+
+class Scanner {
+ /**
+ * @var \OC\Files\Storage\Storage $storage
+ */
+ private $storage;
+
+ /**
+ * @var \OC\Files\Cache\Cache $cache
+ */
+ private $cache;
+
+ const SCAN_RECURSIVE = true;
+ const SCAN_SHALLOW = false;
+
+ public function __construct(\OC\Files\Storage\Storage $storage) {
+ $this->storage = $storage;
+ $this->cache = new Cache($storage);
+ }
+
+ /**
+ * get all the metadata of a file or folder
+ * *
+ *
+ * @param string $path
+ * @return array with metadata of the file
+ */
+ public function getData($path) {
+ $data = array();
+ if (!$this->storage->isReadable($path)) return null; //cant read, nothing we can do
+ $data['mimetype'] = $this->storage->getMimeType($path);
+ $data['mtime'] = $this->storage->filemtime($path);
+ if ($data['mimetype'] == 'httpd/unix-directory') {
+ $data['size'] = -1; //unknown
+ $data['permissions'] = $this->storage->getPermissions($path . '/');
+ } else {
+ $data['size'] = $this->storage->filesize($path);
+ $data['permissions'] = $this->storage->getPermissions($path);
+ }
+ return $data;
+ }
+
+ /**
+ * scan a single file and store it in the cache
+ *
+ * @param string $file
+ * @return array with metadata of the scanned file
+ */
+ public function scanFile($file) {
+ $data = $this->getData($file);
+ if ($file !== '') {
+ $parent = dirname($file);
+ if ($parent === '.') {
+ $parent = '';
+ }
+ if (!$this->cache->inCache($parent)) {
+ $this->scanFile($parent);
+ }
+ }
+ $this->cache->put($file, $data);
+ return $data;
+ }
+
+ /**
+ * scan all the files in a folder and store them in the cache
+ *
+ * @param string $path
+ * @param SCAN_RECURSIVE/SCAN_SHALLOW $recursive
+ * @return int the size of the scanned folder or -1 if the size is unknown at this stage
+ */
+ public function scan($path, $recursive = self::SCAN_RECURSIVE) {
+ $this->scanFile($path);
+
+ $size = 0;
+ if ($dh = $this->storage->opendir($path)) {
+ while ($file = readdir($dh)) {
+ if ($file !== '.' and $file !== '..') {
+ $child = ($path !== '') ? $path . '/' . $file : $file;
+ $data = $this->scanFile($child);
+ if ($data['mimetype'] === 'httpd/unix-directory') {
+ if ($recursive === self::SCAN_RECURSIVE) {
+ $data['size'] = $this->scan($child, self::SCAN_RECURSIVE);
+ } else {
+ $data['size'] = -1;
+ }
+ }
+ if ($data['size'] === -1) {
+ $size = -1;
+ } elseif ($size !== -1) {
+ $size += $data['size'];
+ }
+ }
+ }
+ }
+ if ($size !== -1) {
+ $this->cache->put($path, array('size' => $size));
+ }
+ return $size;
+ }
+}
diff --git a/lib/files/file.php b/lib/files/file.php
new file mode 100644
index 00000000000..b6432e63458
--- /dev/null
+++ b/lib/files/file.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files;
+
+/**
+ * representation of the location a file or folder is stored
+ */
+
+class File{
+ /**
+ * @var Storage\Storage $storage
+ */
+ private $storage;
+ /**
+ * @var string internalPath
+ */
+ private $internalPath;
+
+ public function __construct(Storage\Storage $storage, $internalPath){
+ $this->storage = $storage;
+ $this->internalPath = $internalPath;
+ }
+
+ public static function resolve($fullPath){
+ $storage = null;
+ $internalPath = '';
+ list($storage, $internalPath) = \OC_Filesystem::resolvePath($fullPath);
+ return new File($storage, $internalPath);
+ }
+
+ /**
+ * get the internal path of the file inside the filestorage
+ * @return string
+ */
+ public function getInternalPath(){
+ return $this->internalPath;
+ }
+
+ /**
+ * get the storage the file is stored in
+ * @return \OC\Files\Storage\Storage
+ */
+ public function getStorage(){
+ return $this->storage;
+ }
+
+ /**
+ * get the id of the storage the file is stored in
+ * @return string
+ */
+ public function getStorageId(){
+ return $this->storage->getId();
+ }
+
+}
diff --git a/lib/filestorage/common.php b/lib/files/storage/common.php
index 351714437c5..3886a041829 100644
--- a/lib/filestorage/common.php
+++ b/lib/files/storage/common.php
@@ -1,40 +1,29 @@
<?php
-
/**
-* ownCloud
-*
-* @author Michael Gapczynski
-* @copyright 2012 Michael Gapczynski GapczynskiM@gmail.com
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage;
/**
* Storage backend class for providing common filesystem operation methods
* which are not storage-backend specific.
*
- * OC_Filestorage_Common is never used directly; it is extended by all other
+ * \OC\Files\Storage\Common is never used directly; it is extended by all other
* storage backends, where its methods may be overridden, and additional
* (backend-specific) methods are defined.
*
- * Some OC_Filestorage_Common methods call functions which are first defined
+ * Some \OC\Files\Storage\Common methods call functions which are first defined
* in classes which extend it, e.g. $this->stat() .
*/
-abstract class OC_Filestorage_Common extends OC_Filestorage {
+abstract class Common extends \OC\Files\Storage\Storage {
public function __construct($parameters) {}
+// abstract public function getId();
// abstract public function mkdir($path);
// abstract public function rmdir($path);
// abstract public function opendir($path);
@@ -65,6 +54,25 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
public function isSharable($path) {
return $this->isReadable($path);
}
+ public function getPermissions($path){
+ $permissions = 0;
+ if($this->isCreatable($path)){
+ $permissions |= \OCP\Share::PERMISSION_CREATE;
+ }
+ if($this->isReadable($path)){
+ $permissions |= \OCP\Share::PERMISSION_READ;
+ }
+ if($this->isUpdatable($path)){
+ $permissions |= \OCP\Share::PERMISSION_UPDATE;
+ }
+ if($this->isDeletable($path)){
+ $permissions |= \OCP\Share::PERMISSION_DELETE;
+ }
+ if($this->isSharable($path)){
+ $permissions |= \OCP\Share::PERMISSION_SHARE;
+ }
+ return $permissions;
+ }
// abstract public function file_exists($path);
public function filectime($path) {
$stat = $this->stat($path);
@@ -104,7 +112,7 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
public function copy($path1,$path2) {
$source=$this->fopen($path1,'r');
$target=$this->fopen($path2,'w');
- $count=OC_Helper::streamCopy($source,$target);
+ $count=\OC_Helper::streamCopy($source,$target);
return $count>0;
}
// abstract public function fopen($path,$mode);
@@ -198,9 +206,9 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
}else{
$extension='';
}
- $tmpFile=OC_Helper::tmpFile($extension);
+ $tmpFile=\OC_Helper::tmpFile($extension);
file_put_contents($tmpFile,$head);
- $mime=OC_Helper::getMimeType($tmpFile);
+ $mime=\OC_Helper::getMimeType($tmpFile);
unlink($tmpFile);
return $mime;
}
@@ -227,13 +235,13 @@ abstract class OC_Filestorage_Common extends OC_Filestorage {
}else{
$extension='';
}
- $tmpFile=OC_Helper::tmpFile($extension);
+ $tmpFile=\OC_Helper::tmpFile($extension);
$target=fopen($tmpFile,'w');
- OC_Helper::streamCopy($source,$target);
+ \OC_Helper::streamCopy($source,$target);
return $tmpFile;
}
public function getLocalFolder($path) {
- $baseDir=OC_Helper::tmpFolder();
+ $baseDir=\OC_Helper::tmpFolder();
$this->addLocalFolder($path,$baseDir);
return $baseDir;
}
diff --git a/lib/filestorage/commontest.php b/lib/files/storage/commontest.php
index b88bb232c36..2b42cfe1156 100644
--- a/lib/filestorage/commontest.php
+++ b/lib/files/storage/commontest.php
@@ -22,20 +22,25 @@
*/
/**
- * test implementation for OC_FileStorage_Common with OC_FileStorage_Local
+ * test implementation for \OC\Files\Storage\Common with \OC\Files\Storage\Local
*/
-class OC_Filestorage_CommonTest extends OC_Filestorage_Common{
+namespace OC\Files\Storage;
+
+class CommonTest extends \OC\Files\Storage\Common{
/**
* underlying local storage used for missing functions
- * @var OC_FileStorage_Local
+ * @var \OC\Files\Storage\Local
*/
private $storage;
public function __construct($params) {
- $this->storage=new OC_Filestorage_Local($params);
+ $this->storage=new \OC\Files\Storage\Local($params);
}
+ public function getId(){
+ return 'test::'.$this->storage->getId();
+ }
public function mkdir($path) {
return $this->storage->mkdir($path);
}
diff --git a/lib/filestorage/local.php b/lib/files/storage/local.php
index 80aa548047c..66ae5542e36 100644
--- a/lib/filestorage/local.php
+++ b/lib/files/storage/local.php
@@ -1,8 +1,17 @@
<?php
/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage;
+
+/**
* for local filestore, we only have to map the paths
*/
-class OC_Filestorage_Local extends OC_Filestorage_Common{
+class Local extends \OC\Files\Storage\Common{
protected $datadir;
public function __construct($arguments) {
$this->datadir=$arguments['datadir'];
@@ -10,6 +19,9 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{
$this->datadir.='/';
}
}
+ public function getId(){
+ return 'local::'.$this->datadir;
+ }
public function mkdir($path) {
return @mkdir($this->datadir.$path);
}
@@ -86,11 +98,11 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{
}
public function rename($path1,$path2) {
if (!$this->isUpdatable($path1)) {
- OC_Log::write('core','unable to rename, file is not writable : '.$path1,OC_Log::ERROR);
+ \OC_Log::write('core','unable to rename, file is not writable : '.$path1,\OC_Log::ERROR);
return false;
}
if(! $this->file_exists($path1)) {
- OC_Log::write('core','unable to rename, file does not exists : '.$path1,OC_Log::ERROR);
+ \OC_Log::write('core','unable to rename, file does not exists : '.$path1,\OC_Log::ERROR);
return false;
}
@@ -129,7 +141,7 @@ class OC_Filestorage_Local extends OC_Filestorage_Common{
public function getMimeType($path) {
if($this->isReadable($path)) {
- return OC_Helper::getMimeType($this->datadir.$path);
+ return \OC_Helper::getMimeType($this->datadir.$path);
}else{
return false;
}
diff --git a/lib/filestorage.php b/lib/files/storage/storage.php
index 5bfd09253d5..f149c61830c 100644
--- a/lib/filestorage.php
+++ b/lib/files/storage/storage.php
@@ -1,30 +1,19 @@
<?php
-
/**
-* ownCloud
-*
-* @author Frank Karlitschek
-* @copyright 2012 Frank Karlitschek frank@owncloud.org
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
-* License as published by the Free Software Foundation; either
-* version 3 of the License, or any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
-*
-* You should have received a copy of the GNU Affero General Public
-* License along with this library. If not, see <http://www.gnu.org/licenses/>.
-*/
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage;
/**
* Provde a common interface to all different storage options
*/
-abstract class OC_Filestorage{
+abstract class Storage{
abstract public function __construct($parameters);
+ abstract public function getId();
abstract public function mkdir($path);
abstract public function rmdir($path);
abstract public function opendir($path);
@@ -38,6 +27,7 @@ abstract class OC_Filestorage{
abstract public function isUpdatable($path);
abstract public function isDeletable($path);
abstract public function isSharable($path);
+ abstract public function getPermissions($path);
abstract public function file_exists($path);
abstract public function filectime($path);
abstract public function filemtime($path);
diff --git a/lib/files/storage/temporary.php b/lib/files/storage/temporary.php
new file mode 100644
index 00000000000..ffc55e27507
--- /dev/null
+++ b/lib/files/storage/temporary.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Files\Storage;
+
+/**
+ * local storage backnd in temporary folder for testing purpores
+ */
+class Temporary extends Local{
+ public function __construct($arguments) {
+ $this->datadir=\OC_Helper::tmpFolder();
+ }
+
+ public function cleanUp() {
+ \OC_Helper::rmdirr($this->datadir);
+ }
+
+ public function __destruct() {
+ $this->cleanUp();
+ }
+}
diff --git a/lib/filestorage/temporary.php b/lib/filestorage/temporary.php
deleted file mode 100644
index 876ba045a63..00000000000
--- a/lib/filestorage/temporary.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * local storage backnd in temporary folder for testing purpores
- */
-class OC_Filestorage_Temporary extends OC_Filestorage_Local{
- public function __construct($arguments) {
- $this->datadir=OC_Helper::tmpFolder();
- }
-
- public function cleanUp() {
- OC_Helper::rmdirr($this->datadir);
- }
-
- public function __destruct() {
- $this->cleanUp();
- }
-}
diff --git a/lib/filesystem.php b/lib/filesystem.php
index 6dbfc6a9bf4..0d24b7203bc 100644
--- a/lib/filesystem.php
+++ b/lib/filesystem.php
@@ -48,7 +48,7 @@ class OC_Filesystem{
static private $mounts=array();
public static $loaded=false;
/**
- * @var OC_Filestorage $defaultInstance
+ * @var \OC\Files\Storage\Storage $defaultInstance
*/
static private $defaultInstance;
@@ -181,7 +181,7 @@ class OC_Filesystem{
/**
* get the storage object for a path
* @param string path
- * @return OC_Filestorage
+ * @return \OC\Files\Storage\Storage
*/
static public function getStorage($path) {
$mountpoint=self::getMountPoint($path);
@@ -194,6 +194,24 @@ class OC_Filesystem{
}
}
+ /**
+ * resolve a path to a storage and internal path
+ * @param string $path
+ * @return array consisting of the storage and the internal path
+ */
+ static public function resolvePath($path){
+ $mountpoint=self::getMountPoint($path);
+ if($mountpoint) {
+ if(!isset(OC_Filesystem::$storages[$mountpoint])) {
+ $mount=OC_Filesystem::$mounts[$mountpoint];
+ OC_Filesystem::$storages[$mountpoint]=OC_Filesystem::createStorage($mount['class'],$mount['arguments']);
+ }
+ $storage = OC_Filesystem::$storages[$mountpoint];
+ $internalPath=substr($path,strlen($mountpoint));
+ return array($storage, $internalPath);
+ }
+ }
+
static public function init($root) {
if(self::$defaultInstance) {
return false;
@@ -276,7 +294,7 @@ class OC_Filesystem{
* create a new storage of a specific type
* @param string type
* @param array arguments
- * @return OC_Filestorage
+ * @return \OC\Files\Storage\Storage
*/
static private function createStorage($class,$arguments) {
if(class_exists($class)) {
@@ -320,9 +338,9 @@ class OC_Filesystem{
}
/**
- * mount an OC_Filestorage in our virtual filesystem
- * @param OC_Filestorage storage
- * @param string mountpoint
+ * mount an \OC\Files\Storage\Storage in our virtual filesystem
+ * @param \OC\Files\Storage\Storage storage
+ * @param string mountpoint
*/
static public function mount($class,$arguments,$mountpoint) {
if($mountpoint[0]!='/') {
diff --git a/lib/filesystemview.php b/lib/filesystemview.php
index 2950ced5f9e..071fc781f12 100644
--- a/lib/filesystemview.php
+++ b/lib/filesystemview.php
@@ -35,7 +35,7 @@
* are triggered correctly.
*
* Filesystem functions are not called directly; they are passed to the correct
- * OC_Filestorage object
+ * \OC\Files\Storage\Storage object
*/
class OC_FilesystemView {
@@ -115,7 +115,7 @@ class OC_FilesystemView {
/**
* get the storage object for a path
* @param string path
- * @return OC_Filestorage
+ * @return \OC\Files\Storage\Storage
*/
public function getStorage($path) {
if (!isset($this->storage_cache[$path])) {
@@ -161,7 +161,7 @@ class OC_FilesystemView {
/**
* the following functions operate with arguments and return values identical
* to those of their PHP built-in equivalents. Mostly they are merely wrappers
- * for OC_Filestorage via basicOperation().
+ * for \OC\Files\Storage\Storage via basicOperation().
*/
public function mkdir($path) {
return $this->basicOperation('mkdir', $path, array('create', 'write'));
@@ -173,7 +173,7 @@ class OC_FilesystemView {
return $this->basicOperation('opendir', $path, array('read'));
}
public function readdir($handle) {
- $fsLocal= new OC_Filestorage_Local( array( 'datadir' => '/' ) );
+ $fsLocal= new \OC\Files\Storage\Local( array( 'datadir' => '/' ) );
return $fsLocal->readdir( $handle );
}
public function is_dir($path) {
@@ -555,7 +555,7 @@ class OC_FilesystemView {
}
/**
- * @brief abstraction layer for basic filesystem functions: wrapper for OC_Filestorage
+ * @brief abstraction layer for basic filesystem functions: wrapper for \OC\Files\Storage\Storage
* @param string $operation
* @param string #path
* @param array (optional) hooks
@@ -564,7 +564,7 @@ class OC_FilesystemView {
*
* This method takes requests for basic filesystem functions (e.g. reading & writing
* files), processes hooks and proxies, sanitises paths, and finally passes them on to
- * OC_Filestorage for delegation to a storage backend for execution
+ * \OC\Files\Storage\Storage for delegation to a storage backend for execution
*/
private function basicOperation($operation, $path, $hooks=array(), $extraParam=null) {
$postFix=(substr($path,-1,1)==='/')?'/':'';
diff --git a/lib/util.php b/lib/util.php
index 6707d67638e..754360c1932 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -34,7 +34,7 @@ class OC_Util {
$CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
//first set up the local "root" storage
if(!self::$rootMounted) {
- OC_Filesystem::mount('OC_Filestorage_Local',array('datadir'=>$CONFIG_DATADIRECTORY),'/');
+ OC_Filesystem::mount('\OC\Files\Storage\Local',array('datadir'=>$CONFIG_DATADIRECTORY),'/');
self::$rootMounted=true;
}
@@ -46,7 +46,7 @@ class OC_Util {
mkdir( $userdirectory, 0755, true );
}
//jail the user into his "home" directory
- OC_Filesystem::mount('OC_Filestorage_Local', array('datadir' => $user_root), $user);
+ OC_Filesystem::mount('\OC\Files\Storage\Local', array('datadir' => $user_root), $user);
OC_Filesystem::init($user_dir);
$quotaProxy=new OC_FileProxy_Quota();
OC_FileProxy::register($quotaProxy);
@@ -81,7 +81,7 @@ class OC_Util {
*/
public static function getVersion() {
// hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4.9.0. This is not visible to the user
- return array(4,87,12);
+ return array(4,87,13);
}
/**
diff --git a/tests/lib/cache/file.php b/tests/lib/cache/file.php
index 00be005d08d..1dd1ff7fa87 100644
--- a/tests/lib/cache/file.php
+++ b/tests/lib/cache/file.php
@@ -39,7 +39,7 @@ class Test_Cache_File extends Test_Cache {
//set up temporary storage
OC_Filesystem::clearMounts();
- OC_Filesystem::mount('OC_Filestorage_Temporary',array(),'/');
+ OC_Filesystem::mount('\OC\Files\Storage\Temporary',array(),'/');
OC_User::clearBackends();
OC_User::useBackend(new OC_User_Dummy());
diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php
new file mode 100644
index 00000000000..8cedadbf19a
--- /dev/null
+++ b/tests/lib/files/cache/cache.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Files\Cache;
+
+class Cache extends \UnitTestCase {
+ /**
+ * @var \OC\Files\Storage\Temporary $storage;
+ */
+ private $storage;
+
+ /**
+ * @var \OC\Files\Cache\Cache $cache
+ */
+ private $cache;
+
+ public function testSimple() {
+ $file1 = 'foo';
+ $file2 = 'foo/bar';
+ $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder');
+ $data2 = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file');
+
+ $this->assertFalse($this->cache->inCache($file1));
+ $this->assertEqual($this->cache->get($file1), null);
+
+ $id1 = $this->cache->put($file1, $data1);
+ $this->assertTrue($this->cache->inCache($file1));
+ $cacheData1 = $this->cache->get($file1);
+ foreach ($data1 as $key => $value) {
+ $this->assertEqual($value, $cacheData1[$key]);
+ }
+ $this->assertEqual($cacheData1['mimepart'], 'foo');
+ $this->assertEqual($cacheData1['fileid'], $id1);
+ $this->assertEqual($id1, $this->cache->getId($file1));
+
+ $this->assertFalse($this->cache->inCache($file2));
+ $id2 = $this->cache->put($file2, $data2);
+ $this->assertTrue($this->cache->inCache($file2));
+ $cacheData2 = $this->cache->get($file2);
+ foreach ($data2 as $key => $value) {
+ $this->assertEqual($value, $cacheData2[$key]);
+ }
+ $this->assertEqual($cacheData1['fileid'], $cacheData2['parent']);
+ $this->assertEqual($cacheData2['fileid'], $id2);
+ $this->assertEqual($id2, $this->cache->getId($file2));
+ $this->assertEqual($id1, $this->cache->getParentId($file2));
+
+ $newSize = 1050;
+ $newId2 = $this->cache->put($file2, array('size' => $newSize));
+ $cacheData2 = $this->cache->get($file2);
+ $this->assertEqual($newId2, $id2);
+ $this->assertEqual($cacheData2['size'], $newSize);
+ $this->assertEqual($cacheData1, $this->cache->get($file1));
+
+ $this->cache->remove($file2);
+ $this->assertFalse($this->cache->inCache($file2));
+ $this->assertEqual($this->cache->get($file2), null);
+ $this->assertTrue($this->cache->inCache($file1));
+
+ $this->assertEqual($cacheData1, $this->cache->get($id1));
+ }
+
+ public function testPartial() {
+ $file1 = 'foo';
+
+ $this->cache->put($file1, array('size' => 10));
+ $this->assertEqual(array('size' => 10), $this->cache->get($file1));
+
+ $this->cache->put($file1, array('mtime' => 15));
+ $this->assertEqual(array('size' => 10, 'mtime' => 15), $this->cache->get($file1));
+
+ $this->cache->put($file1, array('size' => 12));
+ $this->assertEqual(array('size' => 12, 'mtime' => 15), $this->cache->get($file1));
+ }
+
+ public function testFolder() {
+ $file1 = 'folder';
+ $file2 = 'folder/bar';
+ $file3 = 'folder/foo';
+ $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder');
+ $fileData = array();
+ $fileData['bar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file');
+ $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file');
+
+ $this->cache->put($file1, $data1);
+ $this->cache->put($file2, $fileData['bar']);
+ $this->cache->put($file3, $fileData['foo']);
+
+ $content = $this->cache->getFolderContents($file1);
+ $this->assertEqual(count($content), 2);
+ foreach ($content as $cachedData) {
+ $data = $fileData[$cachedData['name']];
+ foreach ($data as $name => $value) {
+ $this->assertEqual($value, $cachedData[$name]);
+ }
+ }
+ }
+
+ public function tearDown() {
+ $this->cache->clear();
+ }
+
+ public function setUp() {
+ $this->storage = new \OC\Files\Storage\Temporary(array());
+ $this->cache = new \OC\Files\Cache\Cache($this->storage);
+ }
+}
diff --git a/tests/lib/files/cache/scanner.php b/tests/lib/files/cache/scanner.php
new file mode 100644
index 00000000000..41286e69d3e
--- /dev/null
+++ b/tests/lib/files/cache/scanner.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Files\Cache;
+
+class Scanner extends \UnitTestCase {
+ /**
+ * @var \OC\Files\Storage\Storage $storage
+ */
+ private $storage;
+
+ /**
+ * @var \OC\Files\Cache\Scanner $scanner
+ */
+ private $scanner;
+
+ /**
+ * @var \OC\Files\Cache\Cache $cache
+ */
+ private $cache;
+
+ function testFile() {
+ $data = "dummy file data\n";
+ $this->storage->file_put_contents('foo.txt', $data);
+ $this->scanner->scanFile('foo.txt');
+
+ $this->assertEqual($this->cache->inCache('foo.txt'), true);
+ $cachedData = $this->cache->get('foo.txt');
+ $this->assertEqual($cachedData['size'], strlen($data));
+ $this->assertEqual($cachedData['mimetype'], 'text/plain');
+ $this->assertNotEqual($cachedData['parent'], -1); //parent folders should be scanned automatically
+
+ $data = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png');
+ $this->storage->file_put_contents('foo.png', $data);
+ $this->scanner->scanFile('foo.png');
+
+ $this->assertEqual($this->cache->inCache('foo.png'), true);
+ $cachedData = $this->cache->get('foo.png');
+ $this->assertEqual($cachedData['size'], strlen($data));
+ $this->assertEqual($cachedData['mimetype'], 'image/png');
+ }
+
+ private function fillTestFolders() {
+ $textData = "dummy file data\n";
+ $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png');
+ $this->storage->mkdir('folder');
+ $this->storage->file_put_contents('foo.txt', $textData);
+ $this->storage->file_put_contents('foo.png', $imgData);
+ $this->storage->file_put_contents('folder/bar.txt', $textData);
+ }
+
+ function testFolder() {
+ $this->fillTestFolders();
+
+ $this->scanner->scan('');
+ $this->assertEqual($this->cache->inCache(''), true);
+ $this->assertEqual($this->cache->inCache('foo.txt'), true);
+ $this->assertEqual($this->cache->inCache('foo.png'), true);
+ $this->assertEqual($this->cache->inCache('folder'), true);
+ $this->assertEqual($this->cache->inCache('folder/bar.txt'), true);
+
+ $cachedDataText = $this->cache->get('foo.txt');
+ $cachedDataText2 = $this->cache->get('foo.txt');
+ $cachedDataImage = $this->cache->get('foo.png');
+ $cachedDataFolder = $this->cache->get('');
+ $cachedDataFolder2 = $this->cache->get('folder');
+
+ $this->assertEqual($cachedDataImage['parent'], $cachedDataText['parent']);
+ $this->assertEqual($cachedDataFolder['fileid'], $cachedDataImage['parent']);
+ $this->assertEqual($cachedDataFolder['size'], $cachedDataImage['size'] + $cachedDataText['size'] + $cachedDataText2['size']);
+ $this->assertEqual($cachedDataFolder2['size'], $cachedDataText2['size']);
+ }
+
+ function testShallow() {
+ $this->fillTestFolders();
+
+ $this->scanner->scan('', \OC\Files\Cache\Scanner::SCAN_SHALLOW);
+ $this->assertEqual($this->cache->inCache(''), true);
+ $this->assertEqual($this->cache->inCache('foo.txt'), true);
+ $this->assertEqual($this->cache->inCache('foo.png'), true);
+ $this->assertEqual($this->cache->inCache('folder'), true);
+ $this->assertEqual($this->cache->inCache('folder/bar.txt'), false);
+
+ $cachedDataFolder = $this->cache->get('');
+ $cachedDataFolder2 = $this->cache->get('folder');
+
+ $this->assertEqual($cachedDataFolder['size'], -1);
+ $this->assertEqual($cachedDataFolder2['size'], -1);
+ }
+
+ function setUp() {
+ $this->storage = new \OC\Files\Storage\Temporary(array());
+ $this->scanner = new \OC\Files\Cache\Scanner($this->storage);
+ $this->cache = new \OC\Files\Cache\Cache($this->storage);
+ }
+
+ function tearDown() {
+ $this->cache->clear();
+ }
+}
diff --git a/tests/lib/filestorage/commontest.php b/tests/lib/files/storage/commontest.php
index 89e83589e5d..2e3808e2d92 100644
--- a/tests/lib/filestorage/commontest.php
+++ b/tests/lib/files/storage/commontest.php
@@ -20,7 +20,9 @@
*
*/
-class Test_Filestorage_CommonTest extends Test_FileStorage {
+namespace Test\Files\Storage;
+
+class CommonTest extends Storage {
/**
* @var string tmpDir
*/
@@ -30,12 +32,12 @@ class Test_Filestorage_CommonTest extends Test_FileStorage {
if(!file_exists($this->tmpDir)) {
mkdir($this->tmpDir);
}
- $this->instance=new OC_Filestorage_CommonTest(array('datadir'=>$this->tmpDir));
+ $this->instance=new \OC\Files\Storage\CommonTest(array('datadir'=>$this->tmpDir));
}
public function tearDown() {
- OC_Helper::rmdirr($this->tmpDir);
+ \OC_Helper::rmdirr($this->tmpDir);
}
}
-?> \ No newline at end of file
+?>
diff --git a/tests/lib/filestorage/local.php b/tests/lib/files/storage/local.php
index f68fb69b97f..6672368e676 100644
--- a/tests/lib/filestorage/local.php
+++ b/tests/lib/files/storage/local.php
@@ -20,19 +20,19 @@
*
*/
-class Test_Filestorage_Local extends Test_FileStorage {
+namespace Test\Files\Storage;
+
+class Local extends Storage {
/**
* @var string tmpDir
*/
private $tmpDir;
public function setUp() {
- $this->tmpDir=OC_Helper::tmpFolder();
- $this->instance=new OC_Filestorage_Local(array('datadir'=>$this->tmpDir));
+ $this->tmpDir=\OC_Helper::tmpFolder();
+ $this->instance=new \OC\Files\Storage\Local(array('datadir'=>$this->tmpDir));
}
public function tearDown() {
- OC_Helper::rmdirr($this->tmpDir);
+ \OC_Helper::rmdirr($this->tmpDir);
}
}
-
-?> \ No newline at end of file
diff --git a/tests/lib/filestorage.php b/tests/lib/files/storage/storage.php
index ae780bee85a..8ee08fe88ce 100644
--- a/tests/lib/filestorage.php
+++ b/tests/lib/files/storage/storage.php
@@ -20,9 +20,11 @@
*
*/
-abstract class Test_FileStorage extends UnitTestCase {
+namespace Test\Files\Storage;
+
+abstract class Storage extends \UnitTestCase {
/**
- * @var OC_Filestorage instance
+ * @var \OC\Files\Storage\Storage instance
*/
protected $instance;
@@ -83,7 +85,7 @@ abstract class Test_FileStorage extends UnitTestCase {
* test the various uses of file_get_contents and file_put_contents
*/
public function testGetPutContents() {
- $sourceFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $sourceFile=\OC::$SERVERROOT.'/tests/data/lorem.txt';
$sourceText=file_get_contents($sourceFile);
//fill a file with string data
@@ -103,21 +105,21 @@ abstract class Test_FileStorage extends UnitTestCase {
$this->assertEqual('httpd/unix-directory',$this->instance->getMimeType('/'));
$this->assertEqual(false,$this->instance->getMimeType('/non/existing/file'));
- $textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $textFile=\OC::$SERVERROOT.'/tests/data/lorem.txt';
$this->instance->file_put_contents('/lorem.txt',file_get_contents($textFile,'r'));
$this->assertEqual('text/plain',$this->instance->getMimeType('/lorem.txt'));
- $pngFile=OC::$SERVERROOT.'/tests/data/logo-wide.png';
+ $pngFile=\OC::$SERVERROOT.'/tests/data/logo-wide.png';
$this->instance->file_put_contents('/logo-wide.png',file_get_contents($pngFile,'r'));
$this->assertEqual('image/png',$this->instance->getMimeType('/logo-wide.png'));
- $svgFile=OC::$SERVERROOT.'/tests/data/logo-wide.svg';
+ $svgFile=\OC::$SERVERROOT.'/tests/data/logo-wide.svg';
$this->instance->file_put_contents('/logo-wide.svg',file_get_contents($svgFile,'r'));
$this->assertEqual('image/svg+xml',$this->instance->getMimeType('/logo-wide.svg'));
}
public function testCopyAndMove() {
- $textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $textFile=\OC::$SERVERROOT.'/tests/data/lorem.txt';
$this->instance->file_put_contents('/source.txt',file_get_contents($textFile));
$this->instance->copy('/source.txt','/target.txt');
$this->assertTrue($this->instance->file_exists('/target.txt'));
@@ -130,7 +132,7 @@ abstract class Test_FileStorage extends UnitTestCase {
}
public function testLocal() {
- $textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $textFile=\OC::$SERVERROOT.'/tests/data/lorem.txt';
$this->instance->file_put_contents('/lorem.txt',file_get_contents($textFile));
$localFile=$this->instance->getLocalFile('/lorem.txt');
$this->assertTrue(file_exists($localFile));
@@ -151,7 +153,7 @@ abstract class Test_FileStorage extends UnitTestCase {
}
public function testStat() {
- $textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $textFile=\OC::$SERVERROOT.'/tests/data/lorem.txt';
$ctimeStart=time();
$this->instance->file_put_contents('/lorem.txt',file_get_contents($textFile));
$this->assertTrue($this->instance->isReadable('/lorem.txt'));
@@ -200,7 +202,6 @@ abstract class Test_FileStorage extends UnitTestCase {
fclose($fh);
clearstatcache();
$mtimeEnd=time();
- $originalCTime=$cTime;
$mTime=$this->instance->filemtime('/lorem.txt');
$this->assertTrue(($mtimeStart-1)<=$mTime);
$this->assertTrue($mTime<=($mtimeEnd+1));
@@ -210,11 +211,11 @@ abstract class Test_FileStorage extends UnitTestCase {
}
public function testSearch() {
- $textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
+ $textFile=\OC::$SERVERROOT.'/tests/data/lorem.txt';
$this->instance->file_put_contents('/lorem.txt',file_get_contents($textFile,'r'));
- $pngFile=OC::$SERVERROOT.'/tests/data/logo-wide.png';
+ $pngFile=\OC::$SERVERROOT.'/tests/data/logo-wide.png';
$this->instance->file_put_contents('/logo-wide.png',file_get_contents($pngFile,'r'));
- $svgFile=OC::$SERVERROOT.'/tests/data/logo-wide.svg';
+ $svgFile=\OC::$SERVERROOT.'/tests/data/logo-wide.svg';
$this->instance->file_put_contents('/logo-wide.svg',file_get_contents($svgFile,'r'));
$result=$this->instance->search('logo');
$this->assertEqual(2,count($result));
diff --git a/tests/lib/filesystem.php b/tests/lib/filesystem.php
index e22b3f1c0d8..8fc3ce641da 100644
--- a/tests/lib/filesystem.php
+++ b/tests/lib/filesystem.php
@@ -46,18 +46,18 @@ class Test_Filesystem extends UnitTestCase {
}
public function testMount() {
- OC_Filesystem::mount('OC_Filestorage_Local', self::getStorageData(), '/');
- $this->assertEqual('/', OC_Filesystem::getMountPoint('/'));
- $this->assertEqual('/', OC_Filesystem::getMountPoint('/some/folder'));
- $this->assertEqual('', OC_Filesystem::getInternalPath('/'));
- $this->assertEqual('some/folder', OC_Filesystem::getInternalPath('/some/folder'));
+ OC_Filesystem::mount('\OC\Files\Storage\Local',self::getStorageData(),'/');
+ $this->assertEqual('/',OC_Filesystem::getMountPoint('/'));
+ $this->assertEqual('/',OC_Filesystem::getMountPoint('/some/folder'));
+ $this->assertEqual('',OC_Filesystem::getInternalPath('/'));
+ $this->assertEqual('some/folder',OC_Filesystem::getInternalPath('/some/folder'));
- OC_Filesystem::mount('OC_Filestorage_Local', self::getStorageData(), '/some');
- $this->assertEqual('/', OC_Filesystem::getMountPoint('/'));
- $this->assertEqual('/some/', OC_Filesystem::getMountPoint('/some/folder'));
- $this->assertEqual('/some/', OC_Filesystem::getMountPoint('/some/'));
- $this->assertEqual('/', OC_Filesystem::getMountPoint('/some'));
- $this->assertEqual('folder', OC_Filesystem::getInternalPath('/some/folder'));
+ OC_Filesystem::mount('\OC\Files\Storage\Local',self::getStorageData(),'/some');
+ $this->assertEqual('/',OC_Filesystem::getMountPoint('/'));
+ $this->assertEqual('/some/',OC_Filesystem::getMountPoint('/some/folder'));
+ $this->assertEqual('/some/',OC_Filesystem::getMountPoint('/some/'));
+ $this->assertEqual('/',OC_Filesystem::getMountPoint('/some'));
+ $this->assertEqual('folder',OC_Filesystem::getInternalPath('/some/folder'));
}
public function testNormalize() {
@@ -82,7 +82,7 @@ class Test_Filesystem extends UnitTestCase {
OC_Hook::clear('OC_Filesystem');
OC_Hook::connect('OC_Filesystem', 'post_write', $this, 'dummyHook');
- OC_Filesystem::mount('OC_Filestorage_Temporary', array(), '/');
+ OC_Filesystem::mount('OC\Files\Storage\Temporary', array(), '/');
$rootView=new OC_FilesystemView('');
$rootView->mkdir('/'.$user);