diff options
author | redmatrix <redmatrix@redmatrix.me> | 2015-10-28 14:02:30 +1100 |
---|---|---|
committer | redmatrix <redmatrix@redmatrix.me> | 2015-10-28 14:02:30 +1100 |
commit | 3bc8d4d0ebd85788f338931af3c4e7a0d07bc9ee (patch) | |
tree | 10b1538f42e1149469e419e4ea34694cbaf3b434 | |
parent | 65587be737e13e611f6e5ba67ee0301c312250b9 (diff) | |
parent | 8083a8658134654e9ad40f58ecd7ff9d0fb12161 (diff) | |
download | volse-hubzilla-3bc8d4d0ebd85788f338931af3c4e7a0d07bc9ee.tar.gz volse-hubzilla-3bc8d4d0ebd85788f338931af3c4e7a0d07bc9ee.tar.bz2 volse-hubzilla-3bc8d4d0ebd85788f338931af3c4e7a0d07bc9ee.zip |
Merge pull request #102 from kenrestivo/upload-fixes
Handle file names with more than one dot.
-rw-r--r-- | include/attach.php | 6 | ||||
-rw-r--r-- | tests/upload_test.php | 29 |
2 files changed, 32 insertions, 3 deletions
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 |