X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FFileUtilsTest.php;h=57719175542c3562af141c0658a9b28e1ba96dcb;hb=HEAD;hp=3384504a70c1d5daaff727c8655ce6a317786a36;hpb=e6215a2ad97182efcf88ef532ec6bd65ae35fd19;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/FileUtilsTest.php b/tests/FileUtilsTest.php deleted file mode 100644 index 3384504a..00000000 --- a/tests/FileUtilsTest.php +++ /dev/null @@ -1,196 +0,0 @@ -assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); - $this->assertTrue(startsWith(file_get_contents(self::$file), 'assertEquals($data, FileUtils::readFlatDB(self::$file)); - - $data = 0; - $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); - $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); - - $data = null; - $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); - $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); - - $data = false; - $this->assertTrue(FileUtils::writeFlatDB(self::$file, $data) > 0); - $this->assertEquals($data, FileUtils::readFlatDB(self::$file)); - } - - /** - * File not writable: raise an exception. - */ - public function testWriteWithoutPermission() - { - $this->expectException(\Shaarli\Exceptions\IOException::class); - $this->expectExceptionMessage('Error accessing "sandbox/flat.db"'); - - touch(self::$file); - chmod(self::$file, 0440); - FileUtils::writeFlatDB(self::$file, null); - } - - /** - * Folder non existent: raise an exception. - */ - public function testWriteFolderDoesNotExist() - { - $this->expectException(\Shaarli\Exceptions\IOException::class); - $this->expectExceptionMessage('Error accessing "nopefolder"'); - - FileUtils::writeFlatDB('nopefolder/file', null); - } - - /** - * Folder non writable: raise an exception. - */ - public function testWriteFolderPermission() - { - $this->expectException(\Shaarli\Exceptions\IOException::class); - $this->expectExceptionMessage('Error accessing "sandbox"'); - - chmod(dirname(self::$file), 0555); - try { - FileUtils::writeFlatDB(self::$file, null); - } catch (Exception $e) { - chmod(dirname(self::$file), 0755); - throw $e; - } - } - - /** - * Read non existent file, use default parameter. - */ - public function testReadNotExistentFile() - { - $this->assertEquals(null, FileUtils::readFlatDB(self::$file)); - $this->assertEquals(['test'], FileUtils::readFlatDB(self::$file, ['test'])); - } - - /** - * Read non readable file, use default parameter. - */ - public function testReadNotReadable() - { - touch(self::$file); - chmod(self::$file, 0220); - $this->assertEquals(null, FileUtils::readFlatDB(self::$file)); - $this->assertEquals(['test'], FileUtils::readFlatDB(self::$file, ['test'])); - } - - /** - * Test clearFolder with self delete and excluded files - */ - public function testClearFolderSelfDeleteWithExclusion(): void - { - FileUtils::clearFolder('sandbox', true, ['file2']); - - static::assertFileExists('sandbox/folder1/file2'); - static::assertFileExists('sandbox/folder1'); - static::assertFileExists('sandbox/file2'); - static::assertFileExists('sandbox'); - - static::assertFileNotExists('sandbox/folder1/file1'); - static::assertFileNotExists('sandbox/file1'); - static::assertFileNotExists('sandbox/folder3'); - } - - /** - * Test clearFolder with self delete and excluded files - */ - public function testClearFolderSelfDeleteWithoutExclusion(): void - { - FileUtils::clearFolder('sandbox', true); - - static::assertFileNotExists('sandbox'); - } - - /** - * Test clearFolder with self delete and excluded files - */ - public function testClearFolderNoSelfDeleteWithoutExclusion(): void - { - FileUtils::clearFolder('sandbox', false); - - static::assertFileExists('sandbox'); - - // 2 because '.' and '..' - static::assertCount(2, new \DirectoryIterator('sandbox')); - } - - /** - * Test clearFolder on a file instead of a folder - */ - public function testClearFolderOnANonDirectory(): void - { - $this->expectException(IOException::class); - $this->expectExceptionMessage('Provided path is not a directory.'); - - FileUtils::clearFolder('sandbox/file1', false); - } - - /** - * Test clearFolder on a file instead of a folder - */ - public function testClearFolderOutsideOfShaarliDirectory(): void - { - $this->expectException(IOException::class); - $this->expectExceptionMessage('Trying to delete a folder outside of Shaarli path.'); - - - FileUtils::clearFolder('/tmp/shaarli-to-delete', true); - } -}