add unit test for #8325
This commit is contained in:
parent
4502eaf9f8
commit
76c1095c25
|
@ -161,26 +161,89 @@ abstract class Storage extends \PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals('image/svg+xml', $this->instance->getMimeType('/logo-wide.svg'));
|
||||
}
|
||||
|
||||
public function testCopyAndMove() {
|
||||
|
||||
public function copyAndMoveProvider() {
|
||||
return array(
|
||||
array('/source.txt', '/target.txt'),
|
||||
array('/source.txt', '/target with space.txt'),
|
||||
array('/source with space.txt', '/target.txt'),
|
||||
array('/source with space.txt', '/target with space.txt'),
|
||||
array('/source.txt', '/tärgét.txt'),
|
||||
array('/sòurcē.txt', '/target.txt'),
|
||||
array('/sòurcē.txt', '/tärgét.txt'),
|
||||
);
|
||||
}
|
||||
|
||||
public function initSourceAndTarget ($source, $target = null) {
|
||||
$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'));
|
||||
$this->assertEquals($this->instance->file_get_contents('/source.txt'), $this->instance->file_get_contents('/target.txt'));
|
||||
$this->instance->file_put_contents($source, file_get_contents($textFile));
|
||||
if ($target) {
|
||||
$testContents = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$this->instance->file_put_contents($target, $testContents);
|
||||
}
|
||||
}
|
||||
|
||||
public function assertSameAsLorem ($file) {
|
||||
$textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt';
|
||||
$this->assertEquals(
|
||||
file_get_contents($textFile),
|
||||
$this->instance->file_get_contents($file),
|
||||
'Expected '.$file.' to be a copy of '.$textFile
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider copyAndMoveProvider
|
||||
*/
|
||||
public function testCopy($source, $target) {
|
||||
$this->initSourceAndTarget($source);
|
||||
|
||||
$this->instance->copy($source, $target);
|
||||
|
||||
$this->assertTrue($this->instance->file_exists($target), $target.' was not created');
|
||||
$this->assertSameAsLorem($target);
|
||||
$this->assertTrue($this->instance->file_exists($source), $source.' was deleted');
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider copyAndMoveProvider
|
||||
*/
|
||||
public function testMove($source, $target) {
|
||||
$this->initSourceAndTarget($source);
|
||||
|
||||
$this->instance->rename($source, $target);
|
||||
|
||||
$this->instance->rename('/source.txt', '/target2.txt');
|
||||
$this->wait();
|
||||
$this->assertTrue($this->instance->file_exists('/target2.txt'));
|
||||
$this->assertFalse($this->instance->file_exists('/source.txt'));
|
||||
$this->assertEquals(file_get_contents($textFile), $this->instance->file_get_contents('/target2.txt'));
|
||||
$this->assertTrue($this->instance->file_exists($target), $target.' was not created');
|
||||
$this->assertFalse($this->instance->file_exists($source), $source.' still exists');
|
||||
$this->assertSameAsLorem($target);
|
||||
}
|
||||
|
||||
// move to overwrite
|
||||
$testContents = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$this->instance->file_put_contents('/target3.txt', $testContents);
|
||||
$this->instance->rename('/target2.txt', '/target3.txt');
|
||||
$this->assertTrue($this->instance->file_exists('/target3.txt'));
|
||||
$this->assertFalse($this->instance->file_exists('/target2.txt'));
|
||||
$this->assertEquals(file_get_contents($textFile), $this->instance->file_get_contents('/target3.txt'));
|
||||
/**
|
||||
* @dataProvider copyAndMoveProvider
|
||||
*/
|
||||
public function testCopyOverwrite($source, $target) {
|
||||
$this->initSourceAndTarget($source,$target);
|
||||
|
||||
$this->instance->copy($source, $target);
|
||||
|
||||
$this->assertTrue($this->instance->file_exists($target), $target.' was not created');
|
||||
$this->assertTrue($this->instance->file_exists($source), $source.' was deleted');
|
||||
$this->assertSameAsLorem($target);
|
||||
$this->assertSameAsLorem($source);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider copyAndMoveProvider
|
||||
*/
|
||||
public function testMoveOverwrite($source, $target) {
|
||||
$this->initSourceAndTarget($source, $target);
|
||||
|
||||
$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);
|
||||
}
|
||||
|
||||
public function testLocal() {
|
||||
|
|
Loading…
Reference in New Issue