I’ve been trying my hands on a somewhat stateless file upload: User uploads a file, the controller processes it and returns a form with pre-filled out fields based on the values from the file. The uploaded file is not saved in any manner.
Fortunately, I was successful
Now, I want to write unit tests for this function, and I am stuck as to how I would approach that.
I’ve tried already to use setFiles() in the test case like so:
$request = $this->getRequest(); $request->setFiles(new Parameters( [ 'fileUpload' => [ 'name' => 'project.xml', 'type' => 'text/xml', 'tmp_name' => __DIR__.'/project.xml', 'error' => 0, 'size' => 128885 ] ] )); $this->dispatch('/thing/add', 'POST', ['importButton' => 'Import']);
But PHP considers this ‘an illegal file upload’ (which is understandable imho).
How would I ‘legally’ upload a file in this scenario? Or is another approach such as overwriting the $form->isValid() (in the controller) via stub more viable?
Thanks a lot!