]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Handle entry in language
authorJeremy Benoist <jeremy.benoist@gmail.com>
Sun, 20 Sep 2015 20:37:27 +0000 (22:37 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Tue, 22 Sep 2015 18:52:13 +0000 (20:52 +0200)
Fix #1333

src/Wallabag/CoreBundle/Entity/Entry.php
src/Wallabag/CoreBundle/Entity/User.php
src/Wallabag/CoreBundle/Helper/ContentProxy.php
src/Wallabag/CoreBundle/Tests/Helper/ContentProxyTest.php

index e684c9b103f77189b6d799549c2fabd33561fe9e..7108889e00236d9f9c8744bb5e7f03c01192be2e 100644 (file)
@@ -94,6 +94,13 @@ class Entry
      */
     private $mimetype;
 
+    /**
+     * @var string
+     *
+     * @ORM\Column(name="language", type="text", nullable=true)
+     */
+    private $language;
+
     /**
      * @var int
      *
@@ -450,4 +457,28 @@ class Entry
     {
         return $this->previewPicture;
     }
+
+    /**
+     * Set language.
+     *
+     * @param string $language
+     *
+     * @return Entry
+     */
+    public function setLanguage($language)
+    {
+        $this->language = $language;
+
+        return $this;
+    }
+
+    /**
+     * Get language.
+     *
+     * @return string
+     */
+    public function getLanguage()
+    {
+        return $this->language;
+    }
 }
index eeae331e29582b24752ea30873abee9e0d3ae89b..a6002352376f8557a39e5f93ec5e08885c158ed8 100644 (file)
@@ -7,7 +7,6 @@ use Doctrine\ORM\Mapping as ORM;
 use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 use Symfony\Component\Security\Core\User\UserInterface;
 use Symfony\Component\Security\Core\User\AdvancedUserInterface;
-use Symfony\Component\Validator\Constraints as Assert;
 use JMS\Serializer\Annotation\ExclusionPolicy;
 use JMS\Serializer\Annotation\Expose;
 use FOS\UserBundle\Model\User as BaseUser;
@@ -74,8 +73,8 @@ class User extends BaseUser implements AdvancedUserInterface, \Serializable
     public function __construct()
     {
         parent::__construct();
-        $this->entries  = new ArrayCollection();
-        $this->tags     = new ArrayCollection();
+        $this->entries = new ArrayCollection();
+        $this->tags = new ArrayCollection();
     }
 
     /**
index 4565d8e7a7adc93ad7a6993197c98fab46be1267..3de8828f98e1e5740a155d60532d45c875010836 100644 (file)
@@ -49,6 +49,7 @@ class ContentProxy
         $entry->setUrl($content['url'] ?: $url);
         $entry->setTitle($title);
         $entry->setContent($html);
+        $entry->setLanguage($content['language']);
         $entry->setMimetype($content['content_type']);
 
         if (isset($content['open_graph']['og_image'])) {
index 71a004ffe71a52cf56dced1339710254e97607bc..30065d6b7c705323213eea423d2ee4483ccb842f 100644 (file)
@@ -18,7 +18,13 @@ class ContentProxyTest extends KernelTestCase
 
         $graby->expects($this->any())
             ->method('fetchContent')
-            ->willReturn(array('html' => false, 'title' => '', 'url' => '', 'content_type' => ''));
+            ->willReturn(array(
+                'html' => false,
+                'title' => '',
+                'url' => '',
+                'content_type' => '',
+                'language' => '',
+            ));
 
         $proxy = new ContentProxy($graby);
         $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
@@ -28,6 +34,7 @@ class ContentProxyTest extends KernelTestCase
         $this->assertEquals('<p>Unable to retrieve readable content.</p>', $entry->getContent());
         $this->assertEmpty($entry->getPreviewPicture());
         $this->assertEmpty($entry->getMimetype());
+        $this->assertEmpty($entry->getLanguage());
     }
 
     public function testWithEmptyContentButOG()
@@ -39,7 +46,17 @@ class ContentProxyTest extends KernelTestCase
 
         $graby->expects($this->any())
             ->method('fetchContent')
-            ->willReturn(array('html' => false, 'title' => '', 'url' => '', 'content_type' => '', 'open_graph' => array('og_title' => 'my title', 'og_description' => 'desc')));
+            ->willReturn(array(
+                'html' => false,
+                'title' => '',
+                'url' => '',
+                'content_type' => '',
+                'language' => '',
+                'open_graph' => array(
+                    'og_title' => 'my title',
+                    'og_description' => 'desc',
+                ),
+            ));
 
         $proxy = new ContentProxy($graby);
         $entry = $proxy->updateEntry(new Entry(new User()), 'http://0.0.0.0');
@@ -48,6 +65,7 @@ class ContentProxyTest extends KernelTestCase
         $this->assertEquals('my title', $entry->getTitle());
         $this->assertEquals('<p>Unable to retrieve readable content.</p><p><i>But we found a short description: </i></p>desc', $entry->getContent());
         $this->assertEmpty($entry->getPreviewPicture());
+        $this->assertEmpty($entry->getLanguage());
         $this->assertEmpty($entry->getMimetype());
     }
 
@@ -65,6 +83,7 @@ class ContentProxyTest extends KernelTestCase
                 'title' => 'this is my title',
                 'url' => 'http://1.1.1.1',
                 'content_type' => 'text/html',
+                'language' => 'fr',
                 'open_graph' => array(
                     'og_title' => 'my OG title',
                     'og_description' => 'OG desc',
@@ -80,5 +99,6 @@ class ContentProxyTest extends KernelTestCase
         $this->assertEquals('this is my content', $entry->getContent());
         $this->assertEquals('http://3.3.3.3/cover.jpg', $entry->getPreviewPicture());
         $this->assertEquals('text/html', $entry->getMimetype());
+        $this->assertEquals('fr', $entry->getLanguage());
     }
 }