]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Test cases for MediaFile::getUploadedFileType() with OpenOffice, MS Office, and PDF...
authorBrion Vibber <brion@pobox.com>
Mon, 10 May 2010 22:32:02 +0000 (15:32 -0700)
committerBrion Vibber <brion@pobox.com>
Mon, 28 Jun 2010 15:59:46 +0000 (08:59 -0700)
Only 3 of 16 cases pass on my dev box with default config. Ouch!

18 files changed:
tests/MediaFileTest.php [new file with mode: 0644]
tests/sample-uploads/office.pdf [new file with mode: 0644]
tests/sample-uploads/presentation.odp [new file with mode: 0644]
tests/sample-uploads/presentation.otp [new file with mode: 0644]
tests/sample-uploads/presentation.pot [new file with mode: 0644]
tests/sample-uploads/presentation.potm [new file with mode: 0644]
tests/sample-uploads/presentation.ppt [new file with mode: 0644]
tests/sample-uploads/presentation.pptx [new file with mode: 0644]
tests/sample-uploads/spreadsheet.ods [new file with mode: 0644]
tests/sample-uploads/spreadsheet.ots [new file with mode: 0644]
tests/sample-uploads/spreadsheet.xls [new file with mode: 0644]
tests/sample-uploads/spreadsheet.xlsx [new file with mode: 0644]
tests/sample-uploads/spreadsheet.xlt [new file with mode: 0644]
tests/sample-uploads/wordproc.doc [new file with mode: 0644]
tests/sample-uploads/wordproc.docx [new file with mode: 0644]
tests/sample-uploads/wordproc.odt [new file with mode: 0644]
tests/sample-uploads/wordproc.ott [new file with mode: 0644]
tests/sample-uploads/wordproc.rtf [new file with mode: 0644]

diff --git a/tests/MediaFileTest.php b/tests/MediaFileTest.php
new file mode 100644 (file)
index 0000000..6fe9956
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+
+if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
+    print "This script must be run from the command line\n";
+    exit();
+}
+
+define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
+define('STATUSNET', true);
+define('LACONICA', true);
+
+require_once INSTALLDIR . '/lib/common.php';
+
+class MediaFileTest extends PHPUnit_Framework_TestCase
+{
+
+    public function setup()
+    {
+        $this->old_attachments_supported = common_config('attachments', 'supported');
+        $GLOBALS['config']['attachments']['supported'] = true;
+    }
+
+    public function tearDown()
+    {
+        $GLOBALS['config']['attachments']['supported'] = $this->old_attachments_supported;
+    }
+
+    /**
+     * @dataProvider fileTypeCases
+     *
+     */
+    public function testFileType($filename, $expectedType)
+    {
+        if (!file_exists($filename)) {
+            throw new Exception("WTF? $filename test file missing");
+        }
+        $this->assertEquals($expectedType, MediaFile::getUploadedFileType($filename));
+    }
+
+    static public function fileTypeCases()
+    {
+        $base = dirname(__FILE__);
+        $dir = "$base/sample-uploads";
+        return array(
+            array("$dir/office.pdf", "application/pdf"),
+            
+            array("$dir/wordproc.odt", "application/vnd.oasis.opendocument.text"),
+            array("$dir/wordproc.ott", "application/vnd.oasis.opendocument.text-template"),
+            array("$dir/wordproc.doc", "application/msword"),
+            array("$dir/wordproc.docx",
+                "application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
+            array("$dir/wordproc.rtf", "text/rtf"),
+            
+            array("$dir/spreadsheet.ods",
+                "application/vnd.oasis.opendocument.spreadsheet"),
+            array("$dir/spreadsheet.ots",
+                "application/vnd.oasis.opendocument.spreadsheet-template"),
+            array("$dir/spreadsheet.xls", "application/vnd.ms-excel"),
+            array("$dir/spreadsheet.xlt", "application/vnd.ms-excel"),
+            array("$dir/spreadsheet.xlsx",
+                "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
+            
+            array("$dir/presentation.odp",
+                "application/vnd.oasis-opendocument.presentation"),
+            array("$dir/presentation.otp",
+                "application/vnd.oasis-opendocument.presentation-template"),
+            array("$dir/presentation.ppt",
+                "application/vnd.ms-powerpoint"),
+            array("$dir/presentation.pot",
+                "application/vnd.ms-powerpoint"),
+            array("$dir/presentation.pptx",
+                "application/vnd.openxmlformats-officedocument.presentationml.presentation"),
+        );
+    }
+
+}
+
diff --git a/tests/sample-uploads/office.pdf b/tests/sample-uploads/office.pdf
new file mode 100644 (file)
index 0000000..670bc23
Binary files /dev/null and b/tests/sample-uploads/office.pdf differ
diff --git a/tests/sample-uploads/presentation.odp b/tests/sample-uploads/presentation.odp
new file mode 100644 (file)
index 0000000..8dd3a42
Binary files /dev/null and b/tests/sample-uploads/presentation.odp differ
diff --git a/tests/sample-uploads/presentation.otp b/tests/sample-uploads/presentation.otp
new file mode 100644 (file)
index 0000000..1927ee7
Binary files /dev/null and b/tests/sample-uploads/presentation.otp differ
diff --git a/tests/sample-uploads/presentation.pot b/tests/sample-uploads/presentation.pot
new file mode 100644 (file)
index 0000000..f5124ff
Binary files /dev/null and b/tests/sample-uploads/presentation.pot differ
diff --git a/tests/sample-uploads/presentation.potm b/tests/sample-uploads/presentation.potm
new file mode 100644 (file)
index 0000000..ade1bcb
Binary files /dev/null and b/tests/sample-uploads/presentation.potm differ
diff --git a/tests/sample-uploads/presentation.ppt b/tests/sample-uploads/presentation.ppt
new file mode 100644 (file)
index 0000000..f5124ff
Binary files /dev/null and b/tests/sample-uploads/presentation.ppt differ
diff --git a/tests/sample-uploads/presentation.pptx b/tests/sample-uploads/presentation.pptx
new file mode 100644 (file)
index 0000000..21ea61a
Binary files /dev/null and b/tests/sample-uploads/presentation.pptx differ
diff --git a/tests/sample-uploads/spreadsheet.ods b/tests/sample-uploads/spreadsheet.ods
new file mode 100644 (file)
index 0000000..7b43e75
Binary files /dev/null and b/tests/sample-uploads/spreadsheet.ods differ
diff --git a/tests/sample-uploads/spreadsheet.ots b/tests/sample-uploads/spreadsheet.ots
new file mode 100644 (file)
index 0000000..5f830e6
Binary files /dev/null and b/tests/sample-uploads/spreadsheet.ots differ
diff --git a/tests/sample-uploads/spreadsheet.xls b/tests/sample-uploads/spreadsheet.xls
new file mode 100644 (file)
index 0000000..2d470e6
Binary files /dev/null and b/tests/sample-uploads/spreadsheet.xls differ
diff --git a/tests/sample-uploads/spreadsheet.xlsx b/tests/sample-uploads/spreadsheet.xlsx
new file mode 100644 (file)
index 0000000..b97a551
Binary files /dev/null and b/tests/sample-uploads/spreadsheet.xlsx differ
diff --git a/tests/sample-uploads/spreadsheet.xlt b/tests/sample-uploads/spreadsheet.xlt
new file mode 100644 (file)
index 0000000..980423b
Binary files /dev/null and b/tests/sample-uploads/spreadsheet.xlt differ
diff --git a/tests/sample-uploads/wordproc.doc b/tests/sample-uploads/wordproc.doc
new file mode 100644 (file)
index 0000000..81c5e34
Binary files /dev/null and b/tests/sample-uploads/wordproc.doc differ
diff --git a/tests/sample-uploads/wordproc.docx b/tests/sample-uploads/wordproc.docx
new file mode 100644 (file)
index 0000000..04ea3c3
Binary files /dev/null and b/tests/sample-uploads/wordproc.docx differ
diff --git a/tests/sample-uploads/wordproc.odt b/tests/sample-uploads/wordproc.odt
new file mode 100644 (file)
index 0000000..fa6fe5e
Binary files /dev/null and b/tests/sample-uploads/wordproc.odt differ
diff --git a/tests/sample-uploads/wordproc.ott b/tests/sample-uploads/wordproc.ott
new file mode 100644 (file)
index 0000000..99ca8c0
Binary files /dev/null and b/tests/sample-uploads/wordproc.ott differ
diff --git a/tests/sample-uploads/wordproc.rtf b/tests/sample-uploads/wordproc.rtf
new file mode 100644 (file)
index 0000000..aad2c46
--- /dev/null
@@ -0,0 +1,16 @@
+{\rtf1\ansi\deff0\adeflang1025
+{\fonttbl{\f0\froman\fprq2\fcharset128 Times New Roman;}{\f1\froman\fprq2\fcharset128 Times New Roman;}{\f2\fswiss\fprq2\fcharset128 Arial;}{\f3\fnil\fprq2\fcharset128 DejaVu Sans;}}
+{\colortbl;\red0\green0\blue0;\red128\green128\blue128;}
+{\stylesheet{\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033\snext1 Normal;}
+{\s2\sb240\sa120\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\afs28\lang1081\ltrch\dbch\langfe2052\hich\f2\fs28\lang1033\loch\f2\fs28\lang1033\sbasedon1\snext3 Heading;}
+{\s3\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033\sbasedon1\snext3 Body Text;}
+{\s4\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033\sbasedon3\snext4 List;}
+{\s5\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ai\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang1033\i\loch\f0\fs24\lang1033\i\sbasedon1\snext5 caption;}
+{\s6\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033\sbasedon1\snext6 Index;}
+}
+{\info{\author Brion }{\creatim\yr2010\mo5\dy10\hr15\min2}{\revtim\yr0\mo0\dy0\hr0\min0}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3200}}\deftab709
+{\*\pgdsctbl
+{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\pgdscnxt0 Standard;}}
+\paperh15840\paperw12240\margl1134\margr1134\margt1134\margb1134\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn1134\margtsxn1134\margbsxn1134\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
+\pard\plain \ltrpar\s1\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af3\afs24\lang1081\ltrch\dbch\af3\langfe2052\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 
+\par }
\ No newline at end of file