/** * Makes the instance of Server Request. * * @param null|array $serverParams Optional; the server parameters * @param null|array $cookieParams Optional; the cookies, if any * @param null|array $queryParams Optional; the query parameters, if any * @param null|array $uploadedFiles Optional; the uploaded files, if any * @param null|array $attributes Optional; the application-specified attributes * * <!-- --> * @param null|array|object $parsedBody Optional; the parsed body * * <!-- --> * @param null|string|resource|\Psr\Http\Message\StreamInterface $body Optional; the body * * <!-- --> * @param null|array $headers Optional; the headers * * <!-- --> * @param null|string|\Psr\Http\Message\UriInterface $uri Optional; the URI * * <!-- --> * @param null|string $method Optional; the request method * @param null|string $protocol Optional; the HTTP protocol version */ public static function make(array $serverParams = null, array $cookieParams = null, array $queryParams = null, array $uploadedFiles = null, array $attributes = null, $parsedBody = null, $body = null, array $headers = null, $uri = null, $method = null, $protocol = null) { $cookies = $cookieParams ? $cookieParams : $_COOKIE; $server = $serverParams ? $serverParams : $_SERVER; $files = UploadedFilesFactory::make($uploadedFiles); $attributes = array_merge((array) $attributes, $_ENV); $query = $queryParams ? $queryParams : $_GET; $parsedBody = $parsedBody ? $parsedBody : $_POST; $body = $body ? $body : InputFactory::make(); $uri = $uri ? $uri : UriFactory::make($server); $headers = $headers ? $headers : HeadersFactory::make($server); $method = $method ? $method : RequestMethodFactory::make($server); $protocol = $protocol ? $protocol : RequestProtocolFactory::getVersion($server); return new ServerRequest($server, $cookies, $query, $files, $attributes, $parsedBody, $body, $headers, $uri, $method, $protocol); }
public function testWithUploadedFilesSetFilesToNewInstance() { $request = new ServerRequest(); $files = ['foo' => ['name' => ['bar' => ['baz' => 'cor']], 'type' => ['bar' => ['baz' => 'con']], 'tmp_name' => ['bar' => ['baz' => 'cot']], 'error' => ['bar' => ['baz' => 0]], 'size' => ['bar' => ['baz' => 100]]]]; $uploadedFiles = UploadedFilesFactory::make($files); $instance = $uploadedFiles['foo']['bar']['baz']; $new = $request->withUploadedFiles($uploadedFiles); $result = $new->getUploadedFiles(); $this->assertTrue(isset($result['foo']['bar']['baz'])); $this->assertSame($instance, $result['foo']['bar']['baz']); }
public function testMakeMakesWithFlattenArrays() { $files = ['foo' => ['name' => ['foo', 'bar'], 'type' => ['bat', 'baz'], 'tmp_name' => ['con', 'com'], 'error' => [0, 0], 'size' => [100, 200]]]; $result = UploadedFilesFactory::make($files); $this->assertTrue(is_array($result)); $this->assertTrue(isset($result['foo'])); $this->assertTrue(is_array($result['foo'])); $this->assertSame(2, count($result['foo'])); $first = $result['foo'][0]; $this->assertInstanceOf(UploadedFile::CLASS, $first); $this->assertSame('foo', $first->getClientFileName()); $this->assertSame('bat', $first->getClientMediaType()); $this->assertSame('con', $first->getTempName()); $this->assertSame(0, $first->getError()); $this->assertSame(100, $first->getSize()); $second = $result['foo'][1]; $this->assertInstanceOf(UploadedFile::CLASS, $second); $this->assertSame('bar', $second->getClientFileName()); $this->assertSame('baz', $second->getClientMediaType()); $this->assertSame('com', $second->getTempName()); $this->assertSame(0, $second->getError()); $this->assertSame(200, $second->getSize()); }
public function testMakeCreateUploadedFilesFromFiles() { $_FILES = ['foo' => ['name' => 'bar', 'type' => 'bat', 'tmp_name' => 'baz', 'error' => 0, 'size' => 100]]; $request = ServerRequestFactory::make(); $this->assertEquals($request->getUploadedFiles(), UploadedFilesFactory::make()); }