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