diff --git a/4dev/tests/Check/CoreLibsCheckFileTest.php b/4dev/tests/Check/CoreLibsCheckFileTest.php
index c94ad943..56141aa2 100644
--- a/4dev/tests/Check/CoreLibsCheckFileTest.php
+++ b/4dev/tests/Check/CoreLibsCheckFileTest.php
@@ -28,10 +28,10 @@ final class CoreLibsCheckFileTest extends TestCase
public function filesList(): array
{
return [
- ['filename.txt', 'txt', 5],
- ['filename.csv', 'csv', 15],
- ['filename.tsv', 'tsv', 0],
- ['file_does_not_exits', '', -1],
+ ['filename.txt', 'txt', 5, 'text/plain'],
+ ['filename.csv', 'csv', 15, 'text/csv'],
+ ['filename.tsv', 'tsv', 0, 'text/plain'],
+ ['file_does_not_exits', '', -1, ''],
];
}
@@ -63,6 +63,15 @@ final class CoreLibsCheckFileTest extends TestCase
return $list;
}
+ public function mimeTypeProvider(): array
+ {
+ $list = [];
+ foreach ($this->filesList() as $row) {
+ $list[$row[0] . ' must be mime type ' . $row[3]] = [$row[0], $row[3]];
+ }
+ return $list;
+ }
+
/**
* Tests if file extension matches
*
@@ -115,6 +124,51 @@ final class CoreLibsCheckFileTest extends TestCase
unlink($this->base_folder . $input);
}
}
+
+ /**
+ * Undocumented function
+ *
+ * @covers ::getMimeType
+ * @dataProvider mimeTypeProvider
+ * @testdox getMimeType $input must be mime type $expected [$_dataName]
+ *
+ * @param string $input
+ * @param string $expected
+ * @return void
+ */
+ public function testGetMimeType(string $input, string $expected): void
+ {
+ if (!empty($expected)) {
+ $file = $this->base_folder . $input;
+ $fp = fopen($file, 'w');
+ switch ($expected) {
+ case 'text/csv':
+ for ($i = 1; $i <= 10; $i++) {
+ fwrite($fp, '"This is row","' . $expected . '",' . $i . PHP_EOL);
+ }
+ break;
+ case 'text/tsv':
+ for ($i = 1; $i <= 10; $i++) {
+ fwrite($fp, "\"This is row\"\t\"" . $expected . "\"\t\"" . $i . PHP_EOL);
+ }
+ break;
+ case 'text/plain':
+ fwrite($fp, 'This is mime type: ' . $expected . PHP_EOL);
+ break;
+ }
+ fclose($fp);
+ } else {
+ $this->expectException(\UnexpectedValueException::class);
+ }
+ $this->assertEquals(
+ $expected,
+ \CoreLibs\Check\File::getMimeType($this->base_folder . $input)
+ );
+ // unlink file
+ if (is_file($this->base_folder . $input)) {
+ unlink($this->base_folder . $input);
+ }
+ }
}
// __END__
diff --git a/www/admin/class_test.file.php b/www/admin/class_test.file.php
index f2c26c17..0844c4bf 100644
--- a/www/admin/class_test.file.php
+++ b/www/admin/class_test.file.php
@@ -37,6 +37,7 @@ $file = '/some/path/to/some/file.txt';
print "GETFILENAMEENDING: $file: " . File::getFilenameEnding($file) . "
";
$file = getcwd() . DIRECTORY_SEPARATOR . 'class_test.file.php';
print "GETLINESFROMFILE: $file: " . File::getLinesFromFile($file) . "
";
+print "MIMEINFO: $file: " . File::getMimeType($file) . "
";
print "