From: Florin Peter Date: Mon, 20 May 2013 19:19:28 +0000 (+0200) Subject: added legacy encryption test X-Git-Tag: v6.0.0alpha2~743^2~28 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=171b9a4702efb6e413e13e705bb903772950c488;p=nextcloud-server.git added legacy encryption test --- diff --git a/apps/files_encryption/tests/legacy-encrypted-text.txt b/apps/files_encryption/tests/legacy-encrypted-text.txt index cb5bf50550d..d38cb7d1b0d 100644 Binary files a/apps/files_encryption/tests/legacy-encrypted-text.txt and b/apps/files_encryption/tests/legacy-encrypted-text.txt differ diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php index 57ec395342a..667ee24f04a 100755 --- a/apps/files_encryption/tests/util.php +++ b/apps/files_encryption/tests/util.php @@ -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() {