How can I write tests for file upload in PHP?
file-upload, php, simpletest, unit-testing, upload
Solution
I've found an alternate solution. I've spoofed the `$_FILES` array with test data, created dummy test files in the `tmp/` folder (the folder is irrelevant, but I tried to stick with the default).
The problem was that `is_uploaded_file` and `move_uploaded_file` could not work with this spoofed items, because they are not really uploaded through `POST`. First thing I did was to wrap those functions inside my own `moveUploadedFile` and `isUploadedFile` in my plugin so I can mock them and change their return value.
The last thing was to extends the class when testing it and overwriting `moveUploadedFile` to use `rename` instead of `move_uploaded_file` and `isUploadedFile` to use `file_exists` instead of `is_uploaded_file`.
Problem
I'm using simpleTest to write my PHP tests. I'm writing a file upload plugin and was wondering how I may be testing it. I would like to check that the file is correctly uploaded, in the right folder, that error are correctly returned when needed, etc. How do I emulate a file upload (through the $_FILES variable) ? Are there any issues I should be aware of ?