]> source.dussan.org Git - nextcloud-server.git/commitdiff
improved tests and include helper
authorFlorin Peter <github@florin-peter.de>
Thu, 9 May 2013 17:37:26 +0000 (19:37 +0200)
committerFlorin Peter <github@florin-peter.de>
Thu, 9 May 2013 17:37:26 +0000 (19:37 +0200)
apps/files_encryption/tests/share.php

index eba5dd5195a203326221f23e423baa9e426b64ca..bfe34478f781e9094ad625d7969f7814d429e94c 100755 (executable)
@@ -1,13 +1,25 @@
 <?php
 /**
- * Copyright (c) 2012 Sam Tuke <samtuke@owncloud.com>, and
- * Robin Appelman <icewind@owncloud.com>
- * This file is licensed under the Affero General Public License version 3 or
- * later.
- * See the COPYING-README file.
+ * ownCloud
+ *
+ * @author Florin Peter
+ * @copyright 2013 Florin Peter <owncloud@florin-peter.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+ *
  */
 
-//require_once "PHPUnit/Framework/TestCase.php";
 require_once realpath( dirname(__FILE__).'/../../../3rdparty/Crypt_Blowfish/Blowfish.php' );
 require_once realpath( dirname(__FILE__).'/../../../lib/base.php' );
 require_once realpath( dirname(__FILE__).'/../lib/crypt.php' );
@@ -15,21 +27,11 @@ require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' );
 require_once realpath( dirname(__FILE__).'/../lib/proxy.php' );
 require_once realpath( dirname(__FILE__).'/../lib/stream.php' );
 require_once realpath( dirname(__FILE__).'/../lib/util.php' );
+require_once realpath( dirname(__FILE__).'/../lib/helper.php' );
 require_once realpath( dirname(__FILE__).'/../appinfo/app.php' );
 
 use OCA\Encryption;
 
-// This has to go here because otherwise session errors arise, and the private 
-// encryption key needs to be saved in the session
-
-/**
- * @note It would be better to use Mockery here for mocking out the session 
- * handling process, and isolate calls to session class and data from the unit 
- * tests relating to them (stream etc.). However getting mockery to work and 
- * overload classes whilst also using the OC autoloader is difficult due to 
- * load order Pear errors.
- */
-
 class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
        
        function setUp() {
@@ -46,20 +48,30 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
         \OC_Appconfig::setValue('core', 'shareapi_allow_resharing', 'yes');
 
         OC_Hook::clear('OCP\\Share');
-        // Sharing-related hooks
-        OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' );
-        OCP\Util::connectHook( 'OCP\Share', 'post_unshare', 'OCA\Encryption\Hooks', 'postUnshare' );
-        OCP\Util::connectHook( 'OCP\Share', 'post_unshareAll', 'OCA\Encryption\Hooks', 'postUnshareAll' );
 
-        OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
+        // Sharing related hooks
+        OCA\Encryption\Helper::registerShareHooks();
+
+        // Filesystem related hooks
+        OCA\Encryption\Helper::registerFilesystemHooks();
 
         OC_FileProxy::register( new OCA\Encryption\Proxy() );
 
         OC::registerShareHooks();
+
+        // remember files_trashbin state
+        $this->stateFilesTrashbin = OC_App::isEnabled('files_trashbin');
+
+        // we don't want to tests with app files_trashbin
+        OC_App::disable('files_trashbin');
     }
        
        function tearDown() {
-
+        if($this->stateFilesTrashbin) {
+            OC_App::enable('files_trashbin');
+        } else {
+            OC_App::disable('files_trashbin');
+        }
        }
 
     function testShareFile($withTeardown = true) {
@@ -120,6 +132,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
 
             // tear down
             \OC_User::deleteUser('user1');
+
+            // cleanup
+            $this->view->unlink('/admin/files/'.$filename);
+
+            // check if share key not exists
+            $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.admin.shareKey'));
         }
     }
 
@@ -175,6 +193,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
             // tear down
             \OC_User::deleteUser('user2');
             \OC_User::deleteUser('user1');
+
+            // cleanup
+            $this->view->unlink('/admin/files/'.$filename);
+
+            // check if share key not exists
+            $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/'.$filename.'.admin.shareKey'));
         }
     }
 
@@ -239,6 +263,12 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
             // check if share key not exists
             $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.user1.shareKey'));
 
+            // cleanup
+            $this->view->unlink('/admin/files'.$folder1.$subfolder.$subsubfolder.'/'.$filename);
+
+            // check if share key not exists
+            $this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys'.$folder1.$subfolder.$subsubfolder.'/'.$filename.'.admin.shareKey'));
+
             // tear down
             \OC_User::deleteUser('user1');
         }