[Pkg-owncloud-commits] [owncloud] 112/121: add unit test for #8325

David Prévot taffit at moszumanska.debian.org
Thu Aug 21 16:44:42 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 9caff0be96eb3ab1eb788476f7f3ff6591225922
Author: Jörn Friedrich Dreyer <jfd at butonic.de>
Date:   Thu Aug 14 15:46:14 2014 +0200

    add unit test for #8325
---
 tests/lib/files/storage/storage.php | 97 ++++++++++++++++++++++++++++++-------
 1 file changed, 80 insertions(+), 17 deletions(-)

diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php
index dd73491..88fbdd4 100644
--- a/tests/lib/files/storage/storage.php
+++ b/tests/lib/files/storage/storage.php
@@ -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, 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->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->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'));
-
-		// 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'));
+		$this->assertTrue($this->instance->file_exists($target), $target.' was not created');
+		$this->assertFalse($this->instance->file_exists($source), $source.' still exists');
+		$this->assertSameAsLorem($target);
+	}
+
+	/**
+	 * @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() {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list