]> git.mxchange.org Git - friendica.git/commitdiff
add unit tests for getScalingDimensions
authorMatthew Exon <git.mexon@spamgourmet.com>
Sat, 13 Apr 2024 19:47:13 +0000 (21:47 +0200)
committerMatthew Exon <git.mexon@spamgourmet.com>
Sat, 13 Apr 2024 19:50:17 +0000 (21:50 +0200)
tests/src/Util/ImagesTest.php

index 4ea19e778da531d69d4ab758de282bc46f7a992a..e0bf6c9a5dee839783f8ee979cfff714b8b344da 100644 (file)
@@ -96,4 +96,104 @@ class ImagesTest extends MockedTest
 
                self::assertArraySubset($assertion, Images::getInfoFromURL($url));
        }
+
+       public function dataScalingDimensions()
+       {
+               return [
+                       'landscape' => [
+                               'width' => 640,
+                               'height' => 480,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 320,
+                                       'height' => 240,
+                               ]
+                       ],
+                       'wide_landscape' => [
+                               'width' => 640,
+                               'height' => 120,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 320,
+                                       'height' => 60,
+                               ]
+                       ],
+                       'landscape_round_up' => [
+                               'width' => 640,
+                               'height' => 479,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 320,
+                                       'height' => 240,
+                               ]
+                       ],
+                       'landscape_zero_height' => [
+                               'width' => 640,
+                               'height' => 1,
+                               'max' => 160,
+                               'assertion' => [
+                                       'width' => 160,
+                                       'height' => 1,
+                               ]
+                       ],
+                       'portrait' => [
+                               'width' => 480,
+                               'height' => 640,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 240,
+                                       'height' => 320,
+                               ]
+                       ],
+                       // For portrait with aspect ratio <= 16:9, constrain height
+                       'portrait_16_9' => [
+                               'width' => 1080,
+                               'height' => 1920,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 180,
+                                       'height' => 320,
+                               ]
+                       ],
+                       // For portrait with aspect ratio > 16:9, constrain width
+                       'portrait_over_16_9_too_wide' => [
+                               'width' => 1080,
+                               'height' => 1921,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 320,
+                                       'height' => 570,
+                               ]
+                       ],
+                       // For portrait with aspect ratio > 16:9, constrain width
+                       'portrait_over_16_9_not_too_wide' => [
+                               'width' => 1080,
+                               'height' => 1921,
+                               'max' => 1080,
+                               'assertion' => [
+                                       'width' => 1080,
+                                       'height' => 1921,
+                               ]
+                       ],
+                       'portrait_round_up' => [
+                               'width' => 479,
+                               'height' => 640,
+                               'max' => 320,
+                               'assertion' => [
+                                       'width' => 240,
+                                       'height' => 320,
+                               ]
+                       ],
+               ];
+       }
+
+       /**
+        * Test the Images::getScalingDimensions() method
+        *
+        * @dataProvider dataScalingDimensions
+        */
+       public function testGetScalingDimensions(int $width, int $height, int $max, array $assertion)
+       {
+               self::assertArraySubset($assertion, Images::getScalingDimensions($width, $height, $max));
+       }
 }