css = new ComicPressStoryline(); } function providerTestCreateStorylineStructure() { return array( array( false, false ), array( array('0'), false ), array( array('1'), false ), array( array(array(0,1)), false ), array( array('0/1'), array('1' => array()) ), array( array('0/1', '0/1/2'), array('1' => array('upcoming' => 2), '2' => array('parent' => 1, 'prior' => 1)) ), array( array('0/1', '0/1/2', '0/1/3'), array( '1' => array('upcoming' => 2), '2' => array('parent' => 1, 'next' => 3, 'prior' => 1, 'upcoming' => 3), '3' => array('parent' => 1, 'previous' => 2, 'prior' => 2), ) ), array( array('0/1', '0/1/2', '0/1/2/3', '0/1/2/4', '0/1/5'), array( '1' => array('upcoming' => 2), '2' => array('parent' => 1, 'next' => 5, 'upcoming' => 3, 'prior' => 1), '3' => array('parent' => 2, 'next' => 4, 'upcoming' => 4, 'prior' => 2), '4' => array('parent' => 2, 'previous' => 3, 'upcoming' => 5, 'prior' => 3), '5' => array('parent' => 1, 'previous' => 2, 'prior' => 4), ) ), array( array('0/1', '0/1/2', '0/1/2/3', '0/1/2/4', '0/1/5', '0/1/5/6', '0/1/5/7', '0/1/5/8', '0/1/9'), array( '1' => array('upcoming' => 2), '2' => array('parent' => 1, 'next' => 5, 'upcoming' => 3, 'prior' => 1), '3' => array('parent' => 2, 'next' => 4, 'upcoming' => 4, 'prior' => 2), '4' => array('parent' => 2, 'previous' => 3, 'upcoming' => 5, 'prior' => 3), '5' => array('parent' => 1, 'previous' => 2, 'next' => 9, 'upcoming' => 6, 'prior' => 4), '6' => array('parent' => 5, 'next' => 7, 'upcoming' => 7, 'prior' => 5), '7' => array('parent' => 5, 'previous' => 6, 'next' => 8, 'upcoming' => 8, 'prior' => 6), '8' => array('parent' => 5, 'previous' => 7, 'upcoming' => 9, 'prior' => 7), '9' => array('parent' => 1, 'previous' => 5, 'prior' => 8), ) ), ); } /** * @dataProvider providerTestCreateStorylineStructure */ function testCreateStorylineStructure($input, $expected_structure) { $this->assertEquals(is_array($expected_structure), $this->css->create_structure($input)); $this->assertEquals($expected_structure, $this->css->_structure); } function providerTestGetFields() { return array( array('parent', 1, false), array('parent', 2, 1), array('next', 3, 4), array('next', 4, false), array('previous', 4, 3), array('previous', 3, false), array('previous', 2, false), array('upcoming', 2, 3), array('upcoming', 3, 4), array('valid', 1, array('upcoming')), array('valid', 6, false), ); } /** * @dataProvider providerTestGetFields */ function testGetFields($field, $category, $expected_value) { $this->css->_structure = array( '1' => array('upcoming' => 2), '2' => array('parent' => 1, 'prior' => 1, 'upcoming' => 3), '3' => array('parent' => 2, 'next' => 4, 'upcoming' => 4, 'prior' => 2), '4' => array('parent' => 2, 'previous' => 3, 'prior' => 3) ); $this->assertEquals($expected_value, $this->css->{$field}($category)); } function providerTestGetValidNav() { return array( array(array(1), array('upcoming')), array(array(1,2), false), array(array(1,4), array('upcoming')), array(array(2), array('prior', 'upcoming', 'next')), array(array(3), array('prior', 'previous')), ); } /** * @dataProvider providerTestGetValidNav */ function testGetValidNav($post_categories, $expected_navigation) { wp_set_post_categories(1, $post_categories); $this->css->_structure = array( '1' => array('upcoming' => 2), '2' => array('prior' => 1, 'upcoming' => 3, 'next' => 3), '3' => array('prior' => 2, 'previous' => 2) ); $this->assertEquals($expected_navigation, $this->css->get_valid_nav(1)); } } ?>