From 1de0b10751c55b26f3d9d0077e0eb404855c613c Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 16 Aug 2022 17:24:06 +0200 Subject: [PATCH] add test for trying to fopen a file which no longer exists on disk Signed-off-by: Robin Appelman --- .../tests/unit/Connector/Sabre/FileTest.php | 4 ++-- tests/lib/Files/ViewTest.php | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index 6a954378d02..91e49d331e9 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -1151,7 +1151,7 @@ class FileTest extends TestCase { $info = new \OC\Files\FileInfo('/test.txt', $this->getMockStorage(), null, [ 'permissions' => \OCP\Constants::PERMISSION_ALL, - 'type' => FileInfo::TYPE_FOLDER, + 'type' => FileInfo::TYPE_FILE, ], null); $file = new \OCA\DAV\Connector\Sabre\File($view, $info); @@ -1172,7 +1172,7 @@ class FileTest extends TestCase { $info = new \OC\Files\FileInfo('/test.txt', $this->getMockStorage(), null, [ 'permissions' => \OCP\Constants::PERMISSION_ALL, - 'type' => FileInfo::TYPE_FOLDER, + 'type' => FileInfo::TYPE_FILE, ], null); $file = new \OCA\DAV\Connector\Sabre\File($view, $info); diff --git a/tests/lib/Files/ViewTest.php b/tests/lib/Files/ViewTest.php index 86101d79a1e..2189e7c09f4 100644 --- a/tests/lib/Files/ViewTest.php +++ b/tests/lib/Files/ViewTest.php @@ -2709,4 +2709,23 @@ class ViewTest extends \Test\TestCase { $this->assertEquals(25, $info->getUploadTime()); $this->assertEquals(0, $info->getCreationTime()); } + + public function testFopenGone() { + $storage = new Temporary([]); + $scanner = $storage->getScanner(); + $storage->file_put_contents('foo.txt', 'bar'); + $scanner->scan(''); + $cache = $storage->getCache(); + + Filesystem::mount($storage, [], '/test/'); + $view = new View('/test'); + + $storage->unlink('foo.txt'); + + $this->assertTrue($cache->inCache('foo.txt')); + + $this->assertFalse($view->fopen('foo.txt', 'r')); + + $this->assertFalse($cache->inCache('foo.txt')); + } }