added test for failed sharing

This commit is contained in:
Florin Peter 2013-05-20 21:46:28 +02:00
parent 1fa2f19ee4
commit 1c8e5d6873
4 changed files with 70 additions and 1 deletions

View File

@ -208,6 +208,9 @@ class Hooks {
/*
* @brief check if files can be encrypted to every user.
*/
/**
* @param $params
*/
public static function preShared($params) {
$users = array();
@ -229,7 +232,6 @@ class Hooks {
$params['run']->run = false;
// TODO: Make sure files_sharing provides user
// feedback on failed share
break;
}
}
}

View File

@ -51,6 +51,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase
$this->dataUrl = 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->randomKey = Encryption\Crypt::generateKey();
$keypair = Encryption\Crypt::createKeypair();
@ -884,6 +885,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase
// tear down
$view->unlink($filename);
}
// function testEncryption(){
//
// $key=uniqid();

View File

@ -0,0 +1 @@
ÍÜä°E_cPï6HþV»sßà<1B>Êž

View File

@ -691,6 +691,70 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase
$this->assertTrue($util->setRecoveryForUser(0));
}
function testFailShareFile()
{
// login as admin
$this->loginHelper('admin');
// save file with content
$cryptedFile = file_put_contents('crypt://' . $this->filename, $this->dataShort);
// test that data was successfully written
$this->assertTrue(is_int($cryptedFile));
// disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
// get the file info from previous created file
$fileInfo = $this->view->getFileInfo('/admin/files/' . $this->filename);
// check if we have a valid file info
$this->assertTrue(is_array($fileInfo));
// check if the unencrypted file size is stored
$this->assertGreaterThan(0, $fileInfo['unencrypted_size']);
// break users public key
$this->view->rename('/public-keys/user2.public.key', '/public-keys/user2.public.key_backup');
// re-enable the file proxy
\OC_FileProxy::$enabled = $proxyStatus;
// share the file
\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'group1', OCP\PERMISSION_ALL);
// login as admin
$this->loginHelper('admin');
// check if share key for user1 not exists
$this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey'));
// disable encryption proxy to prevent recursive calls
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
// break user1 public key
$this->view->rename('/public-keys/user2.public.key_backup', '/public-keys/user2.public.key');
// remove share file
$this->view->unlink('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey');
// re-enable the file proxy
\OC_FileProxy::$enabled = $proxyStatus;
// unshare the file with user1
\OCP\Share::unshare('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_GROUP, 'group1');
// check if share key not exists
$this->assertFalse($this->view->file_exists('/admin/files_encryption/share-keys/' . $this->filename . '.user2.shareKey'));
// cleanup
$this->view->unlink('/admin/files/' . $this->filename);
}
/**
* @param $user
* @param bool $create