nextcloud-custom-apps-face-.../git_facerecognition/tests/Unit/Helper/TempImageTest.php
2024-09-03 09:12:12 +05:00

96 lines
3.0 KiB
PHP

<?php
/**
* @copyright Copyright (c) 2020, Matias De lellis <mati86dl@gmail.com>
* @copyright Copyright (c) 2018, Branko Kokanovic <branko@kokanovic.org>
*
* @author Branko Kokanovic <branko@kokanovic.org>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\FaceRecognition\Tests\Unit;
use OCP\Image as OCP_Image;
use OCA\FaceRecognition\Helper\TempImage;
use Test\TestCase;
class TempImageTest extends TestCase {
private $testImage = null;
/**
* {@inheritDoc}
*/
public function setUp(): void {
$this->testFile = \OC::$SERVERROOT . '/apps/facerecognition/tests/assets/lenna.jpg';
}
public function testImageTest() {
// Try an tempImage that not need change
$tempImage = new TempImage($this->testFile,
'image/png',
158*158,
100);
$this->assertFalse($tempImage->getSkipped());
$this->assertEquals(1, $tempImage->getRatio());
$tempPath = $tempImage->getTempPath();
$this->assertTrue(file_exists($tempPath));
$image = new OCP_Image();
$image->loadFromFile($tempPath);
$this->assertEquals(158, imagesx($image->resource()));
$this->assertEquals(158, imagesy($image->resource()));
$tempImage->clean();
$this->assertFalse(file_exists($tempPath));
// Try image with double scaling up
$tempImage = new TempImage($this->testFile,
'image/png',
158*158*4,
100);
$this->assertFalse($tempImage->getSkipped());
$this->assertEquals(1/2, $tempImage->getRatio());
$tempPath = $tempImage->getTempPath();
$this->assertTrue(file_exists($tempPath));
$image = new OCP_Image();
$image->loadFromFile($tempPath);
$this->assertEquals(158*2, imagesx($image->resource()));
$this->assertEquals(158*2, imagesy($image->resource()));
$tempImage->clean();
$this->assertFalse(file_exists($tempPath));
// Try a file smaller than the minimum
$tempImage = new TempImage($this->testFile,
'image/png',
640*480,
500);
$this->assertTrue($tempImage->getSkipped());
$this->assertEquals(-1.0, $tempImage->getRatio());
$this->assertEquals(158, imagesx($tempImage->resource()));
$this->assertEquals(158, imagesy($tempImage->resource()));
}
}