Nastavení hodnoty do HTTP hlaviček a její testování
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- radas
- Člen | 224
Ve zdrojovém kódu modelu získávám hodnotu HTTP hlavičky ‚X-USERGUID‘ pomocí
$httpRequest->getHeader('X-USERGUID');
kde $httpRequest je instancí třídy Nette\Http\Request. Jak ale tuto hodnotu přidat do hlaviček v testu? Zatím mám v phpt souboru toto:
$_SERVER = array(
...
'HTTP_X-USERGUID' => 'hodnota' // zkoušel jsem i jen X-USERGUID
);
$factory = new Nette\Http\RequestFactory();
$httpRequest = $factory->createHttpRequest();
test(function() use ($httpRequest)
{
var_dump($httpRequest->getHeaders());
});
což mi ale vypíše vždy prázdné pole.
Díky moc za radu.
- Milo
- Nette Core | 1283
V php-cgi existuje apache_request_headers()
(alespoň u mě).
Viz. HttpRequestFactory
Zkus spustit testy pod php-cli.
Nebo si request vytvoř ručně: new Nette\Http\Request(....)
.
Nebo přes reflexi uprav private $headers
. Nebo pokud používáš
Tester a PHP 5.4+:
Assert::with($request, function() {
$this->headers = [...];
});