Test cases for MediaFile::getUploadedFileType() with OpenOffice, MS Office, and PDF sample files (as saved from OpenOffice 3.2)

Only 3 of 16 cases pass on my dev box with default config. Ouch!
This commit is contained in:
Brion Vibber 2010-05-10 15:32:02 -07:00
parent ef7e85c0ab
commit 41d81b996f
18 changed files with 93 additions and 0 deletions

77
tests/MediaFileTest.php Normal file
View File

@ -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"),
);
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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 }