Skip to content
Snippets Groups Projects
Commit 9ba0edca authored by Andreas Fischer's avatar Andreas Fischer
Browse files

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
parents a7929477 c5bcefe4
Branches
No related tags found
No related merge requests found
......@@ -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);
......
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
\ No newline at end of file
BEGIN:VCARD
VERSION:3.0
PRODID:-//some random contact software//EN
N:def;abc;;;
FN:abc def
END:VCARD
\ No newline at end of file
......@@ -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;
}
}
\ No newline at end of file
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment