wiki.techinc.nl/tests/phpunit/includes/media/SVGMetadataExtractorTest.php
Brian Wolff a6623f7fac Move the image files used in the media tests from includes/media to data/media as the includes/media
was starting to get crowded with supporting image files.

This changes the following things
*Moves the media files to a different directory
*Changes the references to the files to reference there new locations

2 semi-unrelated changes
*Modify the README file that was basically giving credit for the images where due to explain what the images are for.
*set svn:mime-type to image/svg+xml for the svg files.
2011-08-17 23:28:31 +00:00

88 lines
2.1 KiB
PHP

<?php
class SVGMetadataExtractorTest extends MediaWikiTestCase {
function setUp() {
AutoLoader::loadClass( 'SVGMetadataExtractorTest' );
}
/**
* @dataProvider providerSvgFiles
*/
function testGetMetadata( $infile, $expected ) {
$this->assertMetadata( $infile, $expected );
}
/**
* @dataProvider providerSvgFilesWithXMLMetadata
*/
function testGetXMLMetadata( $infile, $expected ) {
$r = new XMLReader();
if( !method_exists( $r, 'readInnerXML' ) ) {
$this->markTestSkipped( 'XMLReader::readInnerXML() does not exist (libxml >2.6.20 needed).' );
return;
}
$this->assertMetadata( $infile, $expected );
}
function assertMetadata( $infile, $expected ) {
try {
$data = SVGMetadataExtractor::getMetadata( $infile );
$this->assertEquals( $expected, $data, 'SVG metadata extraction test' );
} catch ( MWException $e ) {
if ( $expected === false ) {
$this->assertTrue( true, 'SVG metadata extracted test (expected failure)' );
} else {
throw $e;
}
}
}
function providerSvgFiles() {
$base = dirname( __FILE__ ) . '/../../data/media';
return array(
array(
"$base/Wikimedia-logo.svg",
array(
'width' => 1024,
'height' => 1024
)
),
array(
"$base/QA_icon.svg",
array(
'width' => 60,
'height' => 60
)
),
array(
"$base/Gtk-media-play-ltr.svg",
array(
'width' => 60,
'height' => 60
)
),
);
}
function providerSvgFilesWithXMLMetadata() {
$base = dirname( __FILE__ ) . '/../../data/media';
return array(
array(
"$base/US_states_by_total_state_tax_revenue.svg",
array(
'height' => 593,
'metadata' =>
'<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<ns4:Work xmlns:ns4="http://creativecommons.org/ns#" rdf:about="">
<ns5:format xmlns:ns5="http://purl.org/dc/elements/1.1/">image/svg+xml</ns5:format>
<ns5:type xmlns:ns5="http://purl.org/dc/elements/1.1/" rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
</ns4:Work>
</rdf:RDF>',
'width' => 959
)
),
);
}
}