category normalization
This commit is contained in:
parent
c205f9f81b
commit
f279ed8904
|
@ -320,6 +320,8 @@ class ComicPressStoryline {
|
|||
}
|
||||
$all_categories_flattened = $this->get_category_flattened();
|
||||
|
||||
$this->normalize_category_groupings();
|
||||
|
||||
$result = $this->normalize_flattened_storyline($flattened_storyline, $all_categories_flattened);
|
||||
if ($set) {
|
||||
$this->set_flattened_storyline($result);
|
||||
|
@ -328,11 +330,21 @@ class ComicPressStoryline {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO finish this method
|
||||
* @return unknown_type
|
||||
*/
|
||||
function normalize_category_groupings() {
|
||||
$comicpress = ComicPress::get_instance();
|
||||
|
||||
$valid_ids = get_all_category_ids();
|
||||
|
||||
foreach ($comicpress->comicpress_options['category_groupings'] as $group_id => $category_ids) {
|
||||
$comicpress->comicpress_options['category_groupings'][$group_id] = array_intersect($category_ids, $valid_ids);
|
||||
if (empty($comicpress->comicpress_options['category_groupings'][$group_id])) {
|
||||
unset($comicpress->comicpress_options['category_groupings'][$group_id]);
|
||||
}
|
||||
}
|
||||
|
||||
$comicpress->save();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -639,6 +639,9 @@ class ComicPressStorylineTest extends PHPUnit_Framework_TestCase {
|
|||
* @dataProvider providerTestNormalize
|
||||
*/
|
||||
function testNormalize($flattened_storyline, $do_set) {
|
||||
$comicpress = ComicPress::get_instance();
|
||||
$comicpress->comicpress_options['category_groupings'] = array();
|
||||
|
||||
$css = $this->getMock('ComicPressStoryline', array('get_flattened_storyline', 'get_category_flattened', 'normalize_flattened_storyline', 'set_flattened_storyline'));
|
||||
$css->expects(is_null($flattened_storyline) ? $this->once() : $this->never())->method('get_flattened_storyline');
|
||||
$css->expects($do_set ? $this->once() : $this->never())->method('set_flattened_storyline');
|
||||
|
@ -698,8 +701,35 @@ class ComicPressStorylineTest extends PHPUnit_Framework_TestCase {
|
|||
$this->assertEquals($expected_id, $this->css->_ensure_category_ids($string));
|
||||
}
|
||||
|
||||
function testNormalizeCategoryGroupings() {
|
||||
$this->markTestIncomplete();
|
||||
function providerTestNormalizeCategoryGroupings() {
|
||||
return array(
|
||||
array(
|
||||
array('test' => array(1,2)),
|
||||
array(1,2),
|
||||
array('test' => array(1,2))
|
||||
),
|
||||
array(
|
||||
array('test' => array(1,2)),
|
||||
array(1),
|
||||
array('test' => array(1))
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providerTestNormalizeCategoryGroupings
|
||||
*/
|
||||
function testNormalizeCategoryGroupings($grouping, $valid_categories, $expected_grouping) {
|
||||
$comicpress = ComicPress::get_instance();
|
||||
$comicpress->comicpress_options['category_groupings'] = $grouping;
|
||||
|
||||
foreach ($valid_categories as $category_id) {
|
||||
add_category($category_id, (object)array('slug' => "test-${category_id}"));
|
||||
}
|
||||
|
||||
$this->css->normalize_category_groupings();
|
||||
|
||||
$this->assertEquals($expected_grouping, $comicpress->comicpress_options['category_groupings']);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue