2013-11-12 13:24:10 +04:00
|
|
|
<?php
|
|
|
|
/**
|
2013-11-12 14:17:34 +04:00
|
|
|
* Copyright (c) 2013 Bjoern Schiessle <schiessle@owncloud.com>
|
2013-11-12 13:24:10 +04:00
|
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
|
|
* later.
|
|
|
|
* See the COPYING-README file.
|
|
|
|
*/
|
|
|
|
|
2013-11-12 14:17:34 +04:00
|
|
|
|
2013-11-12 13:24:10 +04:00
|
|
|
require_once __DIR__ . '/../lib/helper.php';
|
2013-12-19 14:15:59 +04:00
|
|
|
require_once __DIR__ . '/util.php';
|
2013-11-12 13:24:10 +04:00
|
|
|
|
|
|
|
use OCA\Encryption;
|
|
|
|
|
|
|
|
/**
|
2013-11-12 14:17:34 +04:00
|
|
|
* Class Test_Encryption_Helper
|
2013-11-12 13:24:10 +04:00
|
|
|
*/
|
|
|
|
class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase {
|
|
|
|
|
2013-12-19 14:15:59 +04:00
|
|
|
const TEST_ENCRYPTION_HELPER_USER1 = "test-helper-user1";
|
2014-05-22 17:43:42 +04:00
|
|
|
const TEST_ENCRYPTION_HELPER_USER2 = "test-helper-user2";
|
2013-12-19 14:15:59 +04:00
|
|
|
|
|
|
|
public static function setUpBeforeClass() {
|
|
|
|
// create test user
|
2014-05-22 17:43:42 +04:00
|
|
|
\Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2, true);
|
2013-12-19 14:15:59 +04:00
|
|
|
\Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function tearDownAfterClass() {
|
|
|
|
// cleanup test user
|
|
|
|
\OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1);
|
2014-05-22 17:43:42 +04:00
|
|
|
\OC_User::deleteUser(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER2);
|
|
|
|
\OC_Hook::clear();
|
|
|
|
\OC_FileProxy::clearProxies();
|
2013-12-19 14:15:59 +04:00
|
|
|
}
|
|
|
|
|
2013-11-12 13:24:10 +04:00
|
|
|
/**
|
|
|
|
* @medium
|
|
|
|
*/
|
2013-11-12 19:48:24 +04:00
|
|
|
function testStripPartialFileExtension() {
|
2013-11-12 13:24:10 +04:00
|
|
|
|
|
|
|
$partFilename = 'testfile.txt.part';
|
|
|
|
$filename = 'testfile.txt';
|
|
|
|
|
2013-11-12 14:17:34 +04:00
|
|
|
$this->assertTrue(Encryption\Helper::isPartialFilePath($partFilename));
|
2013-11-12 13:24:10 +04:00
|
|
|
|
2013-11-12 19:48:24 +04:00
|
|
|
$this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($partFilename));
|
2013-11-12 13:24:10 +04:00
|
|
|
|
2013-11-12 14:17:34 +04:00
|
|
|
$this->assertFalse(Encryption\Helper::isPartialFilePath($filename));
|
2013-11-12 13:24:10 +04:00
|
|
|
|
2013-11-12 19:48:24 +04:00
|
|
|
$this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($filename));
|
2013-11-12 13:24:10 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @medium
|
|
|
|
*/
|
2013-11-12 19:48:24 +04:00
|
|
|
function testStripPartialFileExtensionWithTransferIdPath() {
|
2013-11-12 13:24:10 +04:00
|
|
|
|
|
|
|
$partFilename = 'testfile.txt.ocTransferId643653835.part';
|
|
|
|
$filename = 'testfile.txt';
|
|
|
|
|
|
|
|
$this->assertTrue(Encryption\Helper::isPartialFilePath($partFilename));
|
|
|
|
|
2013-11-12 19:48:24 +04:00
|
|
|
$this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($partFilename));
|
2013-11-12 13:24:10 +04:00
|
|
|
|
|
|
|
$this->assertFalse(Encryption\Helper::isPartialFilePath($filename));
|
|
|
|
|
2013-11-12 19:48:24 +04:00
|
|
|
$this->assertEquals('testfile.txt', Encryption\Helper::stripPartialFileExtension($filename));
|
2013-11-12 13:24:10 +04:00
|
|
|
}
|
|
|
|
|
2013-11-15 19:49:50 +04:00
|
|
|
function testGetPathToRealFile() {
|
|
|
|
|
|
|
|
// the relative path to /user/files/ that's what we want to get from getPathToRealFile()
|
|
|
|
$relativePath = "foo/bar/test.txt";
|
|
|
|
|
|
|
|
// test paths
|
|
|
|
$versionPath = "/user/files_versions/foo/bar/test.txt.v456756835";
|
|
|
|
$cachePath = "/user/cache/transferid636483/foo/bar/test.txt";
|
|
|
|
|
|
|
|
$this->assertEquals($relativePath, Encryption\Helper::getPathToRealFile($versionPath));
|
|
|
|
$this->assertEquals($relativePath, Encryption\Helper::getPathToRealFile($cachePath));
|
|
|
|
}
|
|
|
|
|
2013-12-19 14:15:59 +04:00
|
|
|
function testGetUser() {
|
|
|
|
|
|
|
|
$path1 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/files/foo/bar.txt";
|
|
|
|
$path2 = "/" . self::TEST_ENCRYPTION_HELPER_USER1 . "/cache/foo/bar.txt";
|
2014-05-22 17:43:42 +04:00
|
|
|
$path3 = "/" . self::TEST_ENCRYPTION_HELPER_USER2 . "/thumbnails/foo";
|
2013-12-19 14:15:59 +04:00
|
|
|
$path4 ="/" . "/" . self::TEST_ENCRYPTION_HELPER_USER1;
|
|
|
|
|
2014-05-22 17:43:42 +04:00
|
|
|
\Test_Encryption_Util::loginHelper(self::TEST_ENCRYPTION_HELPER_USER1);
|
|
|
|
|
2013-12-19 14:15:59 +04:00
|
|
|
// if we are logged-in every path should return the currently logged-in user
|
|
|
|
$this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path3));
|
|
|
|
|
|
|
|
// now log out
|
|
|
|
\Test_Encryption_Util::logoutHelper();
|
|
|
|
|
|
|
|
// now we should only get the user from /user/files and user/cache paths
|
|
|
|
$this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path1));
|
|
|
|
$this->assertEquals(self::TEST_ENCRYPTION_HELPER_USER1, Encryption\Helper::getUser($path2));
|
|
|
|
|
|
|
|
$this->assertFalse(Encryption\Helper::getUser($path3));
|
|
|
|
$this->assertFalse(Encryption\Helper::getUser($path4));
|
|
|
|
|
|
|
|
// Log-in again
|
|
|
|
\Test_Encryption_Util::loginHelper(\Test_Encryption_Helper::TEST_ENCRYPTION_HELPER_USER1);
|
|
|
|
}
|
|
|
|
|
2013-11-15 19:49:50 +04:00
|
|
|
}
|