|
|
|
|
@ -111,4 +111,87 @@ class Swift extends \Test\Files\Storage\Storage { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @dataProvider copyAndMoveProvider |
|
|
|
|
*/ |
|
|
|
|
public function testMove($source, $target) { |
|
|
|
|
$this->initSourceAndTarget($source); |
|
|
|
|
$sourceId = $this->instance->getCache()->getId(ltrim('/',$source)); |
|
|
|
|
$this->assertNotEquals(-1, $sourceId); |
|
|
|
|
|
|
|
|
|
$this->instance->rename($source, $target); |
|
|
|
|
|
|
|
|
|
$this->assertTrue($this->instance->file_exists($target), $target.' was not created'); |
|
|
|
|
$this->assertFalse($this->instance->file_exists($source), $source.' still exists'); |
|
|
|
|
$this->assertSameAsLorem($target); |
|
|
|
|
|
|
|
|
|
$targetId = $this->instance->getCache()->getId(ltrim('/',$target)); |
|
|
|
|
$this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testRenameDirectory() { |
|
|
|
|
$this->instance->mkdir('source'); |
|
|
|
|
$this->instance->file_put_contents('source/test1.txt', 'foo'); |
|
|
|
|
$this->instance->file_put_contents('source/test2.txt', 'qwerty'); |
|
|
|
|
$this->instance->mkdir('source/subfolder'); |
|
|
|
|
$this->instance->file_put_contents('source/subfolder/test.txt', 'bar'); |
|
|
|
|
$sourceId = $this->instance->getCache()->getId('source'); |
|
|
|
|
$this->assertNotEquals(-1, $sourceId); |
|
|
|
|
$this->instance->rename('source', 'target'); |
|
|
|
|
|
|
|
|
|
$this->assertFalse($this->instance->file_exists('source')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('source/test1.txt')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('source/test2.txt')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('source/subfolder')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('source/subfolder/test.txt')); |
|
|
|
|
|
|
|
|
|
$this->assertTrue($this->instance->file_exists('target')); |
|
|
|
|
$this->assertTrue($this->instance->file_exists('target/test1.txt')); |
|
|
|
|
$this->assertTrue($this->instance->file_exists('target/test2.txt')); |
|
|
|
|
$this->assertTrue($this->instance->file_exists('target/subfolder')); |
|
|
|
|
$this->assertTrue($this->instance->file_exists('target/subfolder/test.txt')); |
|
|
|
|
|
|
|
|
|
$this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt')); |
|
|
|
|
$this->assertEquals('qwerty', $this->instance->file_get_contents('target/test2.txt')); |
|
|
|
|
$this->assertEquals('bar', $this->instance->file_get_contents('target/subfolder/test.txt')); |
|
|
|
|
$targetId = $this->instance->getCache()->getId('target'); |
|
|
|
|
$this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testRenameOverWriteDirectory() { |
|
|
|
|
$this->instance->mkdir('source'); |
|
|
|
|
$this->instance->file_put_contents('source/test1.txt', 'foo'); |
|
|
|
|
$sourceId = $this->instance->getCache()->getId('source'); |
|
|
|
|
$this->assertNotEquals(-1, $sourceId); |
|
|
|
|
|
|
|
|
|
$this->instance->mkdir('target'); |
|
|
|
|
$this->instance->file_put_contents('target/test1.txt', 'bar'); |
|
|
|
|
$this->instance->file_put_contents('target/test2.txt', 'bar'); |
|
|
|
|
|
|
|
|
|
$this->instance->rename('source', 'target'); |
|
|
|
|
|
|
|
|
|
$this->assertFalse($this->instance->file_exists('source')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('source/test1.txt')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('target/test2.txt')); |
|
|
|
|
$this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt')); |
|
|
|
|
$targetId = $this->instance->getCache()->getId('target'); |
|
|
|
|
$this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testRenameOverWriteDirectoryOverFile() { |
|
|
|
|
$this->instance->mkdir('source'); |
|
|
|
|
$this->instance->file_put_contents('source/test1.txt', 'foo'); |
|
|
|
|
$sourceId = $this->instance->getCache()->getId('source'); |
|
|
|
|
$this->assertNotEquals(-1, $sourceId); |
|
|
|
|
|
|
|
|
|
$this->instance->file_put_contents('target', 'bar'); |
|
|
|
|
|
|
|
|
|
$this->instance->rename('source', 'target'); |
|
|
|
|
|
|
|
|
|
$this->assertFalse($this->instance->file_exists('source')); |
|
|
|
|
$this->assertFalse($this->instance->file_exists('source/test1.txt')); |
|
|
|
|
$this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt')); |
|
|
|
|
$targetId = $this->instance->getCache()->getId('target'); |
|
|
|
|
$this->assertSame($sourceId, $targetId, 'fileid must be stable on move or shares will break'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|