]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #2013 from wallabag/fix-display-all-tags
authorJeremy Benoist <j0k3r@users.noreply.github.com>
Tue, 3 May 2016 08:07:34 +0000 (10:07 +0200)
committerJeremy Benoist <j0k3r@users.noreply.github.com>
Tue, 3 May 2016 08:07:34 +0000 (10:07 +0200)
Fix tags listing

src/Wallabag/CoreBundle/Controller/ConfigController.php
src/Wallabag/CoreBundle/Form/Type/EntryFilterType.php
src/Wallabag/CoreBundle/Tests/Controller/ConfigControllerTest.php
src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php

index ccc3e8a1dae2e3f3e63cc5811637e62eacafd85a..4f75511bf62cf5c7ee23b5ceb5eaeeb16a89248f 100644 (file)
@@ -140,6 +140,7 @@ class ConfigController extends Controller
             $config->setItemsPerPage($this->getParameter('wallabag_core.items_on_page'));
             $config->setRssLimit($this->getParameter('wallabag_core.rss_limit'));
             $config->setLanguage($this->getParameter('wallabag_core.language'));
+            $config->setReadingSpeed($this->getParameter('wallabag_core.reading_speed'));
 
             $em->persist($config);
 
index dcdb3ab72965b3bbcea8920e4384c8d39d342988..cd4d349021e5be8aec4f0ca32b73be1aafc9b379 100644 (file)
@@ -35,6 +35,20 @@ class EntryFilterType extends AbstractType
     {
         $builder
             ->add('readingTime', NumberRangeFilterType::class, [
+                'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
+                    $value = $values['value'];
+
+                    if (null === $value['left_number'][0] || null === $value['right_number'][0]) {
+                        return;
+                    }
+
+                    $min = (int) ($value['left_number'][0] * $this->user->getConfig()->getReadingSpeed());
+                    $max = (int) ($value['right_number'][0] * $this->user->getConfig()->getReadingSpeed());
+
+                    $expression = $filterQuery->getExpr()->between($field, $min, $max);
+
+                    return $filterQuery->createCondition($expression);
+                },
                 'label' => 'entry.filters.reading_time.label',
             ])
             ->add('createdAt', DateRangeFilterType::class, [
index 1aa1a7ed3e9cdca695dca3fdcb7b2257500cd04e..8cdedfda38bdf66bf6c47cb8f76a78de55830afb 100644 (file)
@@ -60,6 +60,43 @@ class ConfigControllerTest extends WallabagCoreTestCase
         $this->assertContains('flashes.config.notice.config_saved', $alert[0]);
     }
 
+    public function testChangeReadingSpeed()
+    {
+        $this->logInAs('admin');
+        $client = $this->getClient();
+
+        $crawler = $client->request('GET', '/unread/list');
+        $form = $crawler->filter('button[id=submit-filter]')->form();
+        $dataFilters = [
+            'entry_filter[readingTime][right_number]' => 22,
+            'entry_filter[readingTime][left_number]' => 22,
+        ];
+        $crawler = $client->submit($form, $dataFilters);
+        $this->assertCount(1, $crawler->filter('div[class=entry]'));
+
+        // Change reading speed
+        $crawler = $client->request('GET', '/config');
+        $form = $crawler->filter('button[id=config_save]')->form();
+        $data = [
+            'config[reading_speed]' => '2',
+        ];
+        $client->submit($form, $data);
+
+        // Is the entry still available via filters?
+        $crawler = $client->request('GET', '/unread/list');
+        $form = $crawler->filter('button[id=submit-filter]')->form();
+        $crawler = $client->submit($form, $dataFilters);
+        $this->assertCount(0, $crawler->filter('div[class=entry]'));
+
+        // Restore old configuration
+        $crawler = $client->request('GET', '/config');
+        $form = $crawler->filter('button[id=config_save]')->form();
+        $data = [
+            'config[reading_speed]' => '0.5',
+        ];
+        $client->submit($form, $data);
+    }
+
     public function dataForUpdateFailed()
     {
         return [
@@ -355,6 +392,11 @@ class ConfigControllerTest extends WallabagCoreTestCase
 
         $this->assertTrue(false !== $user);
         $this->assertTrue($user->isEnabled());
+        $this->assertEquals('material', $user->getConfig()->getTheme());
+        $this->assertEquals(12, $user->getConfig()->getItemsPerPage());
+        $this->assertEquals(50, $user->getConfig()->getRssLimit());
+        $this->assertEquals('en', $user->getConfig()->getLanguage());
+        $this->assertEquals(1, $user->getConfig()->getReadingSpeed());
     }
 
     public function testRssUpdateResetToken()
index 64ebd6318be8d3d17ee1c39a25741e553be1e20f..df4c34cd8340481de88657d43ef6426d51635abe 100644 (file)
@@ -462,8 +462,8 @@ class EntryControllerTest extends WallabagCoreTestCase
         $form = $crawler->filter('button[id=submit-filter]')->form();
 
         $data = [
-            'entry_filter[readingTime][right_number]' => 11,
-            'entry_filter[readingTime][left_number]' => 11,
+            'entry_filter[readingTime][right_number]' => 22,
+            'entry_filter[readingTime][left_number]' => 22,
         ];
 
         $crawler = $client->submit($form, $data);