Merge pull request #4966 from owncloud/text_preview_blacklist
add blacklist to txt preview backend * owncloud/text_preview_blacklist: rename variable in testIsTransparent rename testTxtBlacklist to txtBlacklist move fileView object initialization to testIsTransparent use dataProvider for txt blacklist test add test for txt blacklist add test data for cal and contact preview add blacklist to txt preview backend
This commit is contained in:
commit
9ba0edcadb
|
@ -9,11 +9,21 @@ namespace OC\Preview;
|
|||
|
||||
class TXT extends Provider {
|
||||
|
||||
private static $blacklist = array(
|
||||
'text/calendar',
|
||||
'text/vcard',
|
||||
);
|
||||
|
||||
public function getMimeType() {
|
||||
return '/text\/.*/';
|
||||
}
|
||||
|
||||
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
|
||||
$mimetype = $fileview->getMimeType($path);
|
||||
if(in_array($mimetype, self::$blacklist)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$content = $fileview->fopen($path, 'r');
|
||||
$content = stream_get_contents($content);
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
BEGIN:VCALENDAR
|
||||
PRODID:-//some random cal software//EN
|
||||
VERSION:2.0
|
||||
BEGIN:VEVENT
|
||||
CREATED:20130102T120000Z
|
||||
LAST-MODIFIED:20130102T120000Z
|
||||
DTSTAMP:20130102T120000Z
|
||||
UID:f106ecdf-c716-43ef-9d94-4e6f19f2fcfb
|
||||
SUMMARY:a test cal file
|
||||
DTSTART;VALUE=DATE:20130101
|
||||
DTEND;VALUE=DATE:20130102
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
|
@ -0,0 +1,6 @@
|
|||
BEGIN:VCARD
|
||||
VERSION:3.0
|
||||
PRODID:-//some random contact software//EN
|
||||
N:def;abc;;;
|
||||
FN:abc def
|
||||
END:VCARD
|
|
@ -92,6 +92,47 @@ class Preview extends \PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals($image->height(), $maxY);
|
||||
}
|
||||
|
||||
public function txtBlacklist() {
|
||||
$txt = 'random text file';
|
||||
$ics = file_get_contents(__DIR__ . '/../data/testcal.ics');
|
||||
$vcf = file_get_contents(__DIR__ . '/../data/testcontact.vcf');
|
||||
|
||||
return array(
|
||||
array('txt', $txt, false),
|
||||
array('ics', $ics, true),
|
||||
array('vcf', $vcf, true),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider txtBlacklist
|
||||
*/
|
||||
public function testIsTransparent($extension, $data, $expectedResult) {
|
||||
$user = $this->initFS();
|
||||
|
||||
$rootView = new \OC\Files\View('');
|
||||
$rootView->mkdir('/'.$user);
|
||||
$rootView->mkdir('/'.$user.'/files');
|
||||
|
||||
$x = 32;
|
||||
$y = 32;
|
||||
|
||||
$sample = '/'.$user.'/files/test.'.$extension;
|
||||
$rootView->file_put_contents($sample, $data);
|
||||
$preview = new \OC\Preview($user, 'files/', 'test.'.$extension, $x, $y);
|
||||
$image = $preview->getPreview();
|
||||
$resource = $image->resource();
|
||||
|
||||
//http://stackoverflow.com/questions/5702953/imagecolorat-and-transparency
|
||||
$colorIndex = imagecolorat($resource, 1, 1);
|
||||
$colorInfo = imagecolorsforindex($resource, $colorIndex);
|
||||
$this->assertEquals(
|
||||
$expectedResult,
|
||||
$colorInfo['alpha'] === 127,
|
||||
'Failed asserting that only previews for text files are transparent.'
|
||||
);
|
||||
}
|
||||
|
||||
private function initFS() {
|
||||
if(\OC\Files\Filesystem::getView()){
|
||||
$user = \OC_User::getUser();
|
||||
|
@ -105,4 +146,4 @@ class Preview extends \PHPUnit_Framework_TestCase {
|
|||
|
||||
return $user;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue