refactor class and link code and code coverage
This commit is contained in:
parent
50bbc6ff5a
commit
ba6281b2c3
|
@ -3,3 +3,4 @@
|
|||
.project
|
||||
.settings/
|
||||
.DS_Store
|
||||
coverage/
|
||||
|
|
|
@ -10,9 +10,6 @@ class GraphicalNavigationWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
$this->w = new GraphicalNavigationWidget();
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers WidgetComicPressGraphicalStorylineNavigation::update
|
||||
*/
|
||||
function testUpdateWidget() {
|
||||
$result = $this->w->update(array(
|
||||
"next" => "<b>test</b>",
|
||||
|
@ -41,7 +38,6 @@ class GraphicalNavigationWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
|
||||
/**
|
||||
* @dataProvider providerTestIsNavLinkVisible
|
||||
* @covers WidgetComicPressGraphicalStorylineNavigation::_will_display_nav_link
|
||||
*/
|
||||
function testIsNavLinkVisible($which, $current_id, $target_id, $expected_result) {
|
||||
$current = (object)array('ID' => $current_id);
|
||||
|
@ -76,7 +72,6 @@ class GraphicalNavigationWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
|
||||
/**
|
||||
* @dataProvider providerTestGroupNavigationButtons
|
||||
* @covers WidgetComicPressGraphicalStorylineNavigation::_group_navigation_buttons
|
||||
*/
|
||||
function testGroupNavigationButtons($buttons, $expected_grouping) {
|
||||
_set_filter_expectation('comicpress_navigation_grouping_details', array(array(
|
||||
|
@ -88,6 +83,14 @@ class GraphicalNavigationWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals($expected_grouping, $this->w->_group_navigation_buttons($buttons, array()));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error
|
||||
*/
|
||||
function testGroupNavigationButtonsNoDefaultGroup() {
|
||||
_set_filter_expectation('comicpress_navigation_grouping_details', array(array()));
|
||||
$this->w->_group_navigation_buttons(array(), array());
|
||||
}
|
||||
|
||||
function providerTestSetUpPostNavStoryPrev() {
|
||||
return array(
|
||||
array(
|
||||
|
@ -230,6 +233,43 @@ class GraphicalNavigationWidgetTest extends PHPUnit_Framework_TestCase {
|
|||
|
||||
$css->set_up_post_nav(array());
|
||||
}
|
||||
|
||||
function providerTestGetLinkNaviClassNames() {
|
||||
return array(
|
||||
array(
|
||||
'previous', (object)array('guid' => 'previous'), array(), array(
|
||||
'link' => 'previous',
|
||||
'navi_class_names' => array('navi-previous', 'navi-prev')
|
||||
)
|
||||
),
|
||||
array(
|
||||
'last', (object)array('guid' => 'last'), array('lastgohome' => 'off'), array(
|
||||
'link' => 'last',
|
||||
'navi_class_names' => array('navi-last')
|
||||
)
|
||||
),
|
||||
array(
|
||||
'last', (object)array('guid' => 'last'), array('lastgohome' => 'on'), array(
|
||||
'link' => 'home',
|
||||
'navi_class_names' => array('navi-last')
|
||||
)
|
||||
),
|
||||
array(
|
||||
'next', 'next', array(), array(
|
||||
'link' => 'next',
|
||||
'navi_class_names' => array('navi-next')
|
||||
)
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTestGetLinkNaviClassNames
|
||||
*/
|
||||
function testGetLinkNaviClassNames($which, $target, $instance, $expected_results) {
|
||||
_set_bloginfo('url', 'home');
|
||||
$this->assertEquals($expected_results, $this->w->_get_link_navi_class_names($which, null, $target, $instance));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
|
|
@ -11,6 +11,7 @@ Author URI: http://frumph.net/
|
|||
require_once(dirname(__FILE__) . '/../classes/ComicPressNavigation.inc');
|
||||
|
||||
class GraphicalNavigationWidget extends WP_Widget {
|
||||
// @codeCoverageIgnoreStart
|
||||
function GraphicalNavigationWidget() {
|
||||
$widget_ops = array('classname' => 'WidgetComicPressGraphicalStorylineNavigation', 'description' => __('Displays Graphical Navigation Buttons. (used in comic sidebars)','comicpress') );
|
||||
$this->WP_Widget('graphicalstorylinenavigation', __('Comic Navigation','comicpress'), $widget_ops);
|
||||
|
@ -58,12 +59,6 @@ class GraphicalNavigationWidget extends WP_Widget {
|
|||
function comicpress_display_navigation_link($which, $current, $target, $instance, $content = '') {
|
||||
global $id;
|
||||
|
||||
$css_name_mapping = array(
|
||||
'story_prev' => 'prevchap',
|
||||
'previous' => 'prev',
|
||||
'story_next' => 'nextchap'
|
||||
);
|
||||
|
||||
$ok = true;
|
||||
switch ($which) {
|
||||
case 'first':
|
||||
|
@ -93,23 +88,9 @@ class GraphicalNavigationWidget extends WP_Widget {
|
|||
case 'story_next':
|
||||
case 'story_prev_in':
|
||||
case 'story_next_in':
|
||||
$obj_ok = false;
|
||||
$navi_class_names = array("navi-${which}");
|
||||
$link = false;
|
||||
if (is_object($target)) {
|
||||
$obj_ok = true;
|
||||
if (isset($css_name_mapping[$which])) { $navi_class_names[] = "navi-{$css_name_mapping[$which]}"; }
|
||||
extract($this->_get_link_navi_class_names($which, $current, $target, $instance));
|
||||
|
||||
$link = get_permalink($target->ID);
|
||||
if (($which == 'last') && ($instance['lastgohome'] == 'on')) { $link = get_bloginfo('url'); }
|
||||
}
|
||||
|
||||
if (($filter_link = array_shift(apply_filters('comicpress_display_navigation_link', $link, $which, $current, $target, $instance))) !== false) {
|
||||
$link = $filter_link;
|
||||
$obj_ok = true;
|
||||
}
|
||||
|
||||
if ($ok && $obj_ok) {
|
||||
if ($ok && $link) {
|
||||
?><a href="<?php echo $link; ?>"
|
||||
class="navi <?php echo implode(" ", $navi_class_names); ?>"
|
||||
title="<?php echo $instance["${which}_title"]; ?>"><?php echo htmlspecialchars_decode($instance["${which}_title"]); ?></a><?php
|
||||
|
@ -152,6 +133,37 @@ class GraphicalNavigationWidget extends WP_Widget {
|
|||
}
|
||||
return array($which, $current, $target, $instance, ob_get_clean());
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
function _get_link_navi_class_names($which, $current, $target, $instance) {
|
||||
$css_name_mapping = array(
|
||||
'story_prev' => 'prevchap',
|
||||
'previous' => 'prev',
|
||||
'story_next' => 'nextchap'
|
||||
);
|
||||
|
||||
$navi_class_names = array("navi-${which}");
|
||||
if (isset($css_name_mapping[$which])) { $navi_class_names[] = "navi-{$css_name_mapping[$which]}"; }
|
||||
|
||||
$link = false;
|
||||
if (is_object($target)) {
|
||||
if (($which == 'last') && ($instance['lastgohome'] == 'on')) {
|
||||
$link = get_bloginfo('url');
|
||||
} else {
|
||||
$link = get_permalink($target);
|
||||
}
|
||||
} else {
|
||||
if (is_string($target)) {
|
||||
$link = $target;
|
||||
}
|
||||
}
|
||||
|
||||
if (($filter_link = apply_filters('comicpress_display_navigation_link', $link, $which, $current, $target, $instance)) !== false) {
|
||||
$link = $filter_link;
|
||||
}
|
||||
|
||||
return compact('link', 'navi_class_names');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the combination of target and current post will show or hide this nav link.
|
||||
|
@ -177,6 +189,7 @@ class GraphicalNavigationWidget extends WP_Widget {
|
|||
return apply_filters('comicpress_graphical_navigation_will_display_nav_link', $return, $which, $current, $target);
|
||||
}
|
||||
|
||||
// @codeCoverageIgnoreStart
|
||||
/**
|
||||
* Get the order of the buttons to be displayed on-screen.
|
||||
*/
|
||||
|
@ -193,6 +206,7 @@ class GraphicalNavigationWidget extends WP_Widget {
|
|||
'comic_navi_right' => array('story_next', 'story_next_in', 'next', 'last')
|
||||
);
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
function _group_navigation_buttons($buttons = array(), $grouped_buttons = array()) {
|
||||
$grouping_hash = array();
|
||||
|
@ -210,7 +224,9 @@ class GraphicalNavigationWidget extends WP_Widget {
|
|||
|
||||
if (is_null($default_group)) {
|
||||
trigger_error('No default group defined for filter comicpress_navigation_grouping_details', E_USER_WARNING);
|
||||
// @codeCoverageIgnoreStart
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
$groups = array();
|
||||
foreach ($buttons as $key => $button) {
|
||||
|
|
Loading…
Reference in New Issue