From 0fca2f8f319d77b056516216ade0a931d21a2a69 Mon Sep 17 00:00:00 2001
From: Florin Peter <github@florin-peter.de>
Date: Thu, 16 May 2013 00:36:40 +0200
Subject: [PATCH] added tests for put content, get content, touch and fopen

---
 apps/files_encryption/tests/crypt.php      | 75 +++++++++++++++++++++-
 apps/files_encryption/tests/keymanager.php |  2 +-
 apps/files_encryption/tests/util.php       |  2 +-
 3 files changed, 76 insertions(+), 3 deletions(-)

diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php
index 6168f69415..3916b0e15e 100755
--- a/apps/files_encryption/tests/crypt.php
+++ b/apps/files_encryption/tests/crypt.php
@@ -77,7 +77,7 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase {
 	}
 	
 	function tearDown() {
-
+		\OC_FileProxy::clearProxies();
     }
 
     function testGenerateKey() {
@@ -756,6 +756,79 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase {
 		$view = new \OC\Files\View('/' . $this->userId . '/files');
 		$view->unlink( $filename );
 	}
+
+	function testViewFilePutAndGetContents() {
+
+		$filename = '/tmp-'.time();
+		$view = new \OC\Files\View('/' . $this->userId . '/files');
+
+		// Save short data as encrypted file using stream wrapper
+		$cryptedFile = $view->file_put_contents( $filename, $this->dataShort );
+
+		// Test that data was successfully written
+		$this->assertTrue( is_int( $cryptedFile ) );
+
+		// Get file decrypted contents
+		$decrypt = $view->file_get_contents( $filename );
+
+		$this->assertEquals( $this->dataShort, $decrypt );
+
+		// Save long data as encrypted file using stream wrapper
+		$cryptedFileLong = $view->file_put_contents( $filename, $this->dataLong );
+
+		// Test that data was successfully written
+		$this->assertTrue( is_int( $cryptedFileLong ) );
+
+		// Get file decrypted contents
+		$decryptLong = $view->file_get_contents( $filename );
+
+		$this->assertEquals( $this->dataLong, $decryptLong );
+
+		// tear down
+		$view->unlink( $filename );
+	}
+
+	function testTouchFile() {
+		$filename = '/tmp-'.time();
+		$view = new \OC\Files\View('/' . $this->userId . '/files');
+
+		// Save short data as encrypted file using stream wrapper
+		$cryptedFile = $view->file_put_contents( $filename, $this->dataShort );
+
+		// Test that data was successfully written
+		$this->assertTrue( is_int( $cryptedFile ) );
+
+		$view->touch($filename);
+
+		// Get file decrypted contents
+		$decrypt = $view->file_get_contents( $filename );
+
+		$this->assertEquals( $this->dataShort, $decrypt );
+
+		// tear down
+		$view->unlink( $filename );
+	}
+
+	function testFopenFile() {
+		$filename = '/tmp-'.time();
+		$view = new \OC\Files\View('/' . $this->userId . '/files');
+
+		// Save short data as encrypted file using stream wrapper
+		$cryptedFile = $view->file_put_contents( $filename, $this->dataShort );
+
+		// Test that data was successfully written
+		$this->assertTrue( is_int( $cryptedFile ) );
+
+		$handle = $view->fopen($filename, 'r');
+
+		// Get file decrypted contents
+		$decrypt = fgets($handle);
+
+		$this->assertEquals( $this->dataShort, $decrypt );
+
+		// tear down
+		$view->unlink( $filename );
+	}
 // 	function testEncryption(){
 // 	
 // 		$key=uniqid();
diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php
index d3078fdac9..28452d779c 100644
--- a/apps/files_encryption/tests/keymanager.php
+++ b/apps/files_encryption/tests/keymanager.php
@@ -71,7 +71,7 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase {
 	function tearDown(){
 	
 		\OC_FileProxy::$enabled = true;
-		
+		\OC_FileProxy::clearProxies();
 	}
 
 	function testGetPrivateKey() {
diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php
index 1e4e39cc47..2d637e2053 100755
--- a/apps/files_encryption/tests/util.php
+++ b/apps/files_encryption/tests/util.php
@@ -80,7 +80,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase {
 	function tearDown(){
 	
 		m::close();
-	
+		\OC_FileProxy::clearProxies();
 	}
 	
 	/**
-- 
GitLab