|
|
|
|
@ -8,6 +8,7 @@ |
|
|
|
|
namespace Test\Files; |
|
|
|
|
|
|
|
|
|
use OC\Files\Cache\Watcher; |
|
|
|
|
use OC\Files\Storage\Common; |
|
|
|
|
use OC\Files\Mount\MountPoint; |
|
|
|
|
use OC\Files\Storage\Temporary; |
|
|
|
|
|
|
|
|
|
@ -17,6 +18,26 @@ class TemporaryNoTouch extends \OC\Files\Storage\Temporary { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class TemporaryNoCross extends \OC\Files\Storage\Temporary { |
|
|
|
|
public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { |
|
|
|
|
return Common::copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath) { |
|
|
|
|
return Common::moveFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class TemporaryNoLocal extends \OC\Files\Storage\Temporary { |
|
|
|
|
public function instanceOfStorage($className) { |
|
|
|
|
if($className === '\OC\Files\Storage\Local') { |
|
|
|
|
return false; |
|
|
|
|
} else { |
|
|
|
|
return parent::instanceOfStorage($className); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class View extends \Test\TestCase { |
|
|
|
|
/** |
|
|
|
|
* @var \OC\Files\Storage\Storage[] $storages |
|
|
|
|
@ -291,9 +312,31 @@ class View extends \Test\TestCase { |
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testCopyBetweenStorages() { |
|
|
|
|
function testCopyBetweenStorageNoCross() { |
|
|
|
|
$storage1 = $this->getTestStorage(true, '\Test\Files\TemporaryNoCross'); |
|
|
|
|
$storage2 = $this->getTestStorage(true, '\Test\Files\TemporaryNoCross'); |
|
|
|
|
$this->copyBetweenStorages($storage1, $storage2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testCopyBetweenStorageCross() { |
|
|
|
|
$storage1 = $this->getTestStorage(); |
|
|
|
|
$storage2 = $this->getTestStorage(); |
|
|
|
|
$this->copyBetweenStorages($storage1, $storage2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testCopyBetweenStorageCrossNonLocal() { |
|
|
|
|
$storage1 = $this->getTestStorage(true, '\Test\Files\TemporaryNoLocal'); |
|
|
|
|
$storage2 = $this->getTestStorage(true, '\Test\Files\TemporaryNoLocal'); |
|
|
|
|
$this->copyBetweenStorages($storage1, $storage2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function copyBetweenStorages($storage1, $storage2) { |
|
|
|
|
\OC\Files\Filesystem::mount($storage1, array(), '/'); |
|
|
|
|
\OC\Files\Filesystem::mount($storage2, array(), '/substorage'); |
|
|
|
|
|
|
|
|
|
@ -315,9 +358,31 @@ class View extends \Test\TestCase { |
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testMoveBetweenStorages() { |
|
|
|
|
function testMoveBetweenStorageNoCross() { |
|
|
|
|
$storage1 = $this->getTestStorage(true, '\Test\Files\TemporaryNoCross'); |
|
|
|
|
$storage2 = $this->getTestStorage(true, '\Test\Files\TemporaryNoCross'); |
|
|
|
|
$this->moveBetweenStorages($storage1, $storage2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testMoveBetweenStorageCross() { |
|
|
|
|
$storage1 = $this->getTestStorage(); |
|
|
|
|
$storage2 = $this->getTestStorage(); |
|
|
|
|
$this->moveBetweenStorages($storage1, $storage2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
*/ |
|
|
|
|
function testMoveBetweenStorageCrossNonLocal() { |
|
|
|
|
$storage1 = $this->getTestStorage(true, '\Test\Files\TemporaryNoLocal'); |
|
|
|
|
$storage2 = $this->getTestStorage(true, '\Test\Files\TemporaryNoLocal'); |
|
|
|
|
$this->moveBetweenStorages($storage1, $storage2); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function moveBetweenStorages($storage1, $storage2) { |
|
|
|
|
\OC\Files\Filesystem::mount($storage1, array(), '/'); |
|
|
|
|
\OC\Files\Filesystem::mount($storage2, array(), '/substorage'); |
|
|
|
|
|
|
|
|
|
|