diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/tests/phpunit/includes/media/DjVuTest.php |
first commit
Diffstat (limited to 'www/wiki/tests/phpunit/includes/media/DjVuTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/media/DjVuTest.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/media/DjVuTest.php b/www/wiki/tests/phpunit/includes/media/DjVuTest.php new file mode 100644 index 00000000..dbc0d2fb --- /dev/null +++ b/www/wiki/tests/phpunit/includes/media/DjVuTest.php @@ -0,0 +1,69 @@ +<?php +/** + * @group Media + * @covers DjVuHandler + */ +class DjVuTest extends MediaWikiMediaTestCase { + + /** + * @var DjVuHandler + */ + protected $handler; + + protected function setUp() { + parent::setUp(); + + // cli tool setup + $djvuSupport = new DjVuSupport(); + + if ( !$djvuSupport->isEnabled() ) { + $this->markTestSkipped( + 'This test needs the installation of the ddjvu, djvutoxml and djvudump tools' ); + } + + $this->handler = new DjVuHandler(); + } + + public function testGetImageSize() { + $this->assertArrayEquals( + [ 2480, 3508, 'DjVu', 'width="2480" height="3508"' ], + $this->handler->getImageSize( null, $this->filePath . '/LoremIpsum.djvu' ), + 'Test file LoremIpsum.djvu should have a size of 2480 * 3508' + ); + } + + public function testInvalidFile() { + $this->assertEquals( + 'a:1:{s:5:"error";s:25:"Error extracting metadata";}', + $this->handler->getMetadata( null, $this->filePath . '/some-nonexistent-file' ), + 'Getting metadata for an inexistent file should return false' + ); + } + + public function testPageCount() { + $file = $this->dataFile( 'LoremIpsum.djvu', 'image/x.djvu' ); + $this->assertEquals( + 5, + $this->handler->pageCount( $file ), + 'Test file LoremIpsum.djvu should be detected as containing 5 pages' + ); + } + + public function testGetPageDimensions() { + $file = $this->dataFile( 'LoremIpsum.djvu', 'image/x.djvu' ); + $this->assertArrayEquals( + [ 2480, 3508 ], + $this->handler->getPageDimensions( $file, 1 ), + 'Page 1 of test file LoremIpsum.djvu should have a size of 2480 * 3508' + ); + } + + public function testGetPageText() { + $file = $this->dataFile( 'LoremIpsum.djvu', 'image/x.djvu' ); + $this->assertEquals( + "Lorem ipsum \n1 \n", + (string)$this->handler->getPageText( $file, 1 ), + "Text layer of page 1 of file LoremIpsum.djvu should be 'Lorem ipsum \n1 \n'" + ); + } +} |