From 2086b8a4076439aa09e45d3d9f272e7d3d4c1bd1 Mon Sep 17 00:00:00 2001 From: Umherirrender Date: Sat, 30 Mar 2019 21:14:52 +0100 Subject: [PATCH] Deprecate wrapper SVGMetadataExtractor::getMetadata Use SVGReader->getMetadata() directly. Also rename the test, because it covers the implementation and not the wrapper. Change-Id: I61565c6aadc6d1c1e942b9bc4555ef4aeb09e5d8 --- RELEASE-NOTES-1.34 | 2 ++ includes/media/SVGMetadataExtractor.php | 10 +++++++++- includes/media/SvgHandler.php | 4 +++- includes/resourceloader/ResourceLoaderImage.php | 3 ++- ...{SVGMetadataExtractorTest.php => SVGReaderTest.php} | 8 +++++--- 5 files changed, 21 insertions(+), 6 deletions(-) rename tests/phpunit/includes/media/{SVGMetadataExtractorTest.php => SVGReaderTest.php} (96%) diff --git a/RELEASE-NOTES-1.34 b/RELEASE-NOTES-1.34 index 2fb6e8c748..16c4639978 100644 --- a/RELEASE-NOTES-1.34 +++ b/RELEASE-NOTES-1.34 @@ -414,6 +414,8 @@ because of Phabricator reports. * The use of $wgProxyList with IP addresses in the array keys, deprecated in 1.30, was removed. Instead, $wgProxyList should be an array with IP addresses as the values, or a string path to a file containing one IP address per line. +* SVGMetadataExtractor::getMetadata has been deprecated. Instead, you should + use SVGReader->getMetadata() directly. === Other changes in 1.34 === * … diff --git a/includes/media/SVGMetadataExtractor.php b/includes/media/SVGMetadataExtractor.php index ac332b75db..6ae64261be 100644 --- a/includes/media/SVGMetadataExtractor.php +++ b/includes/media/SVGMetadataExtractor.php @@ -27,9 +27,17 @@ /** * @ingroup Media + * @deprecated since 1.34 */ class SVGMetadataExtractor { - static function getMetadata( $filename ) { + /** + * @param string $filename + * @return array + * @deprecated since 1.34, use SVGReader->getMetadata() directly + */ + public static function getMetadata( $filename ) { + wfDeprecated( __METHOD__, '1.34' ); + $svg = new SVGReader( $filename ); return $svg->getMetadata(); diff --git a/includes/media/SvgHandler.php b/includes/media/SvgHandler.php index bdda674f0d..639132c116 100644 --- a/includes/media/SvgHandler.php +++ b/includes/media/SvgHandler.php @@ -438,8 +438,10 @@ class SvgHandler extends ImageHandler { */ public function getMetadata( $file, $filename ) { $metadata = [ 'version' => self::SVG_METADATA_VERSION ]; + try { - $metadata += SVGMetadataExtractor::getMetadata( $filename ); + $svgReader = new SVGReader( $filename ); + $metadata += $svgReader->getMetadata(); } catch ( Exception $e ) { // @todo SVG specific exceptions // File not found, broken, etc. $metadata['error'] = [ diff --git a/includes/resourceloader/ResourceLoaderImage.php b/includes/resourceloader/ResourceLoaderImage.php index 900395108b..6497543f56 100644 --- a/includes/resourceloader/ResourceLoaderImage.php +++ b/includes/resourceloader/ResourceLoaderImage.php @@ -437,7 +437,8 @@ class ResourceLoaderImage { file_put_contents( $tempFilenameSvg, $svg ); - $metadata = SVGMetadataExtractor::getMetadata( $tempFilenameSvg ); + $svgReader = new SVGReader( $tempFilenameSvg ); + $metadata = $svgReader->getMetadata(); if ( !isset( $metadata['width'] ) || !isset( $metadata['height'] ) ) { unlink( $tempFilenameSvg ); return false; diff --git a/tests/phpunit/includes/media/SVGMetadataExtractorTest.php b/tests/phpunit/includes/media/SVGReaderTest.php similarity index 96% rename from tests/phpunit/includes/media/SVGMetadataExtractorTest.php rename to tests/phpunit/includes/media/SVGReaderTest.php index c84efa1640..7063a575da 100644 --- a/tests/phpunit/includes/media/SVGMetadataExtractorTest.php +++ b/tests/phpunit/includes/media/SVGReaderTest.php @@ -2,9 +2,9 @@ /** * @group Media - * @covers SVGMetadataExtractor + * @covers SVGReader */ -class SVGMetadataExtractorTest extends \MediaWikiIntegrationTestCase { +class SVGReaderTest extends \MediaWikiIntegrationTestCase { /** * @dataProvider provideSvgFiles @@ -34,7 +34,9 @@ class SVGMetadataExtractorTest extends \MediaWikiIntegrationTestCase { function assertMetadata( $infile, $expected ) { try { - $data = SVGMetadataExtractor::getMetadata( $infile ); + $svgReader = new SVGReader( $infile ); + $data = $svgReader->getMetadata(); + $this->assertEquals( $expected, $data, 'SVG metadata extraction test' ); } catch ( MWException $e ) { if ( $expected === false ) { -- 2.20.1