/** * Test clear hooks * * Pre-conditions: * Slim app initialized * Two hooks exist, each with one listener * * Post-conditions: * Case A: Listeners for 'test.hook.one' are cleared * Case B: Listeners for all hooks are cleared */ public function testHookClear() { Slim::init(); Slim::hook('test.hook.one', function () {}); Slim::hook('test.hook.two', function () {}); Slim::clearHooks('test.hook.two'); $this->assertEquals(array(), Slim::getHooks('test.hook.two')); $this->assertTrue(count(Slim::getHooks('test.hook.one')) === 1); Slim::clearHooks(); $this->assertEquals(array(), Slim::getHooks('test.hook.one')); }
/** * Test Slim returns 200 OK for successful route * * Pre-conditions: * You have initialized a Slim app with an accessible route that * does not throw any Exceptions and does not set a custom status. * * Post-conditions: * The response status is 200 and response body is as expected. */ public function testSlimOkResponse() { Slim::init(); Slim::get('/', function () { echo "Ok"; }); Slim::run(); $this->assertEquals(Slim::response()->status(), 200); $this->assertEquals(Slim::response()->body(), 'Ok'); }
<?php /*** REQUIRE SLIM ***/ require 'slim/Slim.php'; /*** INITIALIZE SLIM ***/ Slim::init(); /*** CALLBACKS ***/ //Register a "before" callback for PHP >=5.3 Slim::before(function () { Slim::response()->write('<p>Before!</p>'); }); //Register a "before" callback for PHP <5.3 /* Slim::before('example_before'); function example_before() { Slim::response()->write('Before!'); } */ //Register an "after" callback for PHP >=5.3 Slim::after(function () { Slim::response()->write('<p>After!</p>'); }); //Register an "after" callback for PHP <5.3 /* Slim::after('example_after'); function example_after() { Slim::response()->write('After!'); } */ /*** ROUTES ***/ //Sample GET route for PHP >=5.3
/** * Test hook filter behavior * */ public function testHookFilterBehavior() { Slim::init(); Slim::hook('test.hook', function ($arg) { return $arg . 'foo'; }); $this->assertEquals('barfoo', Slim::applyHook('test.hook', 'bar')); }