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.
|
* @brief check if files can be encrypted to every user.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @param $params
|
||||||
|
*/
|
||||||
public static function preShared($params) {
|
public static function preShared($params) {
|
||||||
|
|
||||||
$users = array();
|
$users = array();
|
||||||
|
@ -229,7 +232,6 @@ class Hooks {
|
||||||
$params['run']->run = false;
|
$params['run']->run = false;
|
||||||
// TODO: Make sure files_sharing provides user
|
// TODO: Make sure files_sharing provides user
|
||||||
// feedback on failed share
|
// 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->dataUrl = realpath(dirname(__FILE__) . '/../lib/crypt.php');
|
||||||
$this->legacyData = realpath(dirname(__FILE__) . '/legacy-text.txt');
|
$this->legacyData = realpath(dirname(__FILE__) . '/legacy-text.txt');
|
||||||
$this->legacyEncryptedData = realpath(dirname(__FILE__) . '/legacy-encrypted-text.txt');
|
$this->legacyEncryptedData = realpath(dirname(__FILE__) . '/legacy-encrypted-text.txt');
|
||||||
|
$this->legacyEncryptedDataKey = realpath(dirname(__FILE__) . '/encryption.key');
|
||||||
$this->randomKey = Encryption\Crypt::generateKey();
|
$this->randomKey = Encryption\Crypt::generateKey();
|
||||||
|
|
||||||
$keypair = Encryption\Crypt::createKeypair();
|
$keypair = Encryption\Crypt::createKeypair();
|
||||||
|
@ -884,6 +885,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase
|
||||||
// tear down
|
// tear down
|
||||||
$view->unlink($filename);
|
$view->unlink($filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
// function testEncryption(){
|
// function testEncryption(){
|
||||||
//
|
//
|
||||||
// $key=uniqid();
|
// $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));
|
$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 $user
|
||||||
* @param bool $create
|
* @param bool $create
|
||||||
|
|
Loading…
Reference in New Issue