Chris@0: 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: Chris@0: // Check the height. Chris@0: $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: Chris@0: // Check the return value. Chris@0: $this->assertEquals($output['return_value'], $return_value, 'Incorrect return value.'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Provides data for image dimension scale tests. Chris@0: * Chris@0: * @return array Chris@0: * Keyed array containing: Chris@0: * - 'input' - Array which contains input for Image::scaleDimensions(). Chris@0: * - 'output' - Array which contains expected output after passing Chris@0: * through Image::scaleDimensions. Also contains a boolean Chris@0: * 'return_value' which should match the expected return value. Chris@0: * Chris@0: * @see testScaleDimensions() Chris@0: */ Chris@0: public function providerTestScaleDimensions() { Chris@0: // Define input / output datasets to test different branch conditions. Chris@0: $tests = []; Chris@0: Chris@0: // Test branch conditions: Chris@0: // - No height. Chris@0: // - Upscale, don't need to upscale. Chris@0: $tests[] = [ Chris@0: 'input' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 1000, Chris@0: 'height' => 2000, Chris@0: ], Chris@0: 'width' => 200, Chris@0: 'height' => NULL, Chris@0: 'upscale' => TRUE, Chris@0: ], Chris@0: 'output' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 200, Chris@0: 'height' => 400, Chris@0: ], Chris@0: 'return_value' => TRUE, Chris@0: ], Chris@0: ]; Chris@0: Chris@0: // Test branch conditions: Chris@0: // - No width. Chris@0: // - Don't upscale, don't need to upscale. Chris@0: $tests[] = [ Chris@0: 'input' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 1000, Chris@0: 'height' => 800, Chris@0: ], Chris@0: 'width' => NULL, Chris@0: 'height' => 140, Chris@0: 'upscale' => FALSE, Chris@0: ], Chris@0: 'output' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 175, Chris@0: 'height' => 140, Chris@0: ], Chris@0: 'return_value' => TRUE, Chris@0: ], Chris@0: ]; Chris@0: Chris@0: // Test branch conditions: Chris@0: // - Source aspect ratio greater than target. Chris@0: // - Upscale, need to upscale. Chris@0: $tests[] = [ Chris@0: 'input' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 8, Chris@0: 'height' => 20, Chris@0: ], Chris@0: 'width' => 200, Chris@0: 'height' => 140, Chris@0: 'upscale' => TRUE, Chris@0: ], Chris@0: 'output' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 56, Chris@0: 'height' => 140, Chris@0: ], Chris@0: 'return_value' => TRUE, Chris@0: ], Chris@0: ]; Chris@0: Chris@0: // Test branch condition: target aspect ratio greater than source. Chris@0: $tests[] = [ Chris@0: 'input' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 2000, Chris@0: 'height' => 800, Chris@0: ], Chris@0: 'width' => 200, Chris@0: 'height' => 140, Chris@0: 'upscale' => FALSE, Chris@0: ], Chris@0: 'output' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 200, Chris@0: 'height' => 80, Chris@0: ], Chris@0: 'return_value' => TRUE, Chris@0: ], Chris@0: ]; Chris@0: Chris@0: // Test branch condition: don't upscale, need to upscale. Chris@0: $tests[] = [ Chris@0: 'input' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 100, Chris@0: 'height' => 50, Chris@0: ], Chris@0: 'width' => 200, Chris@0: 'height' => 140, Chris@0: 'upscale' => FALSE, Chris@0: ], Chris@0: 'output' => [ Chris@0: 'dimensions' => [ Chris@0: 'width' => 100, Chris@0: 'height' => 50, Chris@0: ], Chris@0: 'return_value' => FALSE, Chris@0: ], Chris@0: ]; Chris@0: Chris@0: return $tests; Chris@0: } Chris@0: Chris@0: }