test for save
This commit is contained in:
parent
090c43691f
commit
dde0023ef9
4
Makefile
Normal file
4
Makefile
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.PHONY : test-coverage
|
||||||
|
|
||||||
|
test-coverage :
|
||||||
|
phpunit --syntax-check --coverage-html coverage test
|
@ -55,15 +55,13 @@ class QuickAudioEmbed {
|
|||||||
|
|
||||||
function save($info) {
|
function save($info) {
|
||||||
foreach ($info as $key => $value) {
|
foreach ($info as $key => $value) {
|
||||||
switch ($key) {
|
if (method_exists($this, "_save_${key}")) {
|
||||||
case 'dimensions':
|
$result = $this->{"_save_${key}"}($value);
|
||||||
if (count($result = explode('x', $value)) !== 2) {
|
if (is_null($result)) {
|
||||||
unset($info[$key]);
|
unset($info[$key]);
|
||||||
} else {
|
} else {
|
||||||
$result = array_map('intval', $result);
|
$info[$key] = $result;
|
||||||
$info[$key] = implode('x', $result);
|
}
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,6 +69,23 @@ class QuickAudioEmbed {
|
|||||||
update_option('quick-audio-embed-settings', $info);
|
update_option('quick-audio-embed-settings', $info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _save_dimensions($value) {
|
||||||
|
if (is_string($value)) {
|
||||||
|
if (count($result = explode('x', $value)) === 2) {
|
||||||
|
$new_result = array();
|
||||||
|
foreach ($result as $v) {
|
||||||
|
if (is_numeric($v)) {
|
||||||
|
$new_result[] = $v;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return implode('x', array_map('intval', $new_result));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
function admin_menu() {
|
function admin_menu() {
|
||||||
add_settings_section('quick-audio-embed', __('Quick Audio Embed', 'quick-audio-embed'), array(&$this, 'media_settings'), 'media');
|
add_settings_section('quick-audio-embed', __('Quick Audio Embed', 'quick-audio-embed'), array(&$this, 'media_settings'), 'media');
|
||||||
|
|
||||||
|
@ -5,5 +5,40 @@ require_once('MockPress/mockpress.php');
|
|||||||
require_once(dirname(__FILE__) . '/../quick-audio-embed.php');
|
require_once(dirname(__FILE__) . '/../quick-audio-embed.php');
|
||||||
|
|
||||||
class QuickAudioEmbedTest extends PHPUnit_Framework_TestCase {
|
class QuickAudioEmbedTest extends PHPUnit_Framework_TestCase {
|
||||||
function setUp() { _reset_wp(); }
|
function setUp() {
|
||||||
|
_reset_wp();
|
||||||
|
$this->qae = new QuickAudioEmbed();
|
||||||
|
}
|
||||||
|
|
||||||
|
function providerTestSaveDimensions() {
|
||||||
|
return array(
|
||||||
|
array('', null),
|
||||||
|
array(false, null),
|
||||||
|
array(array(), null),
|
||||||
|
array('350x', null),
|
||||||
|
array('x350', null),
|
||||||
|
array('350xx350', null),
|
||||||
|
array('350x350', '350x350'),
|
||||||
|
array('350.1x350.1', '350x350'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider providerTestSaveDimensions
|
||||||
|
*/
|
||||||
|
function testSaveDimensions($input, $expected_output) {
|
||||||
|
$this->assertEquals($expected_output, $this->qae->_save_dimensions($input));
|
||||||
|
}
|
||||||
|
|
||||||
|
function testSave() {
|
||||||
|
$qae = $this->getMock('QuickAudioEmbed', array('_save_test', '_save_test2', '_save_test3'));
|
||||||
|
$qae->expects($this->once())->method('_save_test')->with('test');
|
||||||
|
$qae->expects($this->never())->method('_save_test2');
|
||||||
|
$qae->expects($this->once())->method('_save_test3')->with('test3')->will($this->returnValue('test4'));
|
||||||
|
|
||||||
|
$qae->save(array('test' => 'test', 'test3' => 'test3', 'test5' => 'test5'));
|
||||||
|
|
||||||
|
$this->assertEquals(array('test3' => 'test4', 'test5' => 'test5'), get_option('quick-audio-embed-settings'));
|
||||||
|
$this->assertEquals(array('test3' => 'test4', 'test5' => 'test5'), $qae->settings);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user