~ubuntu-branches/ubuntu/trusty/mediawiki/trusty

« back to all changes in this revision

Viewing changes to tests/phpunit/includes/media/ExifBitmapTest.php

  • Committer: Package Import Robot
  • Author(s): Thorsten Glaser
  • Date: 2014-03-28 09:56:29 UTC
  • mfrom: (1.3.14)
  • Revision ID: package-import@ubuntu.com-20140328095629-1526y9tchdd507id
Tags: 1:1.19.14+dfsg-1
* New upstream security fix release (Closes: #742857):
  - (bug 62497) SECURITY: Add CSRF token on Special:ChangePassword
  - (bug 62467) Set a title for the context during import on the cli
* Use upstream-provided signing key bundle

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
class ExifBitmapTest extends MediaWikiTestCase {
 
4
 
 
5
        public function setUp() {
 
6
                global $wgShowEXIF;
 
7
                $this->showExif = $wgShowEXIF;
 
8
                $wgShowEXIF = true;
 
9
                $this->handler = new ExifBitmapHandler;
 
10
                if ( !wfDl( 'exif' ) ) {
 
11
                        $this->markTestSkipped( "This test needs the exif extension." );
 
12
                }
 
13
        }
 
14
 
 
15
        public function tearDown() {
 
16
                global $wgShowEXIF;
 
17
                $wgShowEXIF = $this->showExif;
 
18
        }
 
19
 
 
20
        public function testIsOldBroken() {
 
21
                $res = $this->handler->isMetadataValid( null, ExifBitmapHandler::OLD_BROKEN_FILE );
 
22
                $this->assertEquals( ExifBitmapHandler::METADATA_COMPATIBLE, $res );
 
23
        }
 
24
        public function testIsBrokenFile() {
 
25
                $res = $this->handler->isMetadataValid( null, ExifBitmapHandler::BROKEN_FILE );
 
26
                $this->assertEquals( ExifBitmapHandler::METADATA_GOOD, $res );
 
27
        }
 
28
        public function testIsInvalid() {
 
29
                $res = $this->handler->isMetadataValid( null, 'Something Invalid Here.' );
 
30
                $this->assertEquals( ExifBitmapHandler::METADATA_BAD, $res );
 
31
        }
 
32
        public function testGoodMetadata() {
 
33
                $meta = 'a:16:{s:10:"ImageWidth";i:20;s:11:"ImageLength";i:20;s:13:"BitsPerSample";a:3:{i:0;i:8;i:1;i:8;i:2;i:8;}s:11:"Compression";i:5;s:25:"PhotometricInterpretation";i:2;s:16:"ImageDescription";s:17:"Created with GIMP";s:12:"StripOffsets";i:8;s:11:"Orientation";i:1;s:15:"SamplesPerPixel";i:3;s:12:"RowsPerStrip";i:64;s:15:"StripByteCounts";i:238;s:11:"XResolution";s:19:"1207959552/16777216";s:11:"YResolution";s:19:"1207959552/16777216";s:19:"PlanarConfiguration";i:1;s:14:"ResolutionUnit";i:2;s:22:"MEDIAWIKI_EXIF_VERSION";i:2;}';
 
34
                $res = $this->handler->isMetadataValid( null, $meta );
 
35
                $this->assertEquals( ExifBitmapHandler::METADATA_GOOD, $res );
 
36
        }
 
37
        public function testIsOldGood() {
 
38
                $meta = 'a:16:{s:10:"ImageWidth";i:20;s:11:"ImageLength";i:20;s:13:"BitsPerSample";a:3:{i:0;i:8;i:1;i:8;i:2;i:8;}s:11:"Compression";i:5;s:25:"PhotometricInterpretation";i:2;s:16:"ImageDescription";s:17:"Created with GIMP";s:12:"StripOffsets";i:8;s:11:"Orientation";i:1;s:15:"SamplesPerPixel";i:3;s:12:"RowsPerStrip";i:64;s:15:"StripByteCounts";i:238;s:11:"XResolution";s:19:"1207959552/16777216";s:11:"YResolution";s:19:"1207959552/16777216";s:19:"PlanarConfiguration";i:1;s:14:"ResolutionUnit";i:2;s:22:"MEDIAWIKI_EXIF_VERSION";i:1;}';
 
39
                $res = $this->handler->isMetadataValid( null, $meta );
 
40
                $this->assertEquals( ExifBitmapHandler::METADATA_COMPATIBLE, $res );
 
41
        }
 
42
        // Handle metadata from paged tiff handler (gotten via instant commons)
 
43
        // gracefully.
 
44
        public function testPagedTiffHandledGracefully() {
 
45
                $meta = 'a:6:{s:9:"page_data";a:1:{i:1;a:5:{s:5:"width";i:643;s:6:"height";i:448;s:5:"alpha";s:4:"true";s:4:"page";i:1;s:6:"pixels";i:288064;}}s:10:"page_count";i:1;s:10:"first_page";i:1;s:9:"last_page";i:1;s:4:"exif";a:9:{s:10:"ImageWidth";i:643;s:11:"ImageLength";i:448;s:11:"Compression";i:5;s:25:"PhotometricInterpretation";i:2;s:11:"Orientation";i:1;s:15:"SamplesPerPixel";i:4;s:12:"RowsPerStrip";i:50;s:19:"PlanarConfiguration";i:1;s:22:"MEDIAWIKI_EXIF_VERSION";i:1;}s:21:"TIFF_METADATA_VERSION";s:3:"1.4";}';
 
46
                $res = $this->handler->isMetadataValid( null, $meta );
 
47
                $this->assertEquals( ExifBitmapHandler::METADATA_BAD, $res );
 
48
        }
 
49
 
 
50
        function testConvertMetadataLatest() {
 
51
                $metadata = array(
 
52
                                'foo' => array( 'First', 'Second', '_type' => 'ol' ),
 
53
                                'MEDIAWIKI_EXIF_VERSION' => 2
 
54
                         );
 
55
                $res = $this->handler->convertMetadataVersion( $metadata, 2 );
 
56
                $this->assertEquals( $metadata, $res );
 
57
        }
 
58
        function testConvertMetadataToOld() {
 
59
                $metadata = array(
 
60
                        'foo' => array( 'First', 'Second', '_type' => 'ol' ),
 
61
                        'bar' => array( 'First', 'Second', '_type' => 'ul' ),
 
62
                        'baz' => array( 'First', 'Second' ),
 
63
                        'fred' => 'Single',
 
64
                        'MEDIAWIKI_EXIF_VERSION' => 2,
 
65
                );
 
66
                $expected = array(
 
67
                        'foo' => "\n#First\n#Second",
 
68
                        'bar' => "\n*First\n*Second",
 
69
                        'baz' => "\n*First\n*Second",
 
70
                        'fred' => 'Single',
 
71
                        'MEDIAWIKI_EXIF_VERSION' => 1,
 
72
                );
 
73
                $res = $this->handler->convertMetadataVersion( $metadata, 1 );
 
74
                $this->assertEquals( $expected, $res );
 
75
        }
 
76
        function testConvertMetadataSoftware() {
 
77
                $metadata = array(
 
78
                        'Software' => array( array('GIMP', '1.1' ) ),
 
79
                        'MEDIAWIKI_EXIF_VERSION' => 2,
 
80
                );
 
81
                $expected = array(
 
82
                        'Software' => 'GIMP (Version 1.1)',
 
83
                        'MEDIAWIKI_EXIF_VERSION' => 1,
 
84
                );
 
85
                $res = $this->handler->convertMetadataVersion( $metadata, 1 );
 
86
                $this->assertEquals( $expected, $res );
 
87
        }
 
88
        function testConvertMetadataSoftwareNormal() {
 
89
                $metadata = array(
 
90
                        'Software' => array( "GIMP 1.2", "vim" ),
 
91
                        'MEDIAWIKI_EXIF_VERSION' => 2,
 
92
                );
 
93
                $expected = array(
 
94
                        'Software' => "\n*GIMP 1.2\n*vim",
 
95
                        'MEDIAWIKI_EXIF_VERSION' => 1,
 
96
                );
 
97
                $res = $this->handler->convertMetadataVersion( $metadata, 1 );
 
98
                $this->assertEquals( $expected, $res );
 
99
        }
 
100
}