[ticket/17135] Add ACP modules common test

PHPBB-17135
This commit is contained in:
rxu 2025-01-06 20:54:34 +07:00
parent 0d8c0c4228
commit cd17625e21
No known key found for this signature in database
GPG key ID: 955F0567380E586A
2 changed files with 60 additions and 1 deletions

View file

@ -15,7 +15,6 @@ namespace phpbb\template\twig;
use Twig\Error\RuntimeError;
use Twig\Extension\CoreExtension;
use Twig\Extension\EscaperExtension;
use Twig\Runtime\EscaperRuntime;
class extension extends \Twig\Extension\AbstractExtension

View file

@ -0,0 +1,60 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
/**
* @group functional
*/
class phpbb_functional_acp_test extends phpbb_functional_test_case
{
public function test_all_acp_module_links()
{
$this->login();
$this->admin_login();
$this->add_lang(['common']);
// Browse ACP main page
$crawler = self::request('GET', 'index.php');
$crawler = self::$client->click($crawler->selectLink($this->lang('ACP_SHORT'))->link());
// Get all ACP module URLs array
$acp_modules = $crawler->filter('li.tab a')->each(
function ($node, $i)
{
// Filter out responsive mode links
if (empty($node->attr('class')))
{
return $node->link();
}
}
);
// Browse all ACP modules and get their mode URLs array
$acp_submodules = [];
foreach ($acp_modules as $module)
{
$crawler = self::$client->click($module);
$acp_submodules = array_merge($acp_submodules, $crawler->filter('div.menu_block li a')->each(
function ($node, $i)
{
return $node->link();
}
));
}
// Browse all ACP submodules' modes
foreach ($acp_submodules as $acp_submodule)
{
self::$client->click($acp_submodule);
}
}
}