public function baseUrl($params, Smarty_Internal_Template $template) { if (is_string($this->uri)) { return $this->uri; } if (method_exists($this->uri, 'getBaseUrl')) { return $this->uri->getBaseUrl(); } }
public function baseUrl() { if (is_string($this->uri)) { return $this->uri; } if (method_exists($this->uri, 'getBaseUrl')) { return $this->uri->getBaseUrl(); } }
protected function dispatch($path, $method = 'GET', $data = array(), $cookies = array()) { $container = $this->app->getContainer(); // seperate the path from the query string so we can set in the environment @(list($path, $queryString) = explode('?', $path)); // Prepare a mock environment $env = Environment::mock(array('REQUEST_URI' => $path, 'REQUEST_METHOD' => $method, 'QUERY_STRING' => is_null($queryString) ? '' : $queryString)); // Prepare request and response objects $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = $cookies; $serverParams = $env->all(); $body = new RequestBody(); // create request, and set params $req = new $container['request']($method, $uri, $headers, $cookies, $serverParams, $body); if (!empty($data)) { $req = $req->withParsedBody($data); } $res = new $container['response'](); // // Fix for body, but breaks POST params in tests - http://stackoverflow.com/questions/34823328/response-getbody-is-empty-when-testing-slim-3-routes-with-phpunit // $body = new RequestBody(); // if (!empty($data)) // $body->write(json_encode($data)); // // // create request, and set params // $req = new $container['request']($method, $uri, $headers, $cookies, $serverParams, $body); // $res = new $container['response'](); $this->headers = $headers; $this->request = $req; $this->response = call_user_func_array($this->app, array($req, $res)); }
private function request($method, $path, $data = array(), $optionalHeaders = array()) { //Make method uppercase $method = strtoupper($method); $options = array('REQUEST_METHOD' => $method, 'REQUEST_URI' => $path); if ($method === 'GET') { $options['QUERY_STRING'] = http_build_query($data); } else { $params = json_encode($data); } // Prepare a mock environment $env = Environment::mock(array_merge($options, $optionalHeaders)); $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = $this->cookies; $serverParams = $env->all(); $body = new RequestBody(); // Attach JSON request if (isset($params)) { $headers->set('Content-Type', 'application/json;charset=utf8'); $body->write($params); } $this->request = new Request($method, $uri, $headers, $cookies, $serverParams, $body); $response = new Response(); // Invoke request $app = $this->app; $this->response = $app($this->request, $response); // Return the application output. return (string) $this->response->getBody(); }
/** * @param $method * @param $path * @param $body * @param $options * @return Request */ protected function requestFactory($method, $path, $body = [], $options = []) { $uri = Uri::createFromString($path); $headers = new Headers(); $cookies = []; $_POST['_METHOD'] = $method; if (strtolower($method) != 'get' && is_array($body)) { foreach ($body as $key => $value) { $_POST[$key] = $value; } } $envMethod = 'POST'; if (strtolower($method) == 'get') { $envMethod = 'GET'; } $env = Environment::mock(['REQUEST_URI' => $path, 'REQUEST_METHOD' => $envMethod, 'HTTP_CONTENT_TYPE' => 'multipart/form-data; boundary=---foo']); $serverParams = $env->all(); $body = $this->buildBody($body); //echo $body->getContents(); // @todo // $request = new Request($method, $uri, $headers, $cookies, $serverParams, $body, []); $request = Request::createFromEnvironment($env); unset($_POST); return $request; }
public function testAbsoluteUrlGetsRouteAndAppendsPortWhenNotStandard() { $uri = SlimUri::createFromString('http://host:8443/path/page?query=1'); $this->router->shouldReceive('relativePathFor')->with('route.name', ['param1' => '1'], [])->andReturn('/test-route-page'); $url = new URI($this->router); $actual = $url->absoluteURIFor($uri, 'route.name', ['param1' => '1']); $this->assertSame('http://host:8443/test-route-page', $actual); }
public function requestFactory() { $uri = Uri::createFromString('https://example.com:443/foo/bar?abc=123'); $headers = new Headers(); $cookies = []; $serverParams = []; $body = new Body(fopen('php://temp', 'r+')); return new Request('GET', $uri, $headers, $cookies, $serverParams, $body); }
protected function createRequest($env) { $method = $env["REQUEST_METHOD"]; $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = Cookies::parseHeader($headers->get("Cookie", [])); $serverParams = $env->all(); $body = new Body(fopen("php://input", "r")); return new Request($method, $uri, $headers, $cookies, $serverParams, $body); }
/** * {@inheritdoc} */ public function createUri($uri) { if ($uri instanceof UriInterface) { return $uri; } if (is_string($uri)) { return Uri::createFromString($uri); } throw new \InvalidArgumentException('URI must be a string or UriInterface'); }
/** * @param $method * @param string $url * * @return Request */ public function makeRequest($method, $url = '/') { $env = Environment::mock(); $uri = Uri::createFromString('http://example.com' . $url); $headers = Headers::createFromEnvironment($env); $serverParams = $env->all(); $body = new RequestBody(); $uploadedFiles = UploadedFile::createFromEnvironment($env); $request = new Request($method, $uri, $headers, [], $serverParams, $body, $uploadedFiles); return $request; }
public function requestFactory($acceptType = 'application/json') { $env = Environment::mock(['HTTP_ACCEPT' => $acceptType]); $uri = Uri::createFromString('https://example.com:443/foo/bar?abc=123'); $headers = Headers::createFromEnvironment($env); $serverParams = $env->all(); $body = new RequestBody(); $uploadedFiles = UploadedFile::createFromEnvironment($env); $request = new Request('GET', $uri, $headers, [], $serverParams, $body, $uploadedFiles); return $request; }
/** * Run before each test. */ public function setUp() { $uri = Uri::createFromString('https://example.com:443/foo/bar'); $headers = new Headers(); $cookies = []; $env = Environment::mock(); $serverParams = $env->all(); $body = new Body(fopen('php://temp', 'r+')); $this->request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body); $this->response = new Response(); }
protected function createRequest() { $env = (new Environment())->mock(["PATH_INFO" => "/index/hello/", "SCRIPT_NAME" => "/index.php"]); $method = $env["REQUEST_METHOD"]; $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = Cookies::parseHeader($headers->get("Cookie", [])); $serverParams = $env->all(); $body = new Body(fopen("php://input", "r")); return new Request($method, $uri, $headers, $cookies, $serverParams, $body); }
/** * Run before each test */ public function setUp() { $uri = \Slim\Http\Uri::createFromString('https://example.com:443/foo/bar?abc=123'); $headers = new \Slim\Http\Headers(); $cookies = new \Slim\Collection(); $env = \Slim\Http\Environment::mock(); $serverParams = new \Slim\Collection($env->all()); $body = new \Slim\Http\Body(fopen('php://temp', 'r+')); $this->request = new \Slim\Http\Request('GET', $uri, $headers, $cookies, $serverParams, $body); $this->response = new \Slim\Http\Response(); }
public function requestFactory($requestUrl) { $uri = Uri::createFromString($requestUrl); $headers = new Headers(); $cookies = []; $env = Slim\Http\Environment::mock(); $serverParams = $env->all(); $body = new Body(fopen('php://temp', 'r+')); $request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body); return $request; }
public function requestFactory($queryString = '') { $env = Environment::mock(); $uri = Uri::createFromString('https://example.com:443/foo/bar' . $queryString); $headers = Headers::createFromEnvironment($env); $cookies = ['user' => 'john', 'id' => '123']; $serverParams = $env->all(); $body = new RequestBody(); $uploadedFiles = UploadedFile::createFromEnvironment($env); $request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body, $uploadedFiles); return $request; }
private function requestFactory($endpoint) { // Request $uri = Uri::createFromString('https://example.com:443/' . $endpoint); $headers = new Headers(); $cookies = []; $serverParams = []; $body = new Body(fopen('php://temp', 'r+')); $request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body); $request = $request->withAttribute('route', new Route(['get'], '/' . $endpoint, 'CallableFunction')); return $request; }
public function requestFactory($uri = '/') { // Prepare request and response objects $env = Environment::mock(['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => '/', 'REQUEST_METHOD' => 'GET']); $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = []; $serverParams = $env->all(); $body = new Body(fopen('php://temp', 'r+')); $req = new Request('GET', $uri, $headers, $cookies, $serverParams, $body); return $req; }
public function setRequest($method = 'GET', $uri = '/', $other = []) { // Prepare request and response objects $base = ['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => $uri, 'REQUEST_METHOD' => $method]; $env = \Slim\Http\Environment::mock(array_merge($base, $other)); $uri = \Slim\Http\Uri::createFromEnvironment($env); $headers = \Slim\Http\Headers::createFromEnvironment($env); $cookies = (array) new \Slim\Collection(); $serverParams = (array) new \Slim\Collection($env->all()); $body = new \Slim\Http\Body(fopen('php://temp', 'r+')); return new \Slim\Http\Request('GET', $uri, $headers, $cookies, $serverParams, $body); }
/** * Setup for the XML POST requests. * * @param string $xml The XML to use to mock the body of the request. */ public function setUpXmlPost($xml) { $uri = Uri::createFromString('https://example.com:443/foo'); $headers = new Headers(); $headers->set('Content-Type', 'application/xml;charset=utf8'); $cookies = []; $env = Environment::mock(['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => '/foo', 'REQUEST_METHOD' => 'POST']); $serverParams = $env->all(); $body = new RequestBody(); $body->write($xml); $this->request = new Request('POST', $uri, $headers, $cookies, $serverParams, $body); $this->response = new Response(); }
/** * @param string $method * @param string $uri * @return Request */ public function makeRequest($method = 'GET', $uri = '') { $env = Environment::mock([]); $uri = Uri::createFromString($uri); $headers = Headers::createFromEnvironment($env); $cookies = []; $serverParams = $env->all(); $body = new RequestBody(); $uploadedFiles = UploadedFile::createFromEnvironment($env); $request = new Request($method, $uri, $headers, $cookies, $serverParams, $body, $uploadedFiles); $request = $request->withHeader("Content-Type", "application/x-www-form-urlencoded"); return $request; }
/** * run application with POST method. * adds C.S.R.F. token if $post is set. * * @param string $path * @param array $post */ protected function runPost($path = '', $post = []) { if (!empty($post)) { // add csrf tokens. $key = 'unit-csrf'; $val = 'unit-csrf-value'; $_SESSION['csrf'][$key] = $val; $post['csrf_name'] = $key; $post['csrf_value'] = $val; } $uri = Uri::createFromString($this->root_url . $path); $this->runApp('POST', $uri, $post); }
public function request($method, $path, $options = array()) { $env = Environment::mock(array_merge(['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => $path, 'REQUEST_METHOD' => $method], $options)); $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = []; $serverParams = $env->all(); $body = new RequestBody(); $req = new Request($method, $uri, $headers, $cookies, $serverParams, $body); $res = new Response(); $app = (require ROOT_DIR . '/bootstrap/bootstrap.php'); $app($req, $res); return $app($req, $res); }
/** * Run before each test. */ public function setUp() { parent::setUp(); $uri = Uri::createFromString('https://example.com:443/foo/bar?abc=123'); $this->request = new Request('GET', $uri, new Headers(), [], Environment::mock()->all(), new Body(fopen('php://temp', 'r+'))); $this->response = new Response(); // Prepare container and populate it with Slim services that are needed for further tests $this->addToContainer('callableResolver', function ($c) { return new CallableResolver($c); }); $this->addToContainer('foundHandler', function ($c) { return new RequestResponse(); }); }
public function setupRequest($url, $method, $request, $files) { $env = Environment::mock(['REQUEST_URI' => $url, 'REQUEST_METHOD' => $method, 'HTTP_CONTENT_TYPE' => 'multipart/form-data; boundary=---foo']); $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $files = UploadedFile::createFromEnvironment(Environment::mock()); $cookies = []; $serverParams = $env->all(); $body = new RequestBody(); $this->request = new Request($method, $uri, $headers, $cookies, $serverParams, $body, $files); $this->response = new Response(); $app = $this->app; return $app($this->request, $this->response); }
/** * Set up the test environment. */ public function setUp() { parent::setUp(); $uri = Uri::createFromString('https://example.com:443/foo/bar?abc=123'); $this->request = new Request('GET', $uri, new Headers(), [], Environment::mock()->all(), new Body(fopen('php://temp', 'r+'))); $this->response = new Response(); $this->container = new Container(); $this->container['callableResolver'] = function ($c) { return new CallableResolver($c); }; $this->container['foundHandler'] = function () { return new RequestResponse(); }; }
public function request($method, $path) { $routeConfig = __DIR__ . '/../../src/config/routes.yaml'; $app = new \app\RestFulWeb(); $app->setRouteFromFile($routeConfig); $app->setLogFromFile(__DIR__ . '/logs.yaml'); $env = Environment::mock(); $uri = Uri::createFromString('https://slim.dev' . $path); $headers = new Headers(); $cookies = []; $serverParams = $env->all(); $body = new Body(fopen('php://temp', 'r+')); $request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body); $this->response = new Response(); $this->response = $app->getApp()->__invoke($request, new Response()); }
private function prepareRequest($method, $url, array $requestParameters) { $env = Environment::mock(['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => $url, 'REQUEST_METHOD' => $method]); $parts = explode('?', $url); if (isset($parts[1])) { $env['QUERY_STRING'] = $parts[1]; } $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = []; $serverParams = $env->all(); $body = new RequestBody(); $body->write(json_encode($requestParameters)); $request = new Request($method, $uri, $headers, $cookies, $serverParams, $body); return $request->withHeader('Content-Type', 'application/json'); }
public static function fromGlobals(array $server = null, array $query = null, array $body = null, array $cookies = null, array $files = null) { $environment = new Environment($server); $method = $environment['REQUEST_METHOD']; $uri = Uri::createFromEnvironment($environment); $headers = Headers::createFromEnvironment($environment); $cookies = Cookies::parseHeader($headers->get('Cookie', [])); $serverParams = $environment->all(); $body = new RequestBody(); $uploadedFiles = UploadedFile::createFromEnvironment($environment); $request = new ServerRequest($method, $uri, $headers, $cookies, $serverParams, $body, $uploadedFiles); if ($method === 'POST' && in_array($request->getMediaType(), ['application/x-www-form-urlencoded', 'multipart/form-data'])) { // parsed body must be $_POST $request = $request->withParsedBody($_POST); } return $request; }
public function testException() { $app = new App(); $app->add(new WhoopsMiddleware()); $app->get('/foo', function ($req, $res) use($app) { return $app->router->pathFor('index'); }); $env = Environment::mock(['SCRIPT_NAME' => '/index.php', 'REQUEST_URI' => '/foo', 'REQUEST_METHOD' => 'GET']); $uri = Uri::createFromEnvironment($env); $headers = Headers::createFromEnvironment($env); $cookies = []; $serverParams = $env->all(); $body = new Body(fopen('php://temp', 'r+')); $req = new Request('GET', $uri, $headers, $cookies, $serverParams, $body); $res = new Response(); $this->setExpectedException('\\RuntimeException'); $app($req, $res); }