Делаю скрипт для проверки битых ссылок в админке
Должна быть стандартная практика на этот случай
Тестированию -- тестовые инструменты
Почему бы не сделать это через Codeception? А именно через приемочные тесты....
Через драйвер PhpBrowser работают куки и сессия и можно залогиниться и собрать все ссылки :) И он ставится через композер вместе с самим Codeception, явный недостаток перед веб-драйвером -- он не может ждать (например запросы через аякс)
Кроме того и цель все же -- тестирование, так покрой всю админку простейшими тестами, а может быть даже и сделай задел для более полного тестирования
Примерный вид готового приемочного теста:
// Тут предварительно логинимся (метод amLogin() не родной,
// надо создать его в классе AcceptanceTester)
public function _before(AcceptanceTester $I)
{
$I->amLogin('admin', 'admin');
$I->amOnPage('/admin');
}
/** Ниже добавляем через аннотацию провайдер всех ссылок
* и данный тест будет выполняться для каждой ссылки в админке
* @dataProvider linksInAdminPanel
*
* Или вычесать все ссылки с каждой страницы в методе
* и записать в массив и потом по ним идти, проверяя -- была ссылка или нет
*
*/
public function linkIsCorrect(AcceptanceTester $I, \Codeception\Example $pageAdmin)
{
$I->amOnPage($pageAdmin['url']);
$I->seeResponseCodeIs(HttpCode::OK);
}
// Перечень ссылок в админке
protected function linksInAdminPanel()
{
return [
['url' => '/admin/users'],
['url' => '/admin/settings'],
['url' => '/admin/products'],
....
];
}