Test uploadu souboru – přidání uploadovaných souborů
- kikinet
- Člen | 35
Ahoj, snažím se otestovat upload souboru.
Jak odeslat nějaký file při testování? Pročítala jsem tuhle diskuzi, ale file se neodešle a tudíž to končí chybou, že file je required.
public function testAddManual(){
$filearr = [
"name" => "test.jpg",
"type" => NULL,
"size" => 93239,
"tmpName" => "/tmp/phpj7TnpZ",
"error" => 0
];
$file = new Nette\Http\FileUpload($filearr);
$get = [
"action" => "addManual"
];
$post = [
"do" => "manualFormControl-manualForm-submit",
"files_name" => "test",
"files_description" => "test",
"file" => $file,
"tags" => "test".Nette\Utils\Strings::random(5)
];
$request = new Nette\Application\Request("Admin:Manual", "POST", $get, $post, ['picture' => $file]);
$request->files = ['picture' => $file];
$response = $this->presenter->run($request);
Assert::type('Nette\Application\Responses\RedirectResponse', $response);
}
- Blujacker
- Člen | 89
Zdravim,
hlasim se ke stejnemu problemu jako Kikinet – snazim se testovat
uploadovani souboru ale nedari se mi procpat testovaci soubor do requestu.
Zkousel jsem je pridavat jak pres konstruktor
\Nette\Application\Request
tak i pres metodu
setFiles(['file' => new Nette\Http\FileUpload(...)])
.
Podarilo se nekomu rozjet testovani pres Nette\Tester a uploadovani souboru?
Mnohokrat dekuji!
- Blujacker
- Člen | 89
Antik napsal(a):
Mělo by to být podobné i u Nette\Tester. Tady
Nejsem si jisty ze to chapu, v Tvojem reseni se soubory (instance
\Nette\Http\FileUpload
) posilaji pomoci
\Nette\Application\Request
jako 4 parametr – tedy jako POST
parametry. Ale soubory se maji podle dokumnetace davat az jako 5 paremetr.
Zkousel jsem oba postupy
$file = new \Nette\Http\FileUpload([
'name' => 'test.jpg',
'type' => 'image/jpg',
'size' => 11,
'tmpName' => 'test/test.jpg',
'error' => 0,
]);
$post = [
'file' => $file,
'do' => 'importCustomersFormControl-importCustomersForm-submit',
];
$files = ['file' => $file];
$request = new \Nette\Application\Request('Customers:ImportCustomers', 'POST', [], $post, $files);
Nicmene v obsluzne metode formulare importCustomersForm
se ten
testovaci soubor neobjevi – pokud si dumpnu $values
v
onSuccess
metode, dostanu:
Nette\Utils\ArrayHash #39c3
file => Nette\Http\FileUpload #1f14
| name private => NULL
| type private => NULL
| size private => NULL
| tmpName private => NULL
| error private => 4
Kde delam chybu prosim?
Dekuji!