wordpress-develop/tests/phpunit/tests/image/size.php
Gary Pendergast 8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00

213 lines
6.4 KiB
PHP

<?php
/**
* @group image
* @group media
* @group upload
*/
class Tests_Image_Size extends WP_UnitTestCase {
function test_constrain_dims_zero() {
// no constraint - should have no effect
$out = wp_constrain_dimensions( 640, 480, 0, 0 );
$this->assertSame( array( 640, 480 ), $out );
$out = wp_constrain_dimensions( 640, 480 );
$this->assertSame( array( 640, 480 ), $out );
$out = wp_constrain_dimensions( 0, 0, 0, 0 );
$this->assertSame( array( 0, 0 ), $out );
$out = wp_constrain_dimensions( 465, 700, 177, 177 );
$this->assertSame( array( 118, 177 ), $out );
}
function test_constrain_dims_smaller() {
// image size is smaller than the constraint - no effect
$out = wp_constrain_dimensions( 500, 600, 1024, 768 );
$this->assertSame( array( 500, 600 ), $out );
$out = wp_constrain_dimensions( 500, 600, 0, 768 );
$this->assertSame( array( 500, 600 ), $out );
$out = wp_constrain_dimensions( 500, 600, 1024, 0 );
$this->assertSame( array( 500, 600 ), $out );
}
function test_constrain_dims_equal() {
// image size is equal to the constraint - no effect
$out = wp_constrain_dimensions( 1024, 768, 1024, 768 );
$this->assertSame( array( 1024, 768 ), $out );
$out = wp_constrain_dimensions( 1024, 768, 0, 768 );
$this->assertSame( array( 1024, 768 ), $out );
$out = wp_constrain_dimensions( 1024, 768, 1024, 0 );
$this->assertSame( array( 1024, 768 ), $out );
}
function test_constrain_dims_larger() {
// image size is larger than the constraint - result should be constrained
$out = wp_constrain_dimensions( 1024, 768, 500, 600 );
$this->assertSame( array( 500, 375 ), $out );
$out = wp_constrain_dimensions( 1024, 768, 0, 600 );
$this->assertSame( array( 800, 600 ), $out );
$out = wp_constrain_dimensions( 1024, 768, 500, 0 );
$this->assertSame( array( 500, 375 ), $out );
// also try a portrait oriented image
$out = wp_constrain_dimensions( 300, 800, 500, 600 );
$this->assertSame( array( 225, 600 ), $out );
$out = wp_constrain_dimensions( 300, 800, 0, 600 );
$this->assertSame( array( 225, 600 ), $out );
$out = wp_constrain_dimensions( 300, 800, 200, 0 );
$this->assertSame( array( 200, 533 ), $out );
}
function test_constrain_dims_boundary() {
// one dimension is larger than the constraint, one smaller - result should be constrained
$out = wp_constrain_dimensions( 1024, 768, 500, 800 );
$this->assertSame( array( 500, 375 ), $out );
$out = wp_constrain_dimensions( 1024, 768, 2000, 700 );
$this->assertSame( array( 933, 700 ), $out );
// portrait
$out = wp_constrain_dimensions( 768, 1024, 800, 500 );
$this->assertSame( array( 375, 500 ), $out );
$out = wp_constrain_dimensions( 768, 1024, 2000, 700 );
$this->assertSame( array( 525, 700 ), $out );
}
/**
* @expectedDeprecated wp_shrink_dimensions
*/
function test_shrink_dimensions_default() {
$out = wp_shrink_dimensions( 640, 480 );
$this->assertSame( array( 128, 96 ), $out );
$out = wp_shrink_dimensions( 480, 640 );
$this->assertSame( array( 72, 96 ), $out );
}
/**
* @expectedDeprecated wp_shrink_dimensions
*/
function test_shrink_dimensions_smaller() {
// image size is smaller than the constraint - no effect
$out = wp_shrink_dimensions( 500, 600, 1024, 768 );
$this->assertSame( array( 500, 600 ), $out );
$out = wp_shrink_dimensions( 600, 500, 1024, 768 );
$this->assertSame( array( 600, 500 ), $out );
}
/**
* @expectedDeprecated wp_shrink_dimensions
*/
function test_shrink_dimensions_equal() {
// image size is equal to the constraint - no effect
$out = wp_shrink_dimensions( 500, 600, 500, 600 );
$this->assertSame( array( 500, 600 ), $out );
$out = wp_shrink_dimensions( 600, 500, 600, 500 );
$this->assertSame( array( 600, 500 ), $out );
}
/**
* @expectedDeprecated wp_shrink_dimensions
*/
function test_shrink_dimensions_larger() {
// image size is larger than the constraint - result should be constrained
$out = wp_shrink_dimensions( 1024, 768, 500, 600 );
$this->assertSame( array( 500, 375 ), $out );
$out = wp_shrink_dimensions( 300, 800, 500, 600 );
$this->assertSame( array( 225, 600 ), $out );
}
/**
* @expectedDeprecated wp_shrink_dimensions
*/
function test_shrink_dimensions_boundary() {
// one dimension is larger than the constraint, one smaller - result should be constrained
$out = wp_shrink_dimensions( 1024, 768, 500, 800 );
$this->assertSame( array( 500, 375 ), $out );
$out = wp_shrink_dimensions( 1024, 768, 2000, 700 );
$this->assertSame( array( 933, 700 ), $out );
// portrait
$out = wp_shrink_dimensions( 768, 1024, 800, 500 );
$this->assertSame( array( 375, 500 ), $out );
$out = wp_shrink_dimensions( 768, 1024, 2000, 700 );
$this->assertSame( array( 525, 700 ), $out );
}
function test_constrain_size_for_editor_thumb() {
$out = image_constrain_size_for_editor( 600, 400, 'thumb' );
$this->assertSame( array( 150, 100 ), $out );
$out = image_constrain_size_for_editor( 64, 64, 'thumb' );
$this->assertSame( array( 64, 64 ), $out );
}
function test_constrain_size_for_editor_medium() {
// default max width is 500, no constraint on height
global $content_width;
$_content_width = $content_width;
$content_width = 0;
update_option( 'medium_size_w', 500 );
update_option( 'medium_size_h', 0 );
$out = image_constrain_size_for_editor( 600, 400, 'medium' );
$this->assertSame( array( 500, 333 ), $out );
$out = image_constrain_size_for_editor( 400, 600, 'medium' );
$this->assertSame( array( 400, 600 ), $out );
$out = image_constrain_size_for_editor( 64, 64, 'medium' );
$this->assertSame( array( 64, 64 ), $out );
// content_width should be ignored
$content_width = 350;
$out = image_constrain_size_for_editor( 600, 400, 'medium' );
$this->assertSame( array( 500, 333 ), $out );
$content_width = $_content_width;
}
function test_constrain_size_for_editor_full() {
global $content_width;
$_content_width = $content_width;
$content_width = 400;
$out = image_constrain_size_for_editor( 600, 400, 'full' );
$this->assertSame( array( 600, 400 ), $out );
$out = image_constrain_size_for_editor( 64, 64, 'full' );
$this->assertSame( array( 64, 64 ), $out );
// content_width default is 500
$content_width = 0;
$out = image_constrain_size_for_editor( 600, 400, 'full' );
$this->assertSame( array( 600, 400 ), $out );
$out = image_constrain_size_for_editor( 64, 64, 'full' );
$this->assertSame( array( 64, 64 ), $out );
$content_width = $_content_width;
}
}