/** * Test Slim DELETE route with middleware * * Pre-conditions: * Slim app instatiated and run; * One OPTIONS route defined with middleware; * * Post-conditions: * The OPTIONS route and its middleware are invoked in sequence; */ public function testSlimOptionsRouteWithMiddleware() { $_SERVER['REQUEST_METHOD'] = 'OPTIONS'; $app = new Slim(); $mw1 = function () { echo "foo"; }; $mw2 = function () { echo "bar"; }; $callable = function () { echo "foo"; }; $route = $app->options('/', $mw1, $mw2, $callable); $this->expectOutputString('foobarfoo'); $app->run(); }
/** * Test OPTIONS route */ public function testOptionsRoute() { Slim_Environment::mock(array('REQUEST_METHOD' => 'OPTIONS', 'SCRIPT_NAME' => '/foo', 'PATH_INFO' => '/bar')); $s = new Slim(); $mw1 = function () { echo "foo"; }; $mw2 = function () { echo "bar"; }; $callable = function () { echo "xyz"; }; $route = $s->options('/bar', $mw1, $mw2, $callable); $s->call(); $this->assertEquals('foobarxyz', $s->response()->body()); $this->assertEquals('/bar', $route->getPattern()); $this->assertSame($callable, $route->getCallable()); }
/** * Test OPTIONS route */ public function testOptionsRoute() { Slim_Environment::mock(array('REQUEST_METHOD' => 'OPTIONS', 'REMOTE_ADDR' => '127.0.0.1', 'SCRIPT_NAME' => '/foo', 'PATH_INFO' => '/bar', '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(); $mw1 = function () { echo "foo"; }; $mw2 = function () { echo "bar"; }; $callable = function () { echo "xyz"; }; $route = $s->options('/bar', $mw1, $mw2, $callable); $env = $s->environment(); list($status, $header, $body) = $s->call($env); $this->assertEquals('foobarxyz', $body); $this->assertEquals('/bar', $route->getPattern()); $this->assertSame($callable, $route->getCallable()); }