Testovani presenteru a RAW POST data
- Blujacker
- Člen | 89
Ahoj,
testuji presenter, ktery simuluje web service. Potrebuji mu tedy predat raw post data (php://input), ale netusim jak. Doposud jsem pouzival
$request = new Nette\Application\Request($name, $method, $params, $post);
$presenter->run($request);
Ale Nette\Application\Request
nema zadny parameter
setRawBody
(zatimco treba Nette\Http\Request
ma metodu
getRawBody
).
Dekuji za kazde nakopnuti!
- Milo
- Nette Core | 1283
Jak na ta data saháš v presenteru? Jestli přímo přes
php://input
, tak to snadno nejde. Musel by sis rozjet vlasní HTTP
server pro testy.
Jestli na ně saháš přes Nette\Http\Request::getRawBody()
,
nahraď Request v kontejneru a přes konstruktor mu dej $rawBodyCallback.
- Blujacker
- Člen | 89
Pouzival jsem php://input
, ale nakonec se mi to vse podarilo
prepsat na getRawBody()
. Ale bohuzel si nejsem jisty, jak nahradit
sluzbu v kontejneru svou vlastni. Request, ktery bych ocekaval bych vytvarel
asi takto:
public function testValidSmartcard(){
$headers = [
"username" => "user",
"password" => "pwd",
];
$this->request = new \Nette\Http\Request(new \Nette\Http\UrlScript, NULL, NULL, NULL, NULL, $headers, "POST", NULL, NULL, function (){return "request's body";} );
}
Ale netusim, jak ho dostat do presenteru.
Dekuji