Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2013-11-12 13:24:10 +0400
committerBjoern Schiessle <schiessle@owncloud.com>2013-11-12 13:24:10 +0400
commit9f10f15fd459234c160fb3e41eab623607e52e72 (patch)
tree165dbb0c6c25178b29006d8b7ab2701e710c7f81
parent802213f7ecf925ff3f63c2198dde4d63fce16846 (diff)
fixing tests for the new part file handling
-rwxr-xr-xapps/files_encryption/lib/helper.php16
-rwxr-xr-xapps/files_encryption/lib/keymanager.php28
-rw-r--r--apps/files_encryption/lib/proxy.php6
-rw-r--r--apps/files_encryption/tests/helper.php61
-rw-r--r--apps/files_encryption/tests/keymanager.php17
5 files changed, 86 insertions, 42 deletions
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 98a5f1f2f28..48175e460ec 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -156,6 +156,22 @@ class Helper {
return $return;
}
+ /**
+ * @brief Check if a path is a .part file
+ * @param string $path Path that may identify a .part file
+ * @return bool
+ */
+ public static function isPartialFilePath($path) {
+
+ $extension = pathinfo($path, PATHINFO_EXTENSION);
+ if ( $extension === 'part' || $extension === 'etmp') {
+ return true;
+ } else {
+ return false;
+ }
+
+ }
+
/**
* @brief Remove .path extension from a file path
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index 578d8965b42..794641f712f 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -152,10 +152,10 @@ class Keymanager {
}
// try reusing key file if part file
- if (self::isPartialFilePath($targetPath)) {
+ if (Helper::isPartialFilePath($targetPath)) {
$result = $view->file_put_contents(
- $basePath . '/' . \OCA\Encryption\Helper::fixPartialFilePath($targetPath) . '.key', $catfile);
+ $basePath . '/' . Helper::fixPartialFilePath($targetPath) . '.key', $catfile);
} else {
@@ -170,22 +170,6 @@ class Keymanager {
}
/**
- * @brief Check if a path is a .part file
- * @param string $path Path that may identify a .part file
- * @return bool
- */
- public static function isPartialFilePath($path) {
-
- $extension = pathinfo($path, PATHINFO_EXTENSION);
- if ( $extension === 'part' || $extension === 'etmp') {
- return true;
- } else {
- return false;
- }
-
- }
-
- /**
* @brief retrieve keyfile for an encrypted file
* @param \OC_FilesystemView $view
* @param $userId
@@ -200,7 +184,7 @@ class Keymanager {
$util = new Util($view, \OCP\User::getUser());
list($owner, $filename) = $util->getUidAndFilename($filePath);
- $filename = \OCA\Encryption\Helper::fixPartialFilePath($filename);
+ $filename = Helper::fixPartialFilePath($filename);
$filePath_f = ltrim($filename, '/');
// in case of system wide mount points the keys are stored directly in the data directory
@@ -359,8 +343,8 @@ class Keymanager {
foreach ($shareKeys as $userId => $shareKey) {
// try reusing key file if part file
- if (self::isPartialFilePath($shareKeyPath)) {
- $writePath = $basePath . '/' . \OCA\Encryption\Helper::fixPartialFilePath($shareKeyPath) . '.' . $userId . '.shareKey';
+ if (Helper::isPartialFilePath($shareKeyPath)) {
+ $writePath = $basePath . '/' . Helper::fixPartialFilePath($shareKeyPath) . '.' . $userId . '.shareKey';
} else {
$writePath = $basePath . '/' . $shareKeyPath . '.' . $userId . '.shareKey';
}
@@ -396,7 +380,7 @@ class Keymanager {
$util = new Util($view, \OCP\User::getUser());
list($owner, $filename) = $util->getUidAndFilename($filePath);
- $filename = \OCA\Encryption\Helper::fixPartialFilePath($filename);
+ $filename = Helper::fixPartialFilePath($filename);
// in case of system wide mount points the keys are stored directly in the data directory
if ($util->isSystemWideMountPoint($filename)) {
$shareKeyPath = '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey';
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 6dc5c9ce1b8..e2bc8f6b163 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -342,7 +342,7 @@ class Proxy extends \OC_FileProxy {
$fileInfo = false;
// get file info from database/cache if not .part file
- if (!Keymanager::isPartialFilePath($path)) {
+ if (!Helper::isPartialFilePath($path)) {
$fileInfo = $view->getFileInfo($path);
}
@@ -353,7 +353,7 @@ class Proxy extends \OC_FileProxy {
$fixSize = $util->getFileSize($path);
$fileInfo['unencrypted_size'] = $fixSize;
// put file info if not .part file
- if (!Keymanager::isPartialFilePath($relativePath)) {
+ if (!Helper::isPartialFilePath($relativePath)) {
$view->putFileInfo($path, $fileInfo);
}
}
@@ -372,7 +372,7 @@ class Proxy extends \OC_FileProxy {
$fileInfo['unencrypted_size'] = $size;
// put file info if not .part file
- if (!Keymanager::isPartialFilePath($relativePath)) {
+ if (!Helper::isPartialFilePath($relativePath)) {
$view->putFileInfo($path, $fileInfo);
}
}
diff --git a/apps/files_encryption/tests/helper.php b/apps/files_encryption/tests/helper.php
new file mode 100644
index 00000000000..cccf9c75222
--- /dev/null
+++ b/apps/files_encryption/tests/helper.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright (c) 2012 Sam Tuke <samtuke@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+require_once __DIR__ . '/../../../lib/base.php';
+require_once __DIR__ . '/../lib/crypt.php';
+require_once __DIR__ . '/../lib/keymanager.php';
+require_once __DIR__ . '/../lib/proxy.php';
+require_once __DIR__ . '/../lib/stream.php';
+require_once __DIR__ . '/../lib/util.php';
+require_once __DIR__ . '/../lib/helper.php';
+require_once __DIR__ . '/../appinfo/app.php';
+require_once __DIR__ . '/util.php';
+
+use OCA\Encryption;
+
+/**
+ * Class Test_Encryption_Keymanager
+ */
+class Test_Encryption_Helper extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @medium
+ */
+ function testFixPartialFilePath() {
+
+ $partFilename = 'testfile.txt.part';
+ $filename = 'testfile.txt';
+
+ $this->assertTrue(Encryption\Keymanager::isPartialFilePath($partFilename));
+
+ $this->assertEquals('testfile.txt', Encryption\Helper::fixPartialFilePath($partFilename));
+
+ $this->assertFalse(Encryption\Keymanager::isPartialFilePath($filename));
+
+ $this->assertEquals('testfile.txt', Encryption\Keymanager::fixPartialFilePath($filename));
+ }
+
+
+ /**
+ * @medium
+ */
+ function testFixPartialFileWithTransferIdPath() {
+
+ $partFilename = 'testfile.txt.ocTransferId643653835.part';
+ $filename = 'testfile.txt';
+
+ $this->assertTrue(Encryption\Helper::isPartialFilePath($partFilename));
+
+ $this->assertEquals('testfile.txt', Encryption\Helper::fixPartialFilePath($partFilename));
+
+ $this->assertFalse(Encryption\Helper::isPartialFilePath($filename));
+
+ $this->assertEquals('testfile.txt', Encryption\Helper::fixPartialFilePath($filename));
+ }
+
+} \ No newline at end of file
diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php
index b2d200cca3e..ad6bbd3a7e9 100644
--- a/apps/files_encryption/tests/keymanager.php
+++ b/apps/files_encryption/tests/keymanager.php
@@ -191,23 +191,6 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
/**
* @medium
*/
- function testFixPartialFilePath() {
-
- $partFilename = 'testfile.txt.part';
- $filename = 'testfile.txt';
-
- $this->assertTrue(Encryption\Keymanager::isPartialFilePath($partFilename));
-
- $this->assertEquals('testfile.txt', Encryption\Keymanager::fixPartialFilePath($partFilename));
-
- $this->assertFalse(Encryption\Keymanager::isPartialFilePath($filename));
-
- $this->assertEquals('testfile.txt', Encryption\Keymanager::fixPartialFilePath($filename));
- }
-
- /**
- * @medium
- */
function testRecursiveDelShareKeys() {
// generate filename