$result = \OC_FileProxy::runPostProxies($operation, $this->getAbsolutePath($path), $result);
- if (in_array('delete', $hooks)) {
+ if (in_array('delete', $hooks) and $result) {
$this->updater->remove($path);
}
if (in_array('write', $hooks)) {
$this->assertEquals($time, $view->filemtime('/test/sub/storage/foo/bar.txt'));
}
+
+ public function testDeleteFailKeepCache() {
+ /**
+ * @var \PHPUnit_Framework_MockObject_MockObject | \OC\Files\Storage\Temporary $storage
+ */
+ $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
+ ->setConstructorArgs(array(array()))
+ ->setMethods(array('unlink'))
+ ->getMock();
+ $storage->expects($this->once())
+ ->method('unlink')
+ ->will($this->returnValue(false));
+ $scanner = $storage->getScanner();
+ $cache = $storage->getCache();
+ $storage->file_put_contents('foo.txt', 'asd');
+ $scanner->scan('');
+ \OC\Files\Filesystem::mount($storage, array(), '/test/');
+
+ $view = new \OC\Files\View('/test');
+
+ $this->assertFalse($view->unlink('foo.txt'));
+ $this->assertTrue($cache->inCache('foo.txt'));
+ }
}