Store original media dimensions as additional header
[lhc/web/wiklou.git] / tests / phpunit / includes / media / MediaHandlerTest.php
index 78ea953..530afa0 100644 (file)
@@ -21,25 +21,25 @@ class MediaHandlerTest extends MediaWikiTestCase {
 
        public static function provideTestFitBoxWidth() {
                return array_merge(
-                       static::generateTestFitBoxWidthData( 50, 50, array(
+                       static::generateTestFitBoxWidthData( 50, 50, [
                                        50 => 50,
                                        17 => 17,
-                                       18 => 18 )
+                                       18 => 18 ]
                        ),
-                       static::generateTestFitBoxWidthData( 366, 300, array(
+                       static::generateTestFitBoxWidthData( 366, 300, [
                                        50 => 61,
                                        17 => 21,
-                                       18 => 22 )
+                                       18 => 22 ]
                        ),
-                       static::generateTestFitBoxWidthData( 300, 366, array(
+                       static::generateTestFitBoxWidthData( 300, 366, [
                                        50 => 41,
                                        17 => 14,
-                                       18 => 15 )
+                                       18 => 15 ]
                        ),
-                       static::generateTestFitBoxWidthData( 100, 400, array(
+                       static::generateTestFitBoxWidthData( 100, 400, [
                                        50 => 12,
                                        17 => 4,
-                                       18 => 4 )
+                                       18 => 4 ]
                        )
                );
        }
@@ -53,16 +53,39 @@ class MediaHandlerTest extends MediaWikiTestCase {
         * out of parameters:
         * $width, $height, { $max => $expected, $max2 => $expected2, ... }
         *
-        * @param $width int
-        * @param $height int
-        * @param $tests array associative array of $max => $expected values
+        * @param int $width
+        * @param int $height
+        * @param array $tests associative array of $max => $expected values
         * @return array
         */
        private static function generateTestFitBoxWidthData( $width, $height, $tests ) {
-               $result = array();
+               $result = [];
                foreach ( $tests as $max => $expected ) {
-                       $result[] = array( $width, $height, $max, $expected );
+                       $result[] = [ $width, $height, $max, $expected ];
                }
                return $result;
        }
+
+       /**
+        * @covers MediaHandler::getPageRangesByDimensions
+        *
+        * @dataProvider provideTestGetPageRangesByDimensions
+        */
+       public function testGetPageRangesByDimensions( $pagesByDimensions, $expected ) {
+               $this->assertEquals( $expected, MediaHandler::getPageRangesByDimensions( $pagesByDimensions ) );
+       }
+
+       public static function provideTestGetPageRangesByDimensions() {
+               return [
+                       [ [ '123x456' => [ 1 ] ], '123x456:1' ],
+                       [ [ '123x456' => [ 1, 2 ] ], '123x456:1-2' ],
+                       [ [ '123x456' => [ 1, 2, 3 ] ], '123x456:1-3' ],
+                       [ [ '123x456' => [ 1, 2, 3, 5 ] ], '123x456:1-3,5' ],
+                       [ [ '123x456' => [ 1, 3 ] ], '123x456:1,3' ],
+                       [ [ '123x456' => [ 1, 2, 3, 5, 6, 7 ] ], '123x456:1-3,5-7' ],
+                       [ [ '123x456' => [ 1, 2, 3, 5, 6, 7 ],
+                               '789x789' => [ 4, 8, 9 ] ], '123x456:1-3,5-7/789x789:4,8-9'
+                       ],
+               ];
+       }
 }