[HttpKernel] Fix and test previous commit

This commit is contained in:
Victor Berchet 2011-06-14 11:54:55 +02:00
parent ac0c00c6e8
commit 38b3b7474f
3 changed files with 40 additions and 1 deletions

View File

@ -121,7 +121,14 @@ EOF;
$filtered[$key] = $this->filterFiles($value);
} elseif ($value instanceof UploadedFile) {
// Create a test mode UploadedFile
$filtered[$key] = new UploadedFile($value->getPath(), $value->getName(), $value->getMimeType(), $value->getSize(), $value->getError(), true);
$filtered[$key] = new UploadedFile(
$value->getPathname(),
$value->getClientOriginalName(),
$value->getClientMimeType(),
$value->getClientSize(),
$value->getError(),
true
);
} else {
$filtered[$key] = $value;
}

View File

@ -16,6 +16,7 @@ use Symfony\Component\HttpKernel\HttpKernel;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\File\UploadedFile;
require_once __DIR__.'/TestHttpKernel.php';
@ -76,4 +77,32 @@ class ClientTest extends \PHPUnit_Framework_TestCase
$domResponse = $m->invoke($client, $response);
$this->assertEquals('foo=bar; expires=Sun, 15-Feb-2009 20:00:00 GMT; domain=http://example.com; path=/foo; secure; httponly, foo1=bar1; expires=Sun, 15-Feb-2009 20:00:00 GMT; domain=http://example.com; path=/foo; secure; httponly', $domResponse->getHeader('Set-Cookie'));
}
public function testUploadedFile()
{
$source = tempnam(sys_get_temp_dir(), 'source');
$target = sys_get_temp_dir().'/sf.moved.file';
@unlink($target);
$kernel = new TestHttpKernel();
$client = new Client($kernel);
$client->request('POST', '/', array(), array(new UploadedFile($source, 'original', 'mime/original', 123, UPLOAD_ERR_OK)));
$files = $kernel->request->files->all();
$this->assertEquals(1, count($files));
$file = $files[0];
$this->assertEquals('original', $file->getClientOriginalName());
$this->assertEquals('mime/original', $file->getClientMimeType());
$this->assertEquals('123', $file->getClientSize());
$this->assertTrue($file->isValid());
$file->move(dirname($target), basename($target));
$this->assertFileExists($target);
unlink($target);
}
}

View File

@ -19,6 +19,8 @@ use Symfony\Component\EventDispatcher\EventDispatcher;
class TestHttpKernel extends HttpKernel implements ControllerResolverInterface
{
public $request;
public function __construct()
{
parent::__construct(new EventDispatcher(), $this);
@ -36,6 +38,7 @@ class TestHttpKernel extends HttpKernel implements ControllerResolverInterface
public function callController(Request $request)
{
$this->request = $request;
return new Response('Request: '.$request->getRequestUri());
}
}