diff options
-rw-r--r-- | src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php | 12 | ||||
-rw-r--r-- | tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php | 20 |
2 files changed, 29 insertions, 3 deletions
diff --git a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php index ab27ec8e..556578d1 100644 --- a/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php +++ b/src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php | |||
@@ -34,7 +34,7 @@ class EntryFilterType extends AbstractType | |||
34 | $this->user = $tokenStorage->getToken() ? $tokenStorage->getToken()->getUser() : null; | 34 | $this->user = $tokenStorage->getToken() ? $tokenStorage->getToken()->getUser() : null; |
35 | 35 | ||
36 | if (null === $this->user || !is_object($this->user)) { | 36 | if (null === $this->user || !is_object($this->user)) { |
37 | return null; | 37 | return; |
38 | } | 38 | } |
39 | } | 39 | } |
40 | 40 | ||
@@ -42,8 +42,14 @@ class EntryFilterType extends AbstractType | |||
42 | { | 42 | { |
43 | $builder | 43 | $builder |
44 | ->add('readingTime', NumberRangeFilterType::class, [ | 44 | ->add('readingTime', NumberRangeFilterType::class, [ |
45 | 'left_number_options' => ['condition_operator' => FilterOperands::OPERATOR_GREATER_THAN_EQUAL, 'attr' => ['min' => 0]], | 45 | 'left_number_options' => [ |
46 | 'right_number_options' => ['condition_operator' => FilterOperands::OPERATOR_LOWER_THAN_EQUAL, 'attr' => ['min' => 0]], | 46 | 'condition_operator' => FilterOperands::OPERATOR_GREATER_THAN_EQUAL, |
47 | 'attr' => ['min' => 0], | ||
48 | ], | ||
49 | 'right_number_options' => [ | ||
50 | 'condition_operator' => FilterOperands::OPERATOR_LOWER_THAN_EQUAL, | ||
51 | 'attr' => ['min' => 0], | ||
52 | ], | ||
47 | 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { | 53 | 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { |
48 | $lower = $values['value']['left_number'][0]; | 54 | $lower = $values['value']['left_number'][0]; |
49 | $upper = $values['value']['right_number'][0]; | 55 | $upper = $values['value']['right_number'][0]; |
diff --git a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php index 3eb6d47f..7db4cf1f 100644 --- a/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php +++ b/tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php | |||
@@ -591,6 +591,26 @@ class EntryControllerTest extends WallabagCoreTestCase | |||
591 | $this->assertCount(1, $crawler->filter('div[class=entry]')); | 591 | $this->assertCount(1, $crawler->filter('div[class=entry]')); |
592 | } | 592 | } |
593 | 593 | ||
594 | public function testFilterOnReadingTimeWithNegativeValue() | ||
595 | { | ||
596 | $this->logInAs('admin'); | ||
597 | $client = $this->getClient(); | ||
598 | |||
599 | $crawler = $client->request('GET', '/unread/list'); | ||
600 | |||
601 | $form = $crawler->filter('button[id=submit-filter]')->form(); | ||
602 | |||
603 | $data = [ | ||
604 | 'entry_filter[readingTime][right_number]' => -22, | ||
605 | 'entry_filter[readingTime][left_number]' => -22, | ||
606 | ]; | ||
607 | |||
608 | $crawler = $client->submit($form, $data); | ||
609 | |||
610 | // forcing negative value results in no entry displayed | ||
611 | $this->assertCount(0, $crawler->filter('div[class=entry]')); | ||
612 | } | ||
613 | |||
594 | public function testFilterOnReadingTimeOnlyUpper() | 614 | public function testFilterOnReadingTimeOnlyUpper() |
595 | { | 615 | { |
596 | $this->logInAs('admin'); | 616 | $this->logInAs('admin'); |