annotate core/tests/Drupal/Tests/Component/Utility/ImageTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\Component\Utility;
Chris@0 4
Chris@0 5 use Drupal\Component\Utility\Image;
Chris@0 6 use PHPUnit\Framework\TestCase;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * @coversDefaultClass \Drupal\Component\Utility\Image
Chris@0 10 * @group Image
Chris@0 11 */
Chris@0 12 class ImageTest extends TestCase {
Chris@0 13
Chris@0 14 /**
Chris@0 15 * Tests all control flow branches in image_dimensions_scale().
Chris@0 16 *
Chris@0 17 * @dataProvider providerTestScaleDimensions
Chris@0 18 */
Chris@0 19 public function testScaleDimensions($input, $output) {
Chris@0 20 // Process the test dataset.
Chris@0 21 $return_value = Image::scaleDimensions($input['dimensions'], $input['width'], $input['height'], $input['upscale']);
Chris@0 22
Chris@0 23 // Check the width.
Chris@0 24 $this->assertEquals($output['dimensions']['width'], $input['dimensions']['width'], sprintf('Computed width (%s) does not equal expected width (%s)', $output['dimensions']['width'], $input['dimensions']['width']));
Chris@0 25
Chris@0 26 // Check the height.
Chris@0 27 $this->assertEquals($output['dimensions']['height'], $input['dimensions']['height'], sprintf('Computed height (%s) does not equal expected height (%s)', $output['dimensions']['height'], $input['dimensions']['height']));
Chris@0 28
Chris@0 29 // Check the return value.
Chris@0 30 $this->assertEquals($output['return_value'], $return_value, 'Incorrect return value.');
Chris@0 31 }
Chris@0 32
Chris@0 33 /**
Chris@0 34 * Provides data for image dimension scale tests.
Chris@0 35 *
Chris@0 36 * @return array
Chris@0 37 * Keyed array containing:
Chris@0 38 * - 'input' - Array which contains input for Image::scaleDimensions().
Chris@0 39 * - 'output' - Array which contains expected output after passing
Chris@0 40 * through Image::scaleDimensions. Also contains a boolean
Chris@0 41 * 'return_value' which should match the expected return value.
Chris@0 42 *
Chris@0 43 * @see testScaleDimensions()
Chris@0 44 */
Chris@0 45 public function providerTestScaleDimensions() {
Chris@0 46 // Define input / output datasets to test different branch conditions.
Chris@0 47 $tests = [];
Chris@0 48
Chris@0 49 // Test branch conditions:
Chris@0 50 // - No height.
Chris@0 51 // - Upscale, don't need to upscale.
Chris@0 52 $tests[] = [
Chris@0 53 'input' => [
Chris@0 54 'dimensions' => [
Chris@0 55 'width' => 1000,
Chris@0 56 'height' => 2000,
Chris@0 57 ],
Chris@0 58 'width' => 200,
Chris@0 59 'height' => NULL,
Chris@0 60 'upscale' => TRUE,
Chris@0 61 ],
Chris@0 62 'output' => [
Chris@0 63 'dimensions' => [
Chris@0 64 'width' => 200,
Chris@0 65 'height' => 400,
Chris@0 66 ],
Chris@0 67 'return_value' => TRUE,
Chris@0 68 ],
Chris@0 69 ];
Chris@0 70
Chris@0 71 // Test branch conditions:
Chris@0 72 // - No width.
Chris@0 73 // - Don't upscale, don't need to upscale.
Chris@0 74 $tests[] = [
Chris@0 75 'input' => [
Chris@0 76 'dimensions' => [
Chris@0 77 'width' => 1000,
Chris@0 78 'height' => 800,
Chris@0 79 ],
Chris@0 80 'width' => NULL,
Chris@0 81 'height' => 140,
Chris@0 82 'upscale' => FALSE,
Chris@0 83 ],
Chris@0 84 'output' => [
Chris@0 85 'dimensions' => [
Chris@0 86 'width' => 175,
Chris@0 87 'height' => 140,
Chris@0 88 ],
Chris@0 89 'return_value' => TRUE,
Chris@0 90 ],
Chris@0 91 ];
Chris@0 92
Chris@0 93 // Test branch conditions:
Chris@0 94 // - Source aspect ratio greater than target.
Chris@0 95 // - Upscale, need to upscale.
Chris@0 96 $tests[] = [
Chris@0 97 'input' => [
Chris@0 98 'dimensions' => [
Chris@0 99 'width' => 8,
Chris@0 100 'height' => 20,
Chris@0 101 ],
Chris@0 102 'width' => 200,
Chris@0 103 'height' => 140,
Chris@0 104 'upscale' => TRUE,
Chris@0 105 ],
Chris@0 106 'output' => [
Chris@0 107 'dimensions' => [
Chris@0 108 'width' => 56,
Chris@0 109 'height' => 140,
Chris@0 110 ],
Chris@0 111 'return_value' => TRUE,
Chris@0 112 ],
Chris@0 113 ];
Chris@0 114
Chris@0 115 // Test branch condition: target aspect ratio greater than source.
Chris@0 116 $tests[] = [
Chris@0 117 'input' => [
Chris@0 118 'dimensions' => [
Chris@0 119 'width' => 2000,
Chris@0 120 'height' => 800,
Chris@0 121 ],
Chris@0 122 'width' => 200,
Chris@0 123 'height' => 140,
Chris@0 124 'upscale' => FALSE,
Chris@0 125 ],
Chris@0 126 'output' => [
Chris@0 127 'dimensions' => [
Chris@0 128 'width' => 200,
Chris@0 129 'height' => 80,
Chris@0 130 ],
Chris@0 131 'return_value' => TRUE,
Chris@0 132 ],
Chris@0 133 ];
Chris@0 134
Chris@0 135 // Test branch condition: don't upscale, need to upscale.
Chris@0 136 $tests[] = [
Chris@0 137 'input' => [
Chris@0 138 'dimensions' => [
Chris@0 139 'width' => 100,
Chris@0 140 'height' => 50,
Chris@0 141 ],
Chris@0 142 'width' => 200,
Chris@0 143 'height' => 140,
Chris@0 144 'upscale' => FALSE,
Chris@0 145 ],
Chris@0 146 'output' => [
Chris@0 147 'dimensions' => [
Chris@0 148 'width' => 100,
Chris@0 149 'height' => 50,
Chris@0 150 ],
Chris@0 151 'return_value' => FALSE,
Chris@0 152 ],
Chris@0 153 ];
Chris@0 154
Chris@0 155 return $tests;
Chris@0 156 }
Chris@0 157
Chris@0 158 }