Source

						public function testMixedFilesNormalization() {
		$_FILES	 = array(
			'file' => array(
				'name' => 'file.jpg',
				'type' => 'image/jpeg',
				'tmp_name' => '/private/var/tmp/phpows38J',
				'error' => 0,
				'size' => 418
		  	),
		  	'files' =>  array(
				'name' => array(
			  		0 => 'file 2.jpg',
			  		1 => 'file 3.jpg',
			  		2 => 'file 4.jpg'
				),
				'type' => array(
			  		0 => 'image/jpeg',
			  		1 => 'image/jpeg',
			  		2 => 'image/jpeg'
				),
				'tmp_name' => array(
			  		0 => '/private/var/tmp/phpF5vsky',
			  		1 => '/private/var/tmp/phphRJ2zW',
			  		2 => '/private/var/tmp/phprI92L1'
				),
				'error' => array(
			  		0 => 0,
			  		1 => 0,
			  		2 => 0
				),
				'size' => array(
			  		0 => 418,
			  		1 => 418,
			  		2 => 418
				)
		  	),
		  	'Image' => array(
				'name' => array(
			  		'file' => 'file 5.jpg'
				),
				'type' => array(
			  		'file' => 'image/jpeg'
				),
				'tmp_name' => array(
			  		'file' => '/private/var/tmp/phpAmSDL4'
				),
				'error' => array(
			  		'file' => 0
				),
				'size' => array(
			  		'file' => 418
				)
		  	),
		  	'Photo' => array(
				'name' => array(
			  		'files' => array(
						0 => 'file 6.jpg',
						1 => 'file 7.jpg',
						2 => 'file 8.jpg'
			  		)
				),
				'type' => array(
			  		'files' => array(
						0 => 'image/jpeg',
						1 => 'image/jpeg',
						2 => 'image/jpeg'
			  		)
				),
				'tmp_name' => array(
			  		'files' => array(
						0 => '/private/var/tmp/php2eViak',
						1 => '/private/var/tmp/phpMsC5Pp',
						2 => '/private/var/tmp/phpm2nm98'
			  		)
				),
				'error' => array(
					'files' => array(
						0 => 0,
						1 => 0,
						2 => 0
			  		)
				),
				'size' => array(
			  		'files' => array(
						0 => 418,
						1 => 418,
						2 => 418
			  		)
				)
		  	)
		);
		$expected = array(
			'file' => array(
				'name' => 'file.jpg',
				'type' => 'image/jpeg',
				'tmp_name' => '/private/var/tmp/phpows38J',
				'error' => 0,
				'size' => 418
		  	),
			'files' => array(
				0 => array(
					'name' => 'file 2.jpg',
					'type' => 'image/jpeg',
					'tmp_name' => '/private/var/tmp/phpF5vsky',
					'error' => 0,
					'size' => 418
				),
				1 => array(
					'name' => 'file 3.jpg',
					'type' => 'image/jpeg',
					'tmp_name' => '/private/var/tmp/phphRJ2zW',
					'error' => 0,
					'size' => 418
				),
				2 => array(
					'name' => 'file 4.jpg',
					'type' => 'image/jpeg',
					'tmp_name' => '/private/var/tmp/phprI92L1',
					'error' => 0,
					'size' => 418
				)
			),
			'Image' => array(
				'file' => array(
					'name' => 'file 5.jpg',
					'type' => 'image/jpeg',
					'tmp_name' => '/private/var/tmp/phpAmSDL4',
					'error' => 0,
					'size' => 418
			  	)
			),
			'Photo' => array(
				'files' => array(
					0 => array(
						'name' => 'file 6.jpg',
						'type' => 'image/jpeg',
						'tmp_name' => '/private/var/tmp/php2eViak',
						'error' => 0,
						'size' => 418
					),
					1 => array(
						'name' => 'file 7.jpg',
						'type' => 'image/jpeg',
						'tmp_name' => '/private/var/tmp/phpMsC5Pp',
						'error' => 0,
						'size' => 418
					),
					2 => array(
						'name' => 'file 8.jpg',
						'type' => 'image/jpeg',
						'tmp_name' => '/private/var/tmp/phpm2nm98',
						'error' => 0,
						'size' => 418
					)
			  	)
			)
		);

		$request = new Request();
		$result = $request->data;
		$this->assertEqual($expected, $result);

		unset($_FILES, $request);
	}