1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-21 00:02:18 +02:00

[ticket/16904] Adjust tests

PHPBB3-16904
This commit is contained in:
rxu 2021-11-07 18:11:37 +07:00
parent 1e6c5cd381
commit 4d00c4c8af
No known key found for this signature in database
GPG Key ID: 955F0567380E586A
2 changed files with 44 additions and 29 deletions

View File

@ -18,11 +18,11 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
{
public function test_create_topics()
{
$this->add_lang(['acp/common', 'common']);
$this->add_lang(['acp/common', 'acp/forums', 'common']);
$this->login();
$this->admin_login();
// Disable flood intervar to post >1 of topics
// Disable flood interval to post >1 of topics
$crawler = self::request('GET', "adm/index.php?i=acp_board&mode=post&sid={$this->sid}");
$form = $crawler->selectButton($this->lang('SUBMIT'))->form([
'config[flood_interval]' => 0,
@ -30,6 +30,20 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
$crawler = self::submit($form);
$this->assertContainsLang('CONFIG_UPDATED', $crawler->text());
// Create a forum to move topics around
$forum_name = 'MCP Test #1';
$crawler = self::request('GET', "adm/index.php?i=acp_forums&mode=manage&sid={$this->sid}");
$form = $crawler->selectButton($this->lang('CREATE_FORUM'))->form([
'forum_name' => $forum_name,
]);
$crawler = self::submit($form);
$form = $crawler->selectButton($this->lang('SUBMIT'))->form([
'forum_parent_id' => 1,
'forum_perm_from' => 2,
]);
$crawler = self::submit($form);
$this->assertContainsLang('FORUM_CREATED', $crawler->text());
// Create topics to test with
$post = [];
$post[] = $this->create_topic(2, 'Test Topic 3', 'Testing forum moderation actions from MCP/View forum page.');
@ -54,8 +68,7 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
// Browse MCP main page from forum view (gives &f=2)
$crawler = self::request('GET', "viewforum.php?f=2&sid={$this->sid}");
$mcp_link = substr_replace($crawler->selectLink($this->lang('MCP_SHORT'))->attr('href'), '', 0, 2); // Remove leading ./
$crawler = self::request('GET', $mcp_link);
$crawler = self::$client->click($crawler->selectLink($this->lang('MCP_SHORT'))->link());
// Test forum moderation page has a list of topics to select
$this->assertGreaterThanOrEqual(3, $crawler->filter('input[type=checkbox]')->count());
@ -95,8 +108,7 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
$this->login();
$crawler = self::request('GET', "viewforum.php?f=2&sid={$this->sid}");
$mcp_link = substr_replace($crawler->selectLink($this->lang('MCP_SHORT'))->attr('href'), '', 0, 2); // Remove leading ./
$crawler = self::request('GET', $mcp_link);
$crawler = self::$client->click($crawler->selectLink($this->lang('MCP_SHORT'))->link());
// Test actions
$form = $crawler->selectButton($this->lang('SUBMIT'))->form()->disableValidation()->setValues([
@ -110,22 +122,28 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
if ($action == 'merge_topics')
{
// Merge topic_id_1 into topic_id_2
$select_for_merge_link = substr_replace($crawler->filter('.row a')->reduce(
$select_for_merge_link = $crawler->selectLink($this->lang('SELECT_MERGE'))->reduce(
function ($node, $i) use ($topic_id_2)
{
return (bool) strpos($node->attr('href'), "to_topic_id=$topic_id_2");
}
)->attr('href'), '', 0, 2); // Remove leading ./
)->link();
$crawler = self::request('GET', $select_for_merge_link);
$crawler = self::$client->click($select_for_merge_link);
}
$form = $crawler->selectButton($this->lang('YES'))->form();
if (in_array($action, ['fork', 'move']))
{
// Fork or move the topic to the forum id=3 'Download #1'
$form->setValues(['to_forum_id' => 3]);
// Fork or move the topic to the 'MCP Test #1'
$forum_id = $crawler->filter('select > option')->reduce(
function ($node, $i)
{
return (bool) strpos($node->text(), 'MCP Test #1');
}
)->attr('value');
$form['to_forum_id']->select($forum_id);
}
$crawler = self::submit($form);
@ -142,10 +160,10 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
$this->add_lang(['common', 'mcp']);
$this->login();
// Get to the forum id=3 'Download #1' where the topic has been moved to in previous test
$crawler = self::request('GET', "viewforum.php?f=3&sid={$this->sid}");
$mcp_link = substr_replace($crawler->selectLink($this->lang('MCP_SHORT'))->attr('href'), '', 0, 2); // Remove leading ./
$crawler = self::request('GET', $mcp_link);
// Get to the forum 'MCP Test #1' where the topic has been moved to in previous test
$crawler = self::request('GET', "index.php?sid={$this->sid}");
$crawler = self::$client->click($crawler->selectLink('MCP Test #1')->link());
$crawler = self::$client->click($crawler->selectLink($this->lang('MCP_SHORT'))->link());
// Get topic ids to delete (forked and moved topics in the previous test)
$topic_link_1 = $crawler->selectLink('Test Topic 3')->attr('href');
@ -214,8 +232,7 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
$this->login();
$crawler = self::request('GET', "viewtopic.php?t={$post[0]['topic_id']}&sid={$this->sid}");
$mcp_link = substr_replace($crawler->selectLink($this->lang('MCP_SHORT'))->attr('href'), '', 0, 2); // Remove leading ./
$crawler = self::request('GET', $mcp_link);
$crawler = self::$client->click($crawler->selectLink($this->lang('MCP_SHORT'))->link());
$this->assertLessThanOrEqual(count($post), $crawler->filter('input[type=checkbox]')->count());
// Test actions
@ -264,22 +281,22 @@ class phpbb_functional_mcp_main_test extends phpbb_functional_test_case
{
// Merge posts into '[Split] Topic 1'
// Get topics list to select from
$select_topic = substr_replace($crawler->selectLink($this->lang('SELECT_TOPIC'))->attr('href'), '', 0, 2); // Remove leading ./
$crawler = self::request('GET', $select_topic);
$crawler = self::$client->click($crawler->selectLink($this->lang('SELECT_TOPIC'))->link());
// Get '[Split] Topic 1' topic_id
$to_topic_link = $crawler->selectLink('[Split] Topic 1')->attr('href');
$to_topic_id = (int) $this->get_parameter_from_link($to_topic_link, 't');
// Select '[Split] Topic 1'
$select_for_merge_link = substr_replace($crawler->filter('.row a')->reduce(
$select_for_merge_link = $crawler->selectLink($this->lang('SELECT_MERGE'))->reduce(
function ($node, $i) use ($to_topic_id)
{
return (bool) strpos($node->attr('href'), "to_topic_id=$to_topic_id");
}
)->attr('href'), '', 0, 2); // Remove leading ./
)->link();
$crawler = self::$client->click($select_for_merge_link);
$crawler = self::request('GET', $select_for_merge_link);
$this->assertEquals($to_topic_id, (int) $crawler->filter('#to_topic_id')->attr('value'));
// Reselect post ids to move

View File

@ -23,14 +23,13 @@ class phpbb_functional_mcp_test extends phpbb_functional_test_case
// Browse MCP main page
$crawler = self::request('GET', 'index.php');
$mcp_link = substr_replace($crawler->selectLink($this->lang('MCP_SHORT'))->attr('href'), '', 0, 2); // Remove leading ./
$crawler = self::request('GET', $mcp_link);
$crawler = self::$client->click($crawler->selectLink($this->lang('MCP_SHORT'))->link());
// Get all MCP module URLs array
$mcp_modules = $crawler->filter('.tabs a')->each(
function ($node, $i)
{
return substr_replace($node->attr('href'), '', 0, 2); // Remove leading ./
return $node->link();
}
);
@ -38,20 +37,19 @@ class phpbb_functional_mcp_test extends phpbb_functional_test_case
$mcp_submodules = [];
foreach ($mcp_modules as $module)
{
$crawler = self::request('GET', $module);
$crawler = self::$client->click($module);
$mcp_submodules = array_merge($mcp_submodules, $crawler->filter('.cp-menu a')->each(
function ($node, $i)
{
return substr_replace($node->attr('href'), '', 0, 2); // Remove leading ./
return $node->link();
}
));
}
// Browse all MCP submodules' modes
$mcp_submodule_modes = [];
foreach ($mcp_submodules as $mcp_submodule)
{
$crawler = self::request('GET', $mcp_submodule);
self::$client->click($mcp_submodule);
}
}
}