Чтобы использовать систему, которую я пытаюсь протестировать, вы должны быть авторизованным пользователем. После входа в систему создается переменная $_SESSION, содержащая идентификатор пользователя и имя пользователя, и пока вы вошли в систему. Этот сеанс всегда проверяется, и если эта переменная сеанса не существует, пользователь перенаправляется на страницу входа. . Я могу войти с помощью behat, но как только он входит в систему, меня перенаправляют обратно на страницу входа. Если я прокомментирую строки, отвечающие за проверку $_SESSION, все будет работать как положено. Ребята, вы знаете какой-нибудь способ войти в систему и сохранить сессию? Я прочитал много решений, использующих laravel или symfony, но я не использую никакой фреймворк.
Вот код функции:
Feature:
In order to use the system, the user needs a valid login first
Scenario: Loading the log in page
Given I am on "/login.php"
Then I should see "Login"
@javascript
Scenario: Logging in with the right credentials
Given I am signed in
And I am on "/students"
And I wait 10 seconds
Then I should see "logout"
А вот часть кода контекста mink:
/**
* @Given /^(?:|I )am signed in$/
*/
public function signIn()
{
session_start();
$_SESSION['admin']["user_name"] = 'admin';
$_SESSION['admin']["id"] = '1';
$this->getSession()->getDriver()->setCookie(session_name(), session_id());
session_commit();
}