aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php12
-rw-r--r--tests/Wallabag/CoreBundle/Controller/EntryControllerTest.php20
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');