Skip to content
Snippets Groups Projects
Commit 5b6d1d79 authored by Vincent Petry's avatar Vincent Petry
Browse files

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
parent 8ab40f19
No related branches found
No related tags found
No related merge requests found
......@@ -81,6 +81,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
......
......@@ -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';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment