]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - tests/phpunit/includes/media/ExifTest.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / tests / phpunit / includes / media / ExifTest.php
diff --git a/tests/phpunit/includes/media/ExifTest.php b/tests/phpunit/includes/media/ExifTest.php
new file mode 100644 (file)
index 0000000..876e461
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * @group Media
+ * @covers Exif
+ */
+class ExifTest extends MediaWikiTestCase {
+
+       /** @var string */
+       protected $mediaPath;
+
+       protected function setUp() {
+               parent::setUp();
+               $this->checkPHPExtension( 'exif' );
+
+               $this->mediaPath = __DIR__ . '/../../data/media/';
+
+               $this->setMwGlobals( 'wgShowEXIF', true );
+       }
+
+       public function testGPSExtraction() {
+               $filename = $this->mediaPath . 'exif-gps.jpg';
+               $seg = JpegMetadataExtractor::segmentSplitter( $filename );
+               $exif = new Exif( $filename, $seg['byteOrder'] );
+               $data = $exif->getFilteredData();
+               $expected = [
+                       'GPSLatitude' => 88.5180555556,
+                       'GPSLongitude' => -21.12357,
+                       'GPSAltitude' => -3.141592653,
+                       'GPSDOP' => '5/1',
+                       'GPSVersionID' => '2.2.0.0',
+               ];
+               $this->assertEquals( $expected, $data, '', 0.0000000001 );
+       }
+
+       public function testUnicodeUserComment() {
+               $filename = $this->mediaPath . 'exif-user-comment.jpg';
+               $seg = JpegMetadataExtractor::segmentSplitter( $filename );
+               $exif = new Exif( $filename, $seg['byteOrder'] );
+               $data = $exif->getFilteredData();
+
+               $expected = [
+                       'UserComment' => 'test⁔comment',
+               ];
+               $this->assertEquals( $expected, $data );
+       }
+}