mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/11495] Add unit tests for the implemented functions
PHPBB3-11495
This commit is contained in:
parent
57a05e7cf5
commit
dcee7961e8
8 changed files with 1259 additions and 0 deletions
123
tests/nestedset/fixtures/phpbb_forums.xml
Normal file
123
tests/nestedset/fixtures/phpbb_forums.xml
Normal file
|
@ -0,0 +1,123 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<dataset>
|
||||||
|
<table name="phpbb_forums">
|
||||||
|
<column>forum_id</column>
|
||||||
|
<column>parent_id</column>
|
||||||
|
<column>left_id</column>
|
||||||
|
<column>right_id</column>
|
||||||
|
<column>forum_parents</column>
|
||||||
|
<column>forum_name</column>
|
||||||
|
<column>forum_desc</column>
|
||||||
|
<column>forum_rules</column>
|
||||||
|
<row>
|
||||||
|
<value>1</value>
|
||||||
|
<value>0</value>
|
||||||
|
<value>1</value>
|
||||||
|
<value>6</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Parent with two flat children</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>2</value>
|
||||||
|
<value>1</value>
|
||||||
|
<value>2</value>
|
||||||
|
<value>3</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Flat child #1</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>3</value>
|
||||||
|
<value>1</value>
|
||||||
|
<value>4</value>
|
||||||
|
<value>5</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Flat child #2</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>4</value>
|
||||||
|
<value>0</value>
|
||||||
|
<value>7</value>
|
||||||
|
<value>12</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Parent with two nested children</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>5</value>
|
||||||
|
<value>4</value>
|
||||||
|
<value>8</value>
|
||||||
|
<value>11</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Nested child #1</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>6</value>
|
||||||
|
<value>5</value>
|
||||||
|
<value>9</value>
|
||||||
|
<value>10</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Nested child #2</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>7</value>
|
||||||
|
<value>0</value>
|
||||||
|
<value>13</value>
|
||||||
|
<value>22</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Parent with flat and nested children</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>8</value>
|
||||||
|
<value>7</value>
|
||||||
|
<value>14</value>
|
||||||
|
<value>15</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Mixed child #1</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>9</value>
|
||||||
|
<value>7</value>
|
||||||
|
<value>16</value>
|
||||||
|
<value>19</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Mixed child #2</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>10</value>
|
||||||
|
<value>9</value>
|
||||||
|
<value>17</value>
|
||||||
|
<value>18</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Nested child #1 of Mixed child #2</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<value>11</value>
|
||||||
|
<value>7</value>
|
||||||
|
<value>20</value>
|
||||||
|
<value>21</value>
|
||||||
|
<value></value>
|
||||||
|
<value>Mixed child #3</value>
|
||||||
|
<value></value>
|
||||||
|
<value></value>
|
||||||
|
</row>
|
||||||
|
</table>
|
||||||
|
</dataset>
|
31
tests/nestedset/item_forum_test.php
Normal file
31
tests/nestedset/item_forum_test.php
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package testing
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_item_forum_test extends phpbb_test_case
|
||||||
|
{
|
||||||
|
public function test_item_forum_constructor()
|
||||||
|
{
|
||||||
|
$forum_data = array(
|
||||||
|
'parent_id' => 1,
|
||||||
|
'forum_id' => 5,
|
||||||
|
'user_id' => 32,
|
||||||
|
'left_id' => 2,
|
||||||
|
'right_id' => 3,
|
||||||
|
'forum_parents' => '',
|
||||||
|
);
|
||||||
|
|
||||||
|
$forum = new phpbb_nestedset_item_forum($forum_data);
|
||||||
|
|
||||||
|
$this->assertEquals($forum->get_item_id(), $forum_data['forum_id']);
|
||||||
|
$this->assertEquals($forum->get_left_id(), $forum_data['left_id']);
|
||||||
|
$this->assertEquals($forum->get_right_id(), $forum_data['right_id']);
|
||||||
|
$this->assertEquals($forum->get_parent_id(), $forum_data['parent_id']);
|
||||||
|
$this->assertEquals($forum->get_item_parents_data(), $forum_data['forum_parents']);
|
||||||
|
}
|
||||||
|
}
|
195
tests/nestedset/set_forum_add_remove_test.php
Normal file
195
tests/nestedset/set_forum_add_remove_test.php
Normal file
|
@ -0,0 +1,195 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Nested Set
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/set_forum_base.php';
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_set_forum_add_remove_test extends phpbb_tests_nestedset_set_forum_base
|
||||||
|
{
|
||||||
|
public function remove_add_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(1, array(1, 2, 3), array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 0, 'right_id' => 0, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 0, 'left_id' => 0, 'right_id' => 0, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 0, 'left_id' => 0, 'right_id' => 0, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 11, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
), array(
|
||||||
|
1 => array('parent_id' => 0, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
2 => array('parent_id' => 0, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
3 => array('parent_id' => 0, 'left_id' => 21, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
), array(
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 11, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 0, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 0, 'left_id' => 21, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array(2, array(2), array(
|
||||||
|
array('forum_id' => 2, 'parent_id' => 0, 'left_id' => 0, 'right_id' => 0, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 5, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 6, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
), array(
|
||||||
|
2 => array('parent_id' => 0, 'left_id' => 21, 'right_id' => 22, 'forum_parents' => '')
|
||||||
|
), array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 5, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 6, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 0, 'left_id' => 21, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider remove_add_data
|
||||||
|
*/
|
||||||
|
public function test_remove_add($forum_id, $expected_removed, $expected_remove_table, $expected_added, $expected_add_table)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
|
||||||
|
$removed_items = $this->set->remove($forum);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_removed, $removed_items);
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected_remove_table, $this->db->sql_fetchrowset($result));
|
||||||
|
|
||||||
|
$added_items = array();
|
||||||
|
foreach ($removed_items as $item_id)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$item_id]);
|
||||||
|
$added_items[$item_id] = $this->set->add($forum);
|
||||||
|
}
|
||||||
|
$this->assertEquals($expected_added, $added_items);
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected_add_table, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function delete_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(1, array(1, 2, 3), array(
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 11, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array(2, array(2), array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 5, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 6, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider delete_data
|
||||||
|
*/
|
||||||
|
public function test_delete($forum_id, $expected_deleted, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_deleted, $this->set->delete($forum));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function insert_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(array(
|
||||||
|
'forum_desc' => '',
|
||||||
|
'forum_rules' => '',
|
||||||
|
'forum_id' => 12,
|
||||||
|
'parent_id' => 0,
|
||||||
|
'left_id' => 23,
|
||||||
|
'right_id' => 24,
|
||||||
|
'forum_parents' => '',
|
||||||
|
), array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 12, 'parent_id' => 0, 'left_id' => 23, 'right_id' => 24, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider insert_data
|
||||||
|
*/
|
||||||
|
public function test_insert($expected_data, $expected)
|
||||||
|
{
|
||||||
|
$this->assertEquals($expected_data, $this->set->insert(array(
|
||||||
|
'forum_desc' => '',
|
||||||
|
'forum_rules' => '',
|
||||||
|
)));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query('SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC');
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
}
|
61
tests/nestedset/set_forum_base.php
Normal file
61
tests/nestedset/set_forum_base.php
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Nested Set
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_set_forum_base extends phpbb_database_test_case
|
||||||
|
{
|
||||||
|
public function getDataSet()
|
||||||
|
{
|
||||||
|
return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/phpbb_forums.xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected $forum_data = array(
|
||||||
|
// \__/
|
||||||
|
1 => array('forum_id' => 1, 'parent_id' => 0, 'user_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
2 => array('forum_id' => 2, 'parent_id' => 1, 'user_id' => 0, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
3 => array('forum_id' => 3, 'parent_id' => 1, 'user_id' => 0, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
// \ /
|
||||||
|
// \/
|
||||||
|
4 => array('forum_id' => 4, 'parent_id' => 0, 'user_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
5 => array('forum_id' => 5, 'parent_id' => 4, 'user_id' => 0, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
6 => array('forum_id' => 6, 'parent_id' => 5, 'user_id' => 0, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
// \_ _/
|
||||||
|
// \/
|
||||||
|
7 => array('forum_id' => 7, 'parent_id' => 0, 'user_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
8 => array('forum_id' => 8, 'parent_id' => 7, 'user_id' => 0, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
9 => array('forum_id' => 9, 'parent_id' => 7, 'user_id' => 0, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
10 => array('forum_id' => 10, 'parent_id' => 9, 'user_id' => 0, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
11 => array('forum_id' => 11, 'parent_id' => 7, 'user_id' => 0, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
// Unexisting forums
|
||||||
|
0 => array('forum_id' => 0, 'parent_id' => 0, 'user_id' => 0, 'left_id' => 0, 'right_id' => 0, 'forum_parents' => ''),
|
||||||
|
200 => array('forum_id' => 200, 'parent_id' => 0, 'user_id' => 0, 'left_id' => 0, 'right_id' => 0, 'forum_parents' => ''),
|
||||||
|
);
|
||||||
|
|
||||||
|
protected $set,
|
||||||
|
$config,
|
||||||
|
$lock,
|
||||||
|
$db;
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->db = $this->new_dbal();
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$config = $this->config = new phpbb_config(array('nestedset_forum_lock' => 0));
|
||||||
|
set_config(null, null, null, $this->config);
|
||||||
|
|
||||||
|
$this->lock = new phpbb_lock_db('nestedset_forum_lock', $this->config, $this->db);
|
||||||
|
$this->set = new phpbb_nestedset_forum($this->db, $this->lock, 'phpbb_forums');
|
||||||
|
}
|
||||||
|
}
|
96
tests/nestedset/set_forum_get_data_test.php
Normal file
96
tests/nestedset/set_forum_get_data_test.php
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Nested Set
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/set_forum_base.php';
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_set_forum_get_data_test extends phpbb_tests_nestedset_set_forum_base
|
||||||
|
{
|
||||||
|
public function get_branch_data_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(1, 'all', true, true, array(1, 2, 3)),
|
||||||
|
array(1, 'all', true, false, array(2, 3)),
|
||||||
|
array(1, 'all', false, true, array(3, 2, 1)),
|
||||||
|
array(1, 'all', false, false, array(3, 2)),
|
||||||
|
|
||||||
|
array(1, 'parents', true, true, array(1)),
|
||||||
|
array(1, 'parents', true, false, array()),
|
||||||
|
array(1, 'parents', false, true, array(1)),
|
||||||
|
array(1, 'parents', false, false, array()),
|
||||||
|
|
||||||
|
array(1, 'children', true, true, array(1, 2, 3)),
|
||||||
|
array(1, 'children', true, false, array(2, 3)),
|
||||||
|
array(1, 'children', false, true, array(3, 2, 1)),
|
||||||
|
array(1, 'children', false, false, array(3, 2)),
|
||||||
|
|
||||||
|
array(2, 'all', true, true, array(1, 2)),
|
||||||
|
array(2, 'all', true, false, array(1)),
|
||||||
|
array(2, 'all', false, true, array(2, 1)),
|
||||||
|
array(2, 'all', false, false, array(1)),
|
||||||
|
|
||||||
|
array(2, 'parents', true, true, array(1, 2)),
|
||||||
|
array(2, 'parents', true, false, array(1)),
|
||||||
|
array(2, 'parents', false, true, array(2, 1)),
|
||||||
|
array(2, 'parents', false, false, array(1)),
|
||||||
|
|
||||||
|
array(2, 'children', true, true, array(2)),
|
||||||
|
array(2, 'children', true, false, array()),
|
||||||
|
array(2, 'children', false, true, array(2)),
|
||||||
|
array(2, 'children', false, false, array()),
|
||||||
|
|
||||||
|
array(5, 'all', true, true, array(4, 5, 6)),
|
||||||
|
array(5, 'all', true, false, array(4, 6)),
|
||||||
|
array(5, 'all', false, true, array(6, 5, 4)),
|
||||||
|
array(5, 'all', false, false, array(6, 4)),
|
||||||
|
|
||||||
|
array(5, 'parents', true, true, array(4, 5)),
|
||||||
|
array(5, 'parents', true, false, array(4)),
|
||||||
|
array(5, 'parents', false, true, array(5, 4)),
|
||||||
|
array(5, 'parents', false, false, array(4)),
|
||||||
|
|
||||||
|
array(5, 'children', true, true, array(5, 6)),
|
||||||
|
array(5, 'children', true, false, array(6)),
|
||||||
|
array(5, 'children', false, true, array(6, 5)),
|
||||||
|
array(5, 'children', false, false, array(6)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider get_branch_data_data
|
||||||
|
*/
|
||||||
|
public function test_get_branch_data($forum_id, $type, $order_desc, $include_item, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected, array_keys($this->set->get_branch_data($forum, $type, $order_desc, $include_item)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_parent_data_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(1, array(), array()),
|
||||||
|
array(1, array('forum_parents' => serialize(array())), array()),
|
||||||
|
array(2, array(), array(1)),
|
||||||
|
array(2, array('forum_parents' => serialize(array(1 => array()))), array(1)),
|
||||||
|
array(10, array(), array(7, 9)),
|
||||||
|
array(10, array('forum_parents' => serialize(array(7 => array(), 9 => array()))), array(7, 9)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider get_parent_data_data
|
||||||
|
*/
|
||||||
|
public function test_get_parent_data($forum_id, $forum_data, $expected)
|
||||||
|
{
|
||||||
|
$data = array_merge($this->forum_data[$forum_id], $forum_data);
|
||||||
|
$forum = new phpbb_nestedset_item_forum($data);
|
||||||
|
|
||||||
|
$this->assertEquals($expected, array_keys($this->set->get_parent_data($forum)));
|
||||||
|
}
|
||||||
|
}
|
565
tests/nestedset/set_forum_move_test.php
Normal file
565
tests/nestedset/set_forum_move_test.php
Normal file
|
@ -0,0 +1,565 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Nested Set
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/set_forum_base.php';
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_set_forum_move_test extends phpbb_tests_nestedset_set_forum_base
|
||||||
|
{
|
||||||
|
public function move_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('Move first item up',
|
||||||
|
1, 1, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move last item down',
|
||||||
|
7, -1, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move first item down',
|
||||||
|
1, -1, true, array(
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move second item up',
|
||||||
|
4, 1, true, array(
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move last item up',
|
||||||
|
7, 1, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 11, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 17, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 18, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move last item up by 2',
|
||||||
|
7, 2, true, array(
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 4, 'right_id' => 7, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 5, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 17, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 18, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move last item up by 100',
|
||||||
|
7, 100, true, array(
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 4, 'right_id' => 7, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 5, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 17, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 18, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_data
|
||||||
|
*/
|
||||||
|
public function test_move($explain, $forum_id, $delta, $expected_moved, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_moved, $this->set->move($forum, $delta));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function move_down_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('Move last item down',
|
||||||
|
7, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move first item down',
|
||||||
|
1, true, array(
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_down_data
|
||||||
|
*/
|
||||||
|
public function test_move_down($explain, $forum_id, $expected_moved, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_moved, $this->set->move_down($forum));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function move_up_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('Move first item up',
|
||||||
|
1, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move second item up',
|
||||||
|
4, true, array(
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 2, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 3, 'right_id' => 4, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_up_data
|
||||||
|
*/
|
||||||
|
public function test_move_up($explain, $forum_id, $expected_moved, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_moved, $this->set->move_up($forum));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function move_children_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('Item has no children',
|
||||||
|
2, 1, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move to same parent',
|
||||||
|
4, 4, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Parent is 0',
|
||||||
|
0, 1, false, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move single child up',
|
||||||
|
5, 1, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 1, 'left_id' => 6, 'right_id' => 7, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 9, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move nested children up',
|
||||||
|
4, 1, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 1, 'left_id' => 6, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move single child down',
|
||||||
|
5, 7, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
)),
|
||||||
|
array('Move nested children down',
|
||||||
|
4, 7, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 9, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 13, 'right_id' => 14, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move single child to parent 0',
|
||||||
|
5, 0, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 6, 'parent_id' => 0, 'left_id' => 21, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move nested children to parent 0',
|
||||||
|
4, 0, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 9, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 13, 'right_id' => 14, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 5, 'parent_id' => 0, 'left_id' => 19, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_children_data
|
||||||
|
*/
|
||||||
|
public function test_move_children($explain, $forum_id, $target_id, $expected_moved, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
$target = new phpbb_nestedset_item_forum($this->forum_data[$target_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_moved, $this->set->move_children($forum, $target));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function move_children_throws_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('New parent is child', 4, 5),
|
||||||
|
array('New parent is child 2', 7, 9),
|
||||||
|
array('New parent does not exist', 1, 200),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider move_children_throws_data
|
||||||
|
*
|
||||||
|
* @expectedException phpbb_nestedset_exception
|
||||||
|
* @expectedExceptionMessage FORUM_NESTEDSET_INVALID_PARENT
|
||||||
|
*/
|
||||||
|
public function test_move_children_throws($explain, $forum_id, $target_id)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
$target = new phpbb_nestedset_item_forum($this->forum_data[$target_id]);
|
||||||
|
|
||||||
|
$this->set->move_children($forum, $target);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function set_parent_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('Move single child up',
|
||||||
|
6, 1, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 1, 'left_id' => 6, 'right_id' => 7, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 9, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move nested children up',
|
||||||
|
5, 1, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 1, 'left_id' => 6, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move single child down',
|
||||||
|
6, 7, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move nested children down',
|
||||||
|
5, 7, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 9, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 13, 'right_id' => 14, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 19, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move single child to parent 0',
|
||||||
|
6, 0, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 9, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 11, 'right_id' => 20, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 13, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 15, 'right_id' => 16, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 18, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 6, 'parent_id' => 0, 'left_id' => 21, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('Move nested children to parent 0',
|
||||||
|
5, 0, true, array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 8, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 9, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 10, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 12, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 13, 'right_id' => 14, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 17, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 5, 'parent_id' => 0, 'left_id' => 19, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider set_parent_data
|
||||||
|
*/
|
||||||
|
public function test_set_parent($explain, $forum_id, $target_id, $expected_moved, $expected)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
$target = new phpbb_nestedset_item_forum($this->forum_data[$target_id]);
|
||||||
|
|
||||||
|
$this->assertEquals($expected_moved, $this->set->set_parent($forum, $target));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query("SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC");
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function set_parent_throws_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('New parent is child', 4, 5),
|
||||||
|
array('New parent is child 2', 7, 9),
|
||||||
|
array('New parent does not exist', 1, 200),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider set_parent_throws_data
|
||||||
|
*
|
||||||
|
* @expectedException phpbb_nestedset_exception
|
||||||
|
* @expectedExceptionMessage FORUM_NESTEDSET_INVALID_PARENT
|
||||||
|
*/
|
||||||
|
public function test_set_parent_throws($explain, $forum_id, $target_id)
|
||||||
|
{
|
||||||
|
$forum = new phpbb_nestedset_item_forum($this->forum_data[$forum_id]);
|
||||||
|
$target = new phpbb_nestedset_item_forum($this->forum_data[$target_id]);
|
||||||
|
|
||||||
|
$this->set->set_parent($forum, $target);
|
||||||
|
}
|
||||||
|
}
|
72
tests/nestedset/set_forum_recalculate_test.php
Normal file
72
tests/nestedset/set_forum_recalculate_test.php
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Nested Set
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/set_forum_base.php';
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_set_forum_recalculate_test extends phpbb_tests_nestedset_set_forum_base
|
||||||
|
{
|
||||||
|
protected $fixed_set = array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
);
|
||||||
|
|
||||||
|
public function recalculate_nested_set_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('UPDATE phpbb_forums
|
||||||
|
SET left_id = 0,
|
||||||
|
right_id = 0', false),
|
||||||
|
array('UPDATE phpbb_forums
|
||||||
|
SET left_id = 28,
|
||||||
|
right_id = 28
|
||||||
|
WHERE left_id > 12', false),
|
||||||
|
array('UPDATE phpbb_forums
|
||||||
|
SET left_id = left_id * 2,
|
||||||
|
right_id = right_id * 2', false),
|
||||||
|
array('UPDATE phpbb_forums
|
||||||
|
SET left_id = left_id * 2,
|
||||||
|
right_id = right_id * 2
|
||||||
|
WHERE left_id > 12', false),
|
||||||
|
array('UPDATE phpbb_forums
|
||||||
|
SET left_id = left_id - 4,
|
||||||
|
right_id = right_id * 4
|
||||||
|
WHERE left_id > 4', false),
|
||||||
|
array('UPDATE phpbb_forums
|
||||||
|
SET left_id = 0,
|
||||||
|
right_id = 0
|
||||||
|
WHERE left_id > 12', true),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider recalculate_nested_set_data
|
||||||
|
*/
|
||||||
|
public function test_recalculate_nested_set($breaking_query, $reset_ids)
|
||||||
|
{
|
||||||
|
$result = $this->db->sql_query($breaking_query);
|
||||||
|
|
||||||
|
$this->assertEquals(23, $this->set->recalculate_nested_set(1, 0, $reset_ids));
|
||||||
|
|
||||||
|
$result = $this->db->sql_query('SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC');
|
||||||
|
$this->assertEquals($this->fixed_set, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
}
|
116
tests/nestedset/set_forum_test.php
Normal file
116
tests/nestedset/set_forum_test.php
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @package Nested Set
|
||||||
|
* @copyright (c) 2013 phpBB Group
|
||||||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/set_forum_base.php';
|
||||||
|
|
||||||
|
class phpbb_tests_nestedset_set_forum_test extends phpbb_tests_nestedset_set_forum_base
|
||||||
|
{
|
||||||
|
public function forum_constructor_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider forum_constructor_data
|
||||||
|
*/
|
||||||
|
public function test_forum_constructor($expected)
|
||||||
|
{
|
||||||
|
$result = $this->db->sql_query('SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
ORDER BY left_id, forum_id ASC');
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_sql_where_data()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
%s
|
||||||
|
ORDER BY left_id, forum_id ASC',
|
||||||
|
'WHERE', '', array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('SELECT f.forum_id, f.parent_id, f.left_id, f.right_id, f.forum_parents
|
||||||
|
FROM phpbb_forums f
|
||||||
|
%s
|
||||||
|
ORDER BY f.left_id, f.forum_id ASC',
|
||||||
|
'WHERE', 'f.', array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 4, 'parent_id' => 0, 'left_id' => 7, 'right_id' => 12, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 5, 'parent_id' => 4, 'left_id' => 8, 'right_id' => 11, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 6, 'parent_id' => 5, 'left_id' => 9, 'right_id' => 10, 'forum_parents' => ''),
|
||||||
|
|
||||||
|
array('forum_id' => 7, 'parent_id' => 0, 'left_id' => 13, 'right_id' => 22, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 8, 'parent_id' => 7, 'left_id' => 14, 'right_id' => 15, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 9, 'parent_id' => 7, 'left_id' => 16, 'right_id' => 19, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 10, 'parent_id' => 9, 'left_id' => 17, 'right_id' => 18, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 11, 'parent_id' => 7, 'left_id' => 20, 'right_id' => 21, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('SELECT forum_id, parent_id, left_id, right_id, forum_parents
|
||||||
|
FROM phpbb_forums
|
||||||
|
WHERE forum_id < 4 %s
|
||||||
|
ORDER BY left_id, forum_id ASC',
|
||||||
|
'AND', '', array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
array('SELECT f.forum_id, f.parent_id, f.left_id, f.right_id, f.forum_parents
|
||||||
|
FROM phpbb_forums f
|
||||||
|
WHERE f.forum_id < 4 %s
|
||||||
|
ORDER BY f.left_id, f.forum_id ASC',
|
||||||
|
'AND', 'f.', array(
|
||||||
|
array('forum_id' => 1, 'parent_id' => 0, 'left_id' => 1, 'right_id' => 6, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 2, 'parent_id' => 1, 'left_id' => 2, 'right_id' => 3, 'forum_parents' => ''),
|
||||||
|
array('forum_id' => 3, 'parent_id' => 1, 'left_id' => 4, 'right_id' => 5, 'forum_parents' => ''),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider get_sql_where_data
|
||||||
|
*/
|
||||||
|
public function test_get_sql_where($sql_query, $operator, $column_prefix, $expected)
|
||||||
|
{
|
||||||
|
$result = $this->db->sql_query(sprintf($sql_query, $this->set->get_sql_where($operator, $column_prefix)));
|
||||||
|
$this->assertEquals($expected, $this->db->sql_fetchrowset($result));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue