public function testCanGetUploadedFileByIndex()
{
$tmp = new ElggFile();
$tmp->owner_guid = $this->owner_guid;
$tmp->setFilename('tmp.gif');
$tmp->open('write');
$tmp->write(file_get_contents(elgg_get_config('dataroot') . '1/1/400x300.gif'));
$tmp->close();
$tmp_gif = $tmp->getFilenameOnFilestore();
$tmp = new ElggFile();
$tmp->owner_guid = $this->owner_guid;
$tmp->setFilename('tmp.png');
$tmp->open('write');
$tmp->write(file_get_contents(elgg_get_config('dataroot') . '1/1/400x300.png'));
$tmp->close();
$tmp_png = $tmp->getFilenameOnFilestore();
$upload = ['gif' => new UploadedFile($tmp_gif, 'tmp.gif', 'image/gif', filesize($tmp_gif), UPLOAD_ERR_OK, true), 'png' => new UploadedFile($tmp_png, 'tmp.png', 'image/png', filesize($tmp_png), UPLOAD_ERR_OK, true), 'jpg' => new UploadedFile('', '', '', 0, UPLOAD_ERR_NO_FILE, true)];
_elgg_services()->request->files->set('upload', $upload);
$uploaded_files = _elgg_services()->uploads->getUploadedFiles('upload');
$uploaded_file = $uploaded_files['gif'];
$this->assertInstanceOf(UploadedFile::class, $uploaded_file);
$this->assertEquals(pathinfo($tmp_gif, PATHINFO_BASENAME), $uploaded_file->getClientOriginalName());
$this->assertEquals('image/gif', $uploaded_file->getClientMimeType());
$this->assertTrue($uploaded_file->isValid());
$uploaded_file = $uploaded_files['png'];
$this->assertInstanceOf(UploadedFile::class, $uploaded_file);
$this->assertEquals(pathinfo($tmp_png, PATHINFO_BASENAME), $uploaded_file->getClientOriginalName());
$this->assertEquals('image/png', $uploaded_file->getClientMimeType());
$this->assertTrue($uploaded_file->isValid());
$uploaded_file = $uploaded_files['jpg'];
$this->assertInstanceOf(UploadedFile::class, $uploaded_file);
$this->assertFalse($uploaded_file->isValid());
}