|
|
|
|
@ -127,6 +127,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { |
|
|
|
|
\OC_User::deleteUser(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER4); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @medium |
|
|
|
|
* @param bool $withTeardown |
|
|
|
|
@ -498,6 +499,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function testPublicShareFile() { |
|
|
|
|
// login as admin |
|
|
|
|
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); |
|
|
|
|
@ -864,6 +866,13 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { |
|
|
|
|
|
|
|
|
|
\OCA\Encryption\Helper::adminDisableRecovery('test123'); |
|
|
|
|
$this->assertEquals(0, \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryAdminEnabled')); |
|
|
|
|
|
|
|
|
|
//clean up, reset passwords |
|
|
|
|
\OC_User::setPassword(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, 'test123'); |
|
|
|
|
$params = array('uid' => \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, |
|
|
|
|
'password' => \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, |
|
|
|
|
'recoveryPassword' => 'test123'); |
|
|
|
|
\OCA\Encryption\Hooks::setPassphrase($params); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -947,4 +956,65 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase { |
|
|
|
|
$this->view->chroot('/'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @brief test moving a shared file out of the Shared folder |
|
|
|
|
*/ |
|
|
|
|
function testRename() { |
|
|
|
|
|
|
|
|
|
// login as admin |
|
|
|
|
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1); |
|
|
|
|
|
|
|
|
|
// save file with content |
|
|
|
|
$cryptedFile = file_put_contents('crypt:///' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename, $this->dataShort); |
|
|
|
|
|
|
|
|
|
// test that data was successfully written |
|
|
|
|
$this->assertTrue(is_int($cryptedFile)); |
|
|
|
|
|
|
|
|
|
// get the file info from previous created file |
|
|
|
|
$fileInfo = $this->view->getFileInfo( |
|
|
|
|
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename); |
|
|
|
|
|
|
|
|
|
// check if we have a valid file info |
|
|
|
|
$this->assertTrue($fileInfo instanceof \OC\Files\FileInfo); |
|
|
|
|
|
|
|
|
|
// share the file |
|
|
|
|
\OCP\Share::shareItem('file', $fileInfo['fileid'], \OCP\Share::SHARE_TYPE_USER, \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2, OCP\PERMISSION_ALL); |
|
|
|
|
|
|
|
|
|
// check if share key for user2exists |
|
|
|
|
$this->assertTrue($this->view->file_exists( |
|
|
|
|
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files_encryption/share-keys/' |
|
|
|
|
. $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '.shareKey')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// login as user2 |
|
|
|
|
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2); |
|
|
|
|
|
|
|
|
|
$this->assertTrue($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename)); |
|
|
|
|
|
|
|
|
|
// get file contents |
|
|
|
|
$retrievedCryptedFile = $this->view->file_get_contents( |
|
|
|
|
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename); |
|
|
|
|
|
|
|
|
|
// check if data is the same as we previously written |
|
|
|
|
$this->assertEquals($this->dataShort, $retrievedCryptedFile); |
|
|
|
|
|
|
|
|
|
// move the file out of the shared folder |
|
|
|
|
$this->view->rename('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/Shared/' . $this->filename, |
|
|
|
|
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); |
|
|
|
|
|
|
|
|
|
// check if we can read the moved file |
|
|
|
|
$retrievedRenamedFile = $this->view->file_get_contents( |
|
|
|
|
'/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); |
|
|
|
|
|
|
|
|
|
// check if data is the same as we previously written |
|
|
|
|
$this->assertEquals($this->dataShort, $retrievedRenamedFile); |
|
|
|
|
|
|
|
|
|
// the owners file should be deleted |
|
|
|
|
$this->assertFalse($this->view->file_exists('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '/files/' . $this->filename)); |
|
|
|
|
|
|
|
|
|
// cleanup |
|
|
|
|
$this->view->unlink('/' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER2 . '/files/' . $this->filename); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|