diff options
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | include/attach.php | 6 | ||||
-rw-r--r-- | tests/upload_test.php | 29 |
3 files changed, 33 insertions, 3 deletions
@@ -6,6 +6,7 @@ Hubzilla - Community Server Help us redefine the web - using integrated and united community websites. -------------------------------------------------------------------------- +[![Build Status](https://travis-ci.org/redmatrix/hubzilla.svg)](https://travis-ci.org/redmatrix/hubzilla) **What are Hubs?** diff --git a/include/attach.php b/include/attach.php index a959a5bcb..1bba88c63 100644 --- a/include/attach.php +++ b/include/attach.php @@ -108,9 +108,9 @@ function z_mime_content_type($filename) { 'oth' => 'application/vnd.oasis.opendocument.text-web' ); - $dot = strpos($filename, '.'); - if ($dot !== false) { - $ext = strtolower(substr($filename, $dot + 1)); + $last_dot = strrpos($filename, '.'); + if ($last_dot !== false) { + $ext = strtolower(substr($filename, $last_dot + 1)); if (array_key_exists($ext, $mime_types)) { return $mime_types[$ext]; } diff --git a/tests/upload_test.php b/tests/upload_test.php new file mode 100644 index 000000000..031315fba --- /dev/null +++ b/tests/upload_test.php @@ -0,0 +1,29 @@ +<?php +/** + * this file contains tests for the uploader + * + * @package test.util + */ + +/** required, it is the file under test */ +require_once('include/attach.php'); + +/** + * TestCase for the uploader + * + * @author ken restivo + * @package test.util + */ +class UploadTest extends PHPUnit_Framework_TestCase { + public function testFileNameMutipleDots() { + $multidots = "foo.bar.baz.0.1.3.ogg"; + $this->assertEquals("audio/ogg", z_mime_content_type($multidots)); + $this->assertNotEquals("application/octet-stream", z_mime_content_type($multidots)); + } + + public function testFileNameOneDot() { + $multidots = "foo.ogg"; + $this->assertEquals("audio/ogg", z_mime_content_type($multidots)); + $this->assertNotEquals("application/octet-stream", z_mime_content_type($multidots)); + } +}
\ No newline at end of file |