[Pkg-owncloud-commits] [owncloud] 87/111: Fixed SMB file deletion success detection
David Prévot
taffit at moszumanska.debian.org
Wed Nov 20 21:38:46 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository owncloud.
commit 5b6d1d79d06e404ce4a52f75393a98f52769da48
Author: Vincent Petry <pvince81 at owncloud.com>
Date: Thu Nov 14 18:39:39 2013 +0100
Fixed SMB file deletion success detection
Since unlink() smb4php doesn't return true on deletion success, we need
to check whether the file was deleted to confirm success.
Fixes #5866
---
apps/files_external/lib/smb.php | 12 ++++++++++++
tests/lib/files/storage/storage.php | 16 ++++++++++++++--
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index c464fa9..5bff597 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -82,6 +82,18 @@ class SMB extends \OC\Files\Storage\StreamWrapper{
}
/**
+ * Unlinks file
+ * @param string @path
+ */
+ public function unlink($path) {
+ unlink($this->constructUrl($path));
+ clearstatcache();
+ // smb4php still returns false even on success so
+ // check here whether file was really deleted
+ return !file_exists($path);
+ }
+
+ /**
* check if a file or folder has been updated since $time
* @param string $path
* @param int $time
diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php
index f72a527..6c433e9 100644
--- a/tests/lib/files/storage/storage.php
+++ b/tests/lib/files/storage/storage.php
@@ -182,8 +182,9 @@ abstract class Storage extends \PHPUnit_Framework_TestCase {
$this->assertTrue($this->instance->hasUpdated('/lorem.txt', $ctimeStart - 5));
$this->assertTrue($this->instance->hasUpdated('/', $ctimeStart - 5));
- $this->assertTrue(($ctimeStart - 5) <= $mTime);
- $this->assertTrue($mTime <= ($ctimeEnd + 1));
+ // check that ($ctimeStart - 5) <= $mTime <= ($ctimeEnd + 1)
+ $this->assertGreaterThanOrEqual(($ctimeStart - 5), $mTime);
+ $this->assertLessThanOrEqual(($ctimeEnd + 1), $mTime);
$this->assertEquals(filesize($textFile), $this->instance->filesize('/lorem.txt'));
$stat = $this->instance->stat('/lorem.txt');
@@ -202,6 +203,17 @@ abstract class Storage extends \PHPUnit_Framework_TestCase {
$this->assertTrue($this->instance->hasUpdated('/', $mtimeStart - 5));
}
+ public function testUnlink() {
+ $textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt';
+ $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile));
+
+ $this->assertTrue($this->instance->file_exists('/lorem.txt'));
+
+ $this->assertTrue($this->instance->unlink('/lorem.txt'));
+
+ $this->assertFalse($this->instance->file_exists('/lorem.txt'));
+ }
+
public function testFOpen() {
$textFile = \OC::$SERVERROOT . '/tests/data/lorem.txt';
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git
More information about the Pkg-owncloud-commits
mailing list