ExifTest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * @group Media
  4. * @covers Exif
  5. */
  6. class ExifTest extends MediaWikiTestCase {
  7. /** @var string */
  8. protected $mediaPath;
  9. protected function setUp() {
  10. parent::setUp();
  11. $this->checkPHPExtension( 'exif' );
  12. $this->mediaPath = __DIR__ . '/../../data/media/';
  13. $this->setMwGlobals( 'wgShowEXIF', true );
  14. }
  15. public function testGPSExtraction() {
  16. $filename = $this->mediaPath . 'exif-gps.jpg';
  17. $seg = JpegMetadataExtractor::segmentSplitter( $filename );
  18. $exif = new Exif( $filename, $seg['byteOrder'] );
  19. $data = $exif->getFilteredData();
  20. $expected = [
  21. 'GPSLatitude' => 88.5180555556,
  22. 'GPSLongitude' => -21.12357,
  23. 'GPSAltitude' => -3.141592653,
  24. 'GPSDOP' => '5/1',
  25. 'GPSVersionID' => '2.2.0.0',
  26. ];
  27. $this->assertEquals( $expected, $data, '', 0.0000000001 );
  28. }
  29. public function testUnicodeUserComment() {
  30. $filename = $this->mediaPath . 'exif-user-comment.jpg';
  31. $seg = JpegMetadataExtractor::segmentSplitter( $filename );
  32. $exif = new Exif( $filename, $seg['byteOrder'] );
  33. $data = $exif->getFilteredData();
  34. $expected = [
  35. 'UserComment' => 'test⁔comment',
  36. ];
  37. $this->assertEquals( $expected, $data );
  38. }
  39. }