public function testFilterGetInput() { $mockFactory = m::mock('Illuminate\\Validation\\Factory'); $mockFactory->shouldReceive('make')->andReturn(new MockLaravelValidator()); $factory = new Factory($this->request, $mockFactory, $router = new Router()); $factory->add('login', 'ValidatorStub', 'some response'); call_user_func($router->getFilter('validator.login')); $this->assertSame($factory->input('login'), array('email' => '*****@*****.**', 'password' => 'secret')); }
/** * Call a given filter with the parameters. * * @param string $name * @param \Symfony\Component\HttpFoundation\Request $request * @param array $params * @return mixed */ public function callFilter($name, Request $request, array $params = array()) { if (!$this->router->filtersEnabled()) { return; } $merge = array($this->router->getCurrentRoute(), $request); $params = array_merge($merge, $params); // Next we will parse the filter name to extract out any parameters and adding // any parameters specified in a filter name to the end of the lists of our // parameters, since the ones at the beginning are typically very static. list($name, $params) = $this->parseFilter($name, $params); if (!is_null($callable = $this->router->getFilter($name))) { return call_user_func_array($callable, $params); } }