/** * Test Slim::pass continues, but next matching route not found * * Pre-conditions: * You have initialized a Slim application with one accesible route. * The first matching route should be the most specific and should * invoke Slim::pass(). * * Post-conditions: * No second matching route is found, and a HTTP 404 response is * sent to the client. */ public function testSlimPassWithoutFallbackRoute() { $this->setExpectedException('Slim_Exception_Stop'); $_SERVER['REQUEST_URI'] = "/name/Frank"; Slim::init(); Slim::get('name/Frank', function (){ echo "Your name is Frank"; Slim::pass(); }); Slim::run(); $this->assertEquals(Slim::response()->status(), 404); }
/** * Test that app returns 404 response when matched, invoked route calls * $app->pass(); there are no subsequent matching routes. */ public function testInvokedRoutePassesWithoutSubsequentRoutes() { $_SERVER['REQUEST_URI'] = "/foo"; $_SERVER['REQUEST_METHOD'] = 'GET'; $app = new Slim(); $app->map('/foo', function () use($app) { $app->pass(); echo "Foo GET"; })->via('GET'); $app->run(); $this->assertEquals(404, $app->response()->status()); }
/** * Test pass when there is not a subsequent fallback route */ public function testPassWithoutSubsequentRoute() { Slim_Environment::mock(array('SCRIPT_NAME' => '/foo', 'PATH_INFO' => '/name/Frank')); $s = new Slim(); $s->get('/name/Frank', function () use($s) { echo "Fail"; //<-- Should not be in response body! $s->pass(); }); $s->call(); $this->assertEquals(404, $s->response()->status()); }
/** * Test pass when there is not a subsequent fallback route */ public function testPassWithoutSubsequentRoute() { Slim_Environment::mock(array('REQUEST_METHOD' => 'GET', 'REMOTE_ADDR' => '127.0.0.1', 'SCRIPT_NAME' => '/foo', 'PATH_INFO' => '/name/Frank', 'QUERY_STRING' => 'one=foo&two=bar', 'SERVER_NAME' => 'slimframework.com', 'SERVER_PORT' => 80, 'slim.url_scheme' => 'http', 'slim.input' => '', 'slim.errors' => @fopen('php://stderr', 'w'))); $s = new Slim(); $s->get('/name/Frank', function () use($s) { echo "Fail"; //<-- Should not be in response body! $s->pass(); }); $env = $s->environment(); list($status, $header, $body) = $s->call($env); $this->assertEquals(404, $status); }