Check if status code is OK

This commit is contained in:
Nicolas Lœuillet 2016-11-18 23:05:02 +01:00
parent e10e6ab34e
commit d215273c65
No known key found for this signature in database
GPG Key ID: BDC1EFB5CA0145F2
2 changed files with 24 additions and 0 deletions

View File

@ -11,6 +11,7 @@ use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\CheckboxFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\ChoiceFilterType; use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\ChoiceFilterType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
@ -91,6 +92,18 @@ class EntryFilterType extends AbstractType
'label' => 'entry.filters.domain_label', 'label' => 'entry.filters.domain_label',
]) ])
->add('httpStatus', TextFilterType::class, [ ->add('httpStatus', TextFilterType::class, [
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value'];
if (false === array_key_exists($value, Response::$statusTexts)) {
return;
}
$paramName = sprintf('%s', str_replace('.', '_', $field));
$expression = $filterQuery->getExpr()->eq($field, ':'.$paramName);
$parameters = array($paramName => $value);
return $filterQuery->createCondition($expression, $parameters);
},
'label' => 'entry.filters.http_status_label', 'label' => 'entry.filters.http_status_label',
]) ])
->add('isArchived', CheckboxFilterType::class, [ ->add('isArchived', CheckboxFilterType::class, [

View File

@ -1006,5 +1006,16 @@ class EntryControllerTest extends WallabagCoreTestCase
$crawler = $client->submit($form, $data); $crawler = $client->submit($form, $data);
$this->assertCount(1, $crawler->filter('div[class=entry]')); $this->assertCount(1, $crawler->filter('div[class=entry]'));
$crawler = $client->request('GET', '/all/list');
$form = $crawler->filter('button[id=submit-filter]')->form();
$data = [
'entry_filter[httpStatus]' => 1024,
];
$crawler = $client->submit($form, $data);
$this->assertCount(7, $crawler->filter('div[class=entry]'));
} }
} }