aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--include/attach.php6
-rw-r--r--tests/upload_test.php29
3 files changed, 33 insertions, 3 deletions
diff --git a/README.md b/README.md
index bd95cd674..b6750480e 100644
--- a/README.md
+++ b/README.md
@@ -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