Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2019-12-12 13:19:55 +0300
committerGitHub <noreply@github.com>2019-12-12 13:19:55 +0300
commitc6e51924c8615166c2533f83ecc6399d9cc56cbd (patch)
tree4628e29811b1b3b5831df2b18cafedbc2e7ee86b /tests
parent4f60609f83fde059e6f831c1b17b481e6604ce24 (diff)
parent4356c91ffd16f54a7bc67b7c62ef4f1110b29e9f (diff)
Merge pull request #18236 from nextcloud/bugfix/noid/always-detect-mimetype-by-content-in-workflows
Allow to detect mimetype by content
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/Files/Type/DetectionTest.php119
1 files changed, 77 insertions, 42 deletions
diff --git a/tests/lib/Files/Type/DetectionTest.php b/tests/lib/Files/Type/DetectionTest.php
index ade4820057a..01f11bf39c8 100644
--- a/tests/lib/Files/Type/DetectionTest.php
+++ b/tests/lib/Files/Type/DetectionTest.php
@@ -39,61 +39,96 @@ class DetectionTest extends \Test\TestCase {
);
}
- public function testDetect() {
- $dir = \OC::$SERVERROOT.'/tests/data';
+ public function dataDetectPath(): array {
+ return [
+ ['foo.txt', 'text/plain'],
+ ['foo.png', 'image/png'],
+ ['foo.bar.png', 'image/png'],
+ ['.hidden.png', 'image/png'],
+ ['.hidden.foo.png', 'image/png'],
+ ['.hidden/foo.png', 'image/png'],
+ ['.hidden/.hidden.png', 'image/png'],
+ ['test.jpg/foo.png', 'image/png'],
+ ['.png', 'application/octet-stream'],
+ ['..hidden', 'application/octet-stream'],
+ ['foo', 'application/octet-stream'],
+ ['', 'application/octet-stream'],
+ ['foo.png.ocTransferId123456789.part', 'image/png'],
+ ['foo.png.v1234567890', 'image/png'],
+ ];
+ }
- $result = $this->detection->detect($dir."/");
- $expected = 'httpd/unix-directory';
- $this->assertEquals($expected, $result);
+ /**
+ * @dataProvider dataDetectPath
+ *
+ * @param string $path
+ * @param string $expected
+ */
+ public function testDetectPath(string $path, string $expected): void {
+ $this->assertEquals($expected, $this->detection->detectPath($path));
+ }
- $result = $this->detection->detect($dir."/data.tar.gz");
- $expected = 'application/x-gzip';
- $this->assertEquals($expected, $result);
+ public function dataDetectContent(): array {
+ return [
+ ['/', 'httpd/unix-directory'],
+// ['/data.tar.gz', 'application/x-gzip'], TODO: fix as it fails hard on php7.4 now
+ ['/data.zip', 'application/zip'],
+ ['/testimage.mp3', 'audio/mpeg'],
+ ['/testimage.png', 'image/png'],
+ ];
+ }
- $result = $this->detection->detect($dir."/data.zip");
- $expected = 'application/zip';
- $this->assertEquals($expected, $result);
+ /**
+ * @dataProvider dataDetectContent
+ *
+ * @param string $path
+ * @param string $expected
+ */
+ public function testDetectContent(string $path, string $expected): void {
+ $this->assertEquals($expected, $this->detection->detectContent(\OC::$SERVERROOT . '/tests/data' . $path));
+ }
- $result = $this->detection->detect($dir."/testimagelarge.svg");
- $expected = 'image/svg+xml';
- $this->assertEquals($expected, $result);
+ public function dataDetect(): array {
+ return [
+ ['/', 'httpd/unix-directory'],
+ ['/data.tar.gz', 'application/x-gzip'],
+ ['/data.zip', 'application/zip'],
+ ['/testimagelarge.svg', 'image/svg+xml'],
+ ['/testimage.png', 'image/png'],
+ ];
+ }
- $result = $this->detection->detect($dir."/testimage.png");
- $expected = 'image/png';
- $this->assertEquals($expected, $result);
+ /**
+ * @dataProvider dataDetect
+ *
+ * @param string $path
+ * @param string $expected
+ */
+ public function testDetect(string $path, string $expected): void {
+ $this->assertEquals($expected, $this->detection->detect(\OC::$SERVERROOT . '/tests/data' . $path));
}
- public function testGetSecureMimeType() {
- $result = $this->detection->getSecureMimeType('image/svg+xml');
+ public function testDetectString(): void {
+ $result = $this->detection->detectString('/data/data.tar.gz');
$expected = 'text/plain';
$this->assertEquals($expected, $result);
-
- $result = $this->detection->getSecureMimeType('image/png');
- $expected = 'image/png';
- $this->assertEquals($expected, $result);
}
- public function testDetectPath() {
- $this->assertEquals('text/plain', $this->detection->detectPath('foo.txt'));
- $this->assertEquals('image/png', $this->detection->detectPath('foo.png'));
- $this->assertEquals('image/png', $this->detection->detectPath('foo.bar.png'));
- $this->assertEquals('image/png', $this->detection->detectPath('.hidden.png'));
- $this->assertEquals('image/png', $this->detection->detectPath('.hidden.foo.png'));
- $this->assertEquals('image/png', $this->detection->detectPath('.hidden/foo.png'));
- $this->assertEquals('image/png', $this->detection->detectPath('.hidden/.hidden.png'));
- $this->assertEquals('image/png', $this->detection->detectPath('test.jpg/foo.png'));
- $this->assertEquals('application/octet-stream', $this->detection->detectPath('.png'));
- $this->assertEquals('application/octet-stream', $this->detection->detectPath('..hidden'));
- $this->assertEquals('application/octet-stream', $this->detection->detectPath('foo'));
- $this->assertEquals('application/octet-stream', $this->detection->detectPath(''));
- $this->assertEquals('image/png', $this->detection->detectPath('foo.png.ocTransferId123456789.part'));
- $this->assertEquals('image/png', $this->detection->detectPath('foo.png.v1234567890'));
+ public function dataGetSecureMimeType(): array {
+ return [
+ ['image/svg+xml', 'text/plain'],
+ ['image/png', 'image/png'],
+ ];
}
- public function testDetectString() {
- $result = $this->detection->detectString("/data/data.tar.gz");
- $expected = 'text/plain';
- $this->assertEquals($expected, $result);
+ /**
+ * @dataProvider dataGetSecureMimeType
+ *
+ * @param string $mimeType
+ * @param string $expected
+ */
+ public function testGetSecureMimeType(string $mimeType, string $expected): void {
+ $this->assertEquals($expected, $this->detection->getSecureMimeType($mimeType));
}
public function testMimeTypeIcon() {