Автоматическая проверка переадресации с помощью Codeception

Рассмотрим реализацию теста, который подтверждает (проверяет) переадресацию пользователя на определённый URL.

На самом деле нам не нужно проверять, что пользователь перешёл на целевой URL. Задача веб-сервера заключается в том, чтобы отправить клиенту верный http-ответ с корректным заголовком и правильным статусом.

Далее уже клиент решает, переходить ему по этому URL или нет.

Пример конфигурации rest.suite.yml

actor: RestTester
modules:
    enabled:
        - REST:
            depends: PhpBrowser
            url: http://адрес-сервера

Пример автоматической проверки

class RedirectCest{
    public function autodiscoverRedirect(RestTester $I) {
        $I->stopFollowingRedirects(); // запрещаем переходить по URL, чтобы отследить ответ сервера
        $I->sendGET('/autodiscover/autodiscover.xml'); // делаем запрос
        $I->seeResponseCodeIs(302); // Проверяем код ответа (302 или 301)
        $I->seeHttpHeader('Location', 'https://vnytve.ru'); // Проверяем целевой URL для клиента
    }
}

Таким образом мы убеждаемся в присутствии переадресации при определённом запросе пользователя на веб-сервер.