normalize image options

This commit is contained in:
John Bintz 2009-11-12 12:53:40 -05:00
parent 9b3b25f7fa
commit 3afd1646ad
2 changed files with 77 additions and 0 deletions

View File

@ -104,6 +104,31 @@ class ComicPress {
return $current_max;
}
function normalize_image_size_options() {
$protected_options = apply_filters('comicpress_protected_image_size_options', array('thumbnail', 'medium', 'large'));
foreach (get_alloptions() as $option => $value) {
if (strpos($option, '_size_w') !== false) {
$size = str_replace('_size_w', '', $option);
if (!in_array($size, $protected_options)) {
foreach (array('_size_w', '_size_h', '_crop') as $suffix) {
delete_option("${size}${suffix}");
}
}
}
}
if (isset($this->comicpress_options['image_types'])) {
foreach ($this->comicpress_options['image_types'] as $type => $info) {
if (isset($info['dimensions'])) {
list($width, $height) = explode('x', $info['dimensions']);
update_option("${type}_size_w", intval($width));
update_option("${type}_size_h", intval($height));
update_option("${type}_crop", 0);
}
}
}
}
// @codeCoverageIgnoreStart
/**

View File

@ -232,6 +232,58 @@ class ComicPressTest extends PHPUnit_Framework_TestCase {
$this->assertEquals($expected_result, $this->cp->editor_max_image_size($input, $type));
}
function providerTestNormalizeImageSizeOptions() {
return array(
array(
array(
'comic_size_w' => 500,
'comic_size_h' => 500,
'comic_crop' => 0,
'thumbnail_size_w' => 500,
'thumbnail_size_h' => 500,
'thumbnail_crop' => 1,
),
array(),
array(
'comic_size_w' => false,
'comic_size_h' => false,
'comic_crop' => false,
'thumbnail_size_w' => 500,
'thumbnail_size_h' => 500,
'thumbnail_crop' => 1,
)
),
array(
array(),
array('comic' => array(
'dimensions' => '500x500'
)),
array(
'comic_size_w' => 500,
'comic_size_h' => 500,
'comic_crop' => 0
)
),
);
}
/**
* @dataProvider providerTestNormalizeImageSizeOptions
*/
function testNormalizeImageSizeOptions($options, $image_types, $expected_options) {
foreach ($options as $option => $value) {
update_option($option, $value);
}
$this->cp->comicpress_options['image_types'] = $image_types;
$this->cp->normalize_image_size_options();
foreach ($expected_options as $option => $value) {
$this->assertTrue($value === get_option($option));
}
}
}
?>