|
|
|
|
@ -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');
|
|
|
|
|
|
|
|
|
|
|