Update the unit test to dataProviders

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2019-12-04 22:32:54 +01:00
parent 4a151c545a
commit 6ad7e75708
No known key found for this signature in database
GPG Key ID: 7076EA9751AACDDA
1 changed files with 82 additions and 47 deletions

View File

@ -39,61 +39,96 @@ class DetectionTest extends \Test\TestCase {
);
}
public function testDetect() {
$dir = \OC::$SERVERROOT.'/tests/data';
$result = $this->detection->detect($dir."/");
$expected = 'httpd/unix-directory';
$this->assertEquals($expected, $result);
$result = $this->detection->detect($dir."/data.tar.gz");
$expected = 'application/x-gzip';
$this->assertEquals($expected, $result);
$result = $this->detection->detect($dir."/data.zip");
$expected = 'application/zip';
$this->assertEquals($expected, $result);
$result = $this->detection->detect($dir."/testimagelarge.svg");
$expected = 'image/svg+xml';
$this->assertEquals($expected, $result);
$result = $this->detection->detect($dir."/testimage.png");
$expected = 'image/png';
$this->assertEquals($expected, $result);
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'],
];
}
public function testGetSecureMimeType() {
$result = $this->detection->getSecureMimeType('image/svg+xml');
/**
* @dataProvider dataDetectPath
*
* @param string $path
* @param string $expected
*/
public function testDetectPath(string $path, string $expected): void {
$this->assertEquals($expected, $this->detection->detectPath($path));
}
public function dataDetectContent(): array {
return [
['/', 'httpd/unix-directory'],
['/data.tar.gz', 'application/x-gzip'],
['/data.zip', 'application/zip'],
['/testimage.mp3', 'audio/mpeg'],
['/testimage.png', 'image/png'],
];
}
/**
* @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));
}
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'],
];
}
/**
* @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 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() {