Move media type icon preview creation to its own method
This commit is contained in:
parent
13617a0475
commit
8193e1d7c1
2 changed files with 46 additions and 4 deletions
|
@ -703,10 +703,7 @@ class Preview {
|
|||
|
||||
// We still don't have a preview, so we send back the mime icon
|
||||
if (is_null($this->preview)) {
|
||||
$this->preview = new \OC_Image();
|
||||
$mimeIconWebPath = \OC_Helper::mimetypeIcon($this->mimeType);
|
||||
$mimeIconServerPath = str_replace(\OC::$WEBROOT, \OC::$SERVERROOT, $mimeIconWebPath);
|
||||
$this->preview->loadFromFile($mimeIconServerPath);
|
||||
$this->getMimeIcon();
|
||||
}
|
||||
|
||||
return $this->preview;
|
||||
|
@ -1094,6 +1091,30 @@ class Preview {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a mime icon preview of the asked dimensions
|
||||
*
|
||||
* This will paste the mime icon in the middle of an empty preview of the asked dimension
|
||||
*/
|
||||
private function getMimeIcon() {
|
||||
$image = new \OC_Image();
|
||||
$mimeIconWebPath = \OC_Helper::mimetypeIcon($this->mimeType);
|
||||
if (empty(\OC::$WEBROOT)) {
|
||||
$mimeIconServerPath = \OC::$SERVERROOT . $mimeIconWebPath;
|
||||
} else {
|
||||
$mimeIconServerPath = str_replace(\OC::$WEBROOT, \OC::$SERVERROOT, $mimeIconWebPath);
|
||||
}
|
||||
$image->loadFromFile($mimeIconServerPath);
|
||||
|
||||
$previewWidth = (int)$image->width();
|
||||
$previewHeight = (int)$image->height();
|
||||
$askedWidth = $this->getMaxX();
|
||||
$askedHeight = $this->getMaxY();
|
||||
$this->cropAndFill(
|
||||
$image, $askedWidth, $askedHeight, $previewWidth, $previewHeight
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores the max preview in the cache
|
||||
*
|
||||
|
|
|
@ -209,6 +209,27 @@ class Preview extends TestCase {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests if the media type icon fits into the asked dimensions
|
||||
*/
|
||||
public function testIsMimePreviewTheRightSize() {
|
||||
$width = 400;
|
||||
$height = 200;
|
||||
|
||||
// Previews for odt files are not enabled
|
||||
$imgData = file_get_contents(\OC::$SERVERROOT . '/tests/data/testimage.odt');
|
||||
$imgPath = '/' . self::TEST_PREVIEW_USER1 . '/files/testimage.odt';
|
||||
$this->rootView->file_put_contents($imgPath, $imgData);
|
||||
|
||||
$preview =
|
||||
new \OC\Preview(self::TEST_PREVIEW_USER1, 'files/', 'testimage.odt', $width, $height);
|
||||
$preview->getPreview();
|
||||
$image = $preview->getPreview();
|
||||
|
||||
$this->assertSame($width, $image->width());
|
||||
$this->assertSame($height, $image->height());
|
||||
}
|
||||
|
||||
/**
|
||||
* We generate the data to use as it makes it easier to adjust in case we need to test
|
||||
* something different
|
||||
|
|
Loading…
Reference in a new issue