public function testRunCustomHandler() { Filter::registerHandler('test_filter_handler2', 'testFilterHandler'); $this->assertTrue(Filter::hasCustomHandler('test_filter_handler2')); Filter::register('test_filter_handler2', 'test_filter_handler2'); global $customStuff; $this->assertTrue(isset($customStuff['test_filter_handler2'])); }
public function __construct() { Filter::register('test-all-before', function () { $_SERVER['test-all-before'] = true; }); Filter::register('test-all-after', function () { $_SERVER['test-all-after'] = true; }); Filter::register('test-profile-before', function () { $_SERVER['test-profile-before'] = true; }); Filter::register('test-except', function () { $_SERVER['test-except'] = true; }); Filter::register('test-on-post', function () { $_SERVER['test-on-post'] = true; }); Filter::register('test-on-get-put', function () { $_SERVER['test-on-get-put'] = true; }); Filter::register('test-before-filter', function () { return 'Filtered!'; }); Filter::register('test-param', function ($var1, $var2) { return $var1 . $var2; }); Filter::register('test-multi-1', function () { $_SERVER['test-multi-1'] = true; }); Filter::register('test-multi-2', function () { $_SERVER['test-multi-2'] = true; }); $this->filter('before', 'test-all-before'); $this->filter('after', 'test-all-after'); $this->filter('before', 'test-profile-before')->only(array('profile')); $this->filter('before', 'test-except')->except(array('index', 'profile')); $this->filter('before', 'test-on-post')->on(array('post')); $this->filter('before', 'test-on-get-put')->on(array('get', 'put')); $this->filter('before', 'test-before-filter')->only('login'); $this->filter('after', 'test-before-filter')->only('logout'); $this->filter('before', 'test-param:1,2')->only('edit'); $this->filter('before', 'test-multi-1|test-multi-2')->only('save'); }
/** * Test that multiple filters can be assigned to a route. * * @group laravel */ public function testMultipleFiltersCanBeAssignedToARoute() { $_SERVER['test-multi-1'] = false; $_SERVER['test-multi-2'] = false; Filter::register('test-multi-1', function () { $_SERVER['test-multi-1'] = true; }); Filter::register('test-multi-2', function () { $_SERVER['test-multi-2'] = true; }); $route = new Route('GET', '', array('before' => 'test-multi-1|test-multi-2')); $route->call(); $this->assertTrue($_SERVER['test-multi-1']); $this->assertTrue($_SERVER['test-multi-2']); }
| First, define a filter: | | Filter::register('filter', function() | { | return 'Filtered!'; | }); | | Next, attach the filter to a route: | | Router::register('GET /', array('before' => 'filter', function() | { | return 'Hello World!'; | })); | */ Filter::register('before', function () { $_SERVER['before'] = true; }); Filter::register('after', function () { $_SERVER['after'] = true; }); Filter::register('csrf', function () { if (Request::forged()) { return Response::error('500'); } }); Filter::register('auth', function () { if (Auth::guest()) { return Redirect::to('login'); } });