added test for failed sharing
This commit is contained in:
parent
1fa2f19ee4
commit
1c8e5d6873
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
ÍÜä°E_cPï6HþV»sßà<1B>Êž
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue