update
This commit is contained in:
parent
b6f7d96019
commit
0edca9e64a
|
@ -86,4 +86,32 @@ class ArchiveDropdownWidgetTest extends PHPUnit_Framework_TestCase {
|
||||||
|
|
||||||
$w->build_comic_archive_dropdown();
|
$w->build_comic_archive_dropdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function providerTestUpdate() {
|
||||||
|
$w = new ArchiveDropdownWidget();
|
||||||
|
$valid_mode = array_shift(array_keys($w->modes));
|
||||||
|
|
||||||
|
return array(
|
||||||
|
array(array(), array()),
|
||||||
|
array(
|
||||||
|
array('title' => '<b>test</b>'),
|
||||||
|
array('title' => 'test'),
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
array('mode' => 'bad'),
|
||||||
|
array()
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
array('mode' => $valid_mode),
|
||||||
|
array('mode' => $valid_mode)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider providerTestUpdate
|
||||||
|
*/
|
||||||
|
function testUpdate($input, $expected_output) {
|
||||||
|
$this->assertEquals($expected_output, $this->w->update($input, array()));
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -40,9 +40,16 @@ function comicpress_archive_dropdown_comics() {
|
||||||
}
|
}
|
||||||
|
|
||||||
class ArchiveDropdownWidget extends WP_Widget {
|
class ArchiveDropdownWidget extends WP_Widget {
|
||||||
|
var $modes;
|
||||||
|
|
||||||
function ArchiveDropdownWidget() {
|
function ArchiveDropdownWidget() {
|
||||||
$widget_ops = array('classname' => 'ArchiveDropdownWidget', 'description' => __('Display a dropdown list of your archives, styled.','comicpress') );
|
$widget_ops = array('classname' => 'ArchiveDropdownWidget', 'description' => __('Display a dropdown list of your archives, styled.','comicpress') );
|
||||||
$this->WP_Widget('archive_dropdown', __('ComicPress Archive Dropdown','comicpress'), $widget_ops);
|
$this->WP_Widget('archive_dropdown', __('ComicPress Archive Dropdown','comicpress'), $widget_ops);
|
||||||
|
|
||||||
|
$this->modes = array(
|
||||||
|
'monthly_archive' => __('Monthly archive', 'comicpress'),
|
||||||
|
'comic_archive' => __('Comic archive', 'comicpress')
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _verify_nonce() { return __comicpress_verify_nonce(); }
|
function _verify_nonce() { return __comicpress_verify_nonce(); }
|
||||||
|
@ -136,9 +143,23 @@ class ArchiveDropdownWidget extends WP_Widget {
|
||||||
}
|
}
|
||||||
|
|
||||||
function update($new_instance, $old_instance) {
|
function update($new_instance, $old_instance) {
|
||||||
$instance = $old_instance;
|
$instance = array();
|
||||||
$instance['title'] = strip_tags($new_instance['title']);
|
|
||||||
$instance['showcomicposts'] = $new_instance['showcomicposts'];
|
foreach (array('title', 'mode') as $field) {
|
||||||
|
if (isset($new_instance[$field])) {
|
||||||
|
switch ($field) {
|
||||||
|
case 'mode':
|
||||||
|
if (isset($this->modes[$new_instance[$field]])) {
|
||||||
|
$instance[$field] = $new_instance[$field];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$instance[$field] = strip_tags($new_instance[$field]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $instance;
|
return $instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue