]> source.dussan.org Git - nextcloud-server.git/commitdiff
added legacy encryption test
authorFlorin Peter <github@florin-peter.de>
Mon, 20 May 2013 19:19:28 +0000 (21:19 +0200)
committerFlorin Peter <github@florin-peter.de>
Mon, 20 May 2013 19:19:28 +0000 (21:19 +0200)
apps/files_encryption/tests/legacy-encrypted-text.txt
apps/files_encryption/tests/util.php

index cb5bf50550d91842c8a0bd214edf9569daeadc48..d38cb7d1b0dc6c45f755c81887f7e0887e436624 100644 (file)
Binary files a/apps/files_encryption/tests/legacy-encrypted-text.txt and b/apps/files_encryption/tests/legacy-encrypted-text.txt differ
index 57ec395342ae41fc6986225ea7df60a58e2bee7b..667ee24f04ab0002a99c190610bca9e4fddd1eba 100755 (executable)
@@ -38,6 +38,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase
         */
        public $util;
        public $dataShort;
+       public $legacyEncryptedData;
+       public $legacyEncryptedDataKey;
+       public $lagacyKey;
 
        function setUp()
        {
@@ -54,6 +57,8 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase
                $this->dataLong = file_get_contents(realpath(dirname(__FILE__) . '/../lib/crypt.php'));
                $this->legacyData = realpath(dirname(__FILE__) . '/legacy-text.txt');
                $this->legacyEncryptedData = realpath(dirname(__FILE__) . '/legacy-encrypted-text.txt');
+               $this->legacyEncryptedDataKey = realpath(dirname(__FILE__) . '/encryption.key');
+               $this->lagacyKey = '62829813025828180801';
 
                $keypair = Encryption\Crypt::createKeypair();
 
@@ -100,7 +105,6 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase
         */
        function testKeyPaths()
        {
-
                $util = new Encryption\Util($this->view, $this->userId);
 
                $this->assertEquals($this->publicKeyDir, $util->getPath('publicKeyDir'));
@@ -116,7 +120,6 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase
         */
        function testSetupServerSide()
        {
-
                $this->assertEquals(true, $this->util->setupServerSide($this->pass));
        }
 
@@ -125,10 +128,50 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase
         */
        function testUserIsReady()
        {
-
                $this->assertEquals(true, $this->util->ready());
        }
 
+       /**
+        * @brief test checking whether account is not ready for encryption,
+        */
+       function testUserIsNotReady()
+       {
+               $this->view->unlink($this->publicKeyDir);
+
+               $params['uid'] = $this->userId;
+               $params['password'] = $this->pass;
+               $this->assertFalse(OCA\Encryption\Hooks::login($params));
+
+               $this->view->unlink($this->privateKeyPath);
+       }
+
+       /**
+        * @brief test checking whether account is not ready for encryption,
+        */
+       function testIsLagacyUser()
+       {
+               $userView = new \OC_FilesystemView( '/' . $this->userId );
+
+               // Disable encryption proxy to prevent recursive calls
+               $proxyStatus = \OC_FileProxy::$enabled;
+               \OC_FileProxy::$enabled = false;
+
+               $encryptionKeyContent = file_get_contents($this->legacyEncryptedDataKey);
+               $userView->file_put_contents('/encryption.key', $encryptionKeyContent);
+
+               \OC_FileProxy::$enabled = $proxyStatus;
+
+               $params['uid'] = $this->userId;
+               $params['password'] = $this->pass;
+
+               $util = new Encryption\Util($this->view, $this->userId);
+               $util->setMigrationStatus(0);
+
+               $this->assertTrue(OCA\Encryption\Hooks::login($params));
+
+               $this->assertEquals($this->lagacyKey, $_SESSION['legacyKey']);
+       }
+
        function testRecoveryEnabledForUser()
        {