update
This commit is contained in:
parent
2def8b9185
commit
e7bb9f0766
|
@ -44,6 +44,17 @@ class ComicPressBookmarkWidget extends WP_Widget {
|
|||
)
|
||||
)
|
||||
);
|
||||
|
||||
$this->default_instance = array(
|
||||
'title' => __('Bookmark This Page', 'comicpress'),
|
||||
'mode' => array_shift(array_keys($this->text_fields))
|
||||
);
|
||||
|
||||
foreach (array_values($this->text_fields) as $fields) {
|
||||
foreach ($fields as $field => $info) {
|
||||
$this->default_instance[$field] = $info['default'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function init() {}
|
||||
|
@ -69,17 +80,7 @@ class ComicPressBookmarkWidget extends WP_Widget {
|
|||
// @codeCoverageIgnoreEnd
|
||||
|
||||
function form($instance) {
|
||||
$instance = (array)$instance;
|
||||
|
||||
$defaults = array('title' => '', 'mode' => 'three-button');
|
||||
|
||||
foreach (array_values($this->text_fields) as $field => $info) {
|
||||
if (isset($info['default'])) {
|
||||
$defaults[$field] = $info['default'];
|
||||
}
|
||||
}
|
||||
|
||||
$instance = array_merge($defaults, $instance); ?>
|
||||
$instance = array_merge($this->default_instance, (array)$instance); ?>
|
||||
<div id="<?php echo $this->get_field_id('wrapper') ?>">
|
||||
<p>
|
||||
<label><?php _e('Title', 'comicpress') ?><br />
|
||||
|
@ -137,7 +138,7 @@ class ComicPressBookmarkWidget extends WP_Widget {
|
|||
<?php }
|
||||
|
||||
function update($new_instance, $old_instance) {
|
||||
$instance = array();
|
||||
$instance = $this->default_instance;
|
||||
|
||||
$all_text_fields = array('title');
|
||||
foreach ($this->text_fields as $type => $fields) {
|
||||
|
@ -145,13 +146,15 @@ class ComicPressBookmarkWidget extends WP_Widget {
|
|||
}
|
||||
|
||||
foreach ($all_text_fields as $key) {
|
||||
$instance[$key] = strip_tags($new_instance[$key]);
|
||||
if (isset($new_instance[$key])) {
|
||||
$instance[$key] = strip_tags($new_instance[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($this->text_fields[$new_instance['mode']])) {
|
||||
$instance['mode'] = $new_instance['mode'];
|
||||
} else {
|
||||
$instance['mode'] = array_shift(array_keys($this->text_fields));
|
||||
if (isset($new_instance['mode'])) {
|
||||
if (isset($this->text_fields[$new_instance['mode']])) {
|
||||
$instance['mode'] = $new_instance['mode'];
|
||||
}
|
||||
}
|
||||
|
||||
return $instance;
|
||||
|
|
|
@ -15,7 +15,7 @@ class BookmarkWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
array(), array(
|
||||
'//input[contains(@name, "mode") and @value="three-button" and @checked]' => true,
|
||||
'//input[contains(@name, "mode") and @value="one-button" and not(@checked)]' => true,
|
||||
'//input[contains(@name, "title") and @value=""]' => true,
|
||||
'//input[contains(@name, "title") and @value="Bookmark This Page"]' => true,
|
||||
),
|
||||
),
|
||||
array(
|
||||
|
@ -53,4 +53,30 @@ class BookmarkWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
$this->assertTrue(_xpath_test($xml, $xpath, $value), $xpath);
|
||||
}
|
||||
}
|
||||
|
||||
function providerTestUpdate() {
|
||||
return array(
|
||||
array(
|
||||
array(),
|
||||
array()
|
||||
),
|
||||
array(
|
||||
array('tag-page' => 'Test', 'title' => 'Test title', 'mode' => 'one-button'),
|
||||
array('tag-page' => 'Test', 'title' => 'Test title', 'mode' => 'one-button')
|
||||
),
|
||||
array(
|
||||
array('mode' => 'two-button'),
|
||||
array('mode' => 'three-button')
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTestUpdate
|
||||
*/
|
||||
function testUpdate($update_array, $expected_instance_merge) {
|
||||
$w = new ComicPressBookmarkWidget();
|
||||
|
||||
$this->assertEquals(array_merge($w->default_instance, $expected_instance_merge), $w->update($update_array, array()));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue