Проверка базовой аутентификации

Я хочу проверить мои основные страницы, защищенные аутентификацией. Тест для unauthorization работает отлично. Но я борюсь за авторизованный вход в систему, так как не знаю, как включить заголовки в тесте.

Я не мог найти подсказку, как установить заголовки на $this->call(), Единственная информация, которую я смог найти:

$this->call($method, $uri, $parameters, $cookies, $files, $server, $content);

и отсутствуют заголовки.

Как мне легко проверить базовую аутентификацию на laravel. Конкретно: как установить базовый заголовок аутентификации для тестового запроса?

Что у меня сейчас есть:

class ExampleTest extends TestCase {
public function test401UnauthorizedOnMe() {
$response = $this->call('GET', '/api/me');
$this->assertResponseStatus( 401);
}

public function testCorrectLoginOnMe() {
// http://shortrecipes.blogspot.de/2009/12/testing-basic-http-authentication-using.html
//send header with correct user and password i.e.
////YWRtaW46YWRtaW4xMg== is equal to base64_encode( "admin:admin12")
$this->request->setHeader( 'Authorization','Basic YWRtaW46YWRtaW4xMg==');
$response = $this->call('GET', '/api/me');
$this->assertResponseStatus(200);
}
}

Я старался $this->$request->setHeader(); но с этим я получаю только ошибку:

1) ExampleTest::testCorrectLoginOnMe
ErrorException: Undefined property: ExampleTest::$request

6

Решение

Нашел решение с HTTP-аутентификация с PHP. Это может быть использовано в $server параметр $this->call(),

Вот моя рабочая функция:

public function testCorrectLoginOnMe() {
// call( $method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)
$this->call('GET', '/api/me', [], [], [], ['PHP_AUTH_USER' => 'admin', 'PHP_AUTH_PW' => 'admin12']);
$this->assertResponseStatus( 200 );
}
9

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector