Enviando cabeçalhos HTTP para controladores ao testar no Laravel

Ao testar um controlador no Laravel, você pode fornecer parâmetros do servidor como parte da invocação do controlador. Mas se você estiver tentando enviar cabeçalhos HTTP, certifique-se de que eles estão formatados corretamente ou serão ignorados.

Internamente, o Laravel usa muitos componentes Symfony, e neste caso particular o Symfony Component HttpFoundation ServerBag envolve a variável $ _SERVER, e ele filtra qualquer cabeçalho que não comece com “HTTP_”.

//#call($method, $uri, $parameters, $files, $server, $content, $changeHistory)

//Custom-Header will be ignored, and Request::header() will not contain it
$this
->call('GET', 'my/url', [], [], ['Custom-Header' => 'content']);

//Custom-Header will now be available. The "HTTP_" is stripped off of the name
$this
->call('GET', 'my/url', [], [], ['HTTP_Custom-Header' => 'content']);