This commit is contained in:
Nicolas Lœuillet 2015-12-08 09:20:03 +01:00
parent c5d0db8b71
commit 347fa6beb0
8 changed files with 31 additions and 37 deletions

View File

@ -2,13 +2,11 @@
namespace Wallabag\CoreBundle\Form\DataTransformer; namespace Wallabag\CoreBundle\Form\DataTransformer;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Form\DataTransformerInterface; use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\Exception\TransformationFailedException;
/** /**
* Transforms a comma-separated list to a proper PHP array. * Transforms a comma-separated list to a proper PHP array.
* Example: the string "foo, bar" will become the array ["foo", "bar"] * Example: the string "foo, bar" will become the array ["foo", "bar"].
*/ */
class StringToListTransformer implements DataTransformerInterface class StringToListTransformer implements DataTransformerInterface
{ {
@ -44,14 +42,14 @@ class StringToListTransformer implements DataTransformerInterface
/** /**
* Transforms a string to a list. * Transforms a string to a list.
* *
* @param string $string * @param string $string
* *
* @return array|null * @return array|null
*/ */
public function reverseTransform($string) public function reverseTransform($string)
{ {
if ($string === null) { if ($string === null) {
return null; return;
} }
return array_values(array_filter(array_map('trim', explode($this->separator, $string)))); return array_values(array_filter(array_map('trim', explode($this->separator, $string))));

View File

@ -5,7 +5,6 @@ namespace Wallabag\CoreBundle\Form\Type;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
use Wallabag\CoreBundle\Form\DataTransformer\StringToListTransformer; use Wallabag\CoreBundle\Form\DataTransformer\StringToListTransformer;
class TaggingRuleType extends AbstractType class TaggingRuleType extends AbstractType

View File

@ -19,7 +19,7 @@ class ContentProxy
public function __construct(Graby $graby, RuleBasedTagger $tagger, Logger $logger) public function __construct(Graby $graby, RuleBasedTagger $tagger, Logger $logger)
{ {
$this->graby = $graby; $this->graby = $graby;
$this->tagger = $tagger; $this->tagger = $tagger;
$this->logger = $logger; $this->logger = $logger;
} }

View File

@ -3,7 +3,6 @@
namespace Wallabag\CoreBundle\Helper; namespace Wallabag\CoreBundle\Helper;
use RulerZ\RulerZ; use RulerZ\RulerZ;
use Wallabag\CoreBundle\Entity\Entry; use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag; use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Repository\EntryRepository; use Wallabag\CoreBundle\Repository\EntryRepository;
@ -18,8 +17,8 @@ class RuleBasedTagger
public function __construct(RulerZ $rulerz, TagRepository $tagRepository, EntryRepository $entryRepository) public function __construct(RulerZ $rulerz, TagRepository $tagRepository, EntryRepository $entryRepository)
{ {
$this->rulerz = $rulerz; $this->rulerz = $rulerz;
$this->tagRepository = $tagRepository; $this->tagRepository = $tagRepository;
$this->entryRepository = $entryRepository; $this->entryRepository = $entryRepository;
} }
@ -54,11 +53,11 @@ class RuleBasedTagger
*/ */
public function tagAllForUser(User $user) public function tagAllForUser(User $user)
{ {
$rules = $this->getRulesForUser($user); $rules = $this->getRulesForUser($user);
$entries = array(); $entries = array();
foreach ($rules as $rule) { foreach ($rules as $rule) {
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId()); $qb = $this->entryRepository->getBuilderForAllByUser($user->getId());
$entries = $this->rulerz->filter($qb, $rule->getRule()); $entries = $this->rulerz->filter($qb, $rule->getRule());
foreach ($entries as $entry) { foreach ($entries as $entry) {

View File

@ -150,7 +150,7 @@ class ExportControllerTest extends WallabagCoreTestCase
$this->assertGreaterThan(1, $csv); $this->assertGreaterThan(1, $csv);
// +1 for title line // +1 for title line
$this->assertEquals(count($contentInDB)+1, count($csv)); $this->assertEquals(count($contentInDB) + 1, count($csv));
$this->assertEquals('Title;URL;Content;Tags;"MIME Type";Language', $csv[0]); $this->assertEquals('Title;URL;Content;Tags;"MIME Type";Language', $csv[0]);
} }

View File

@ -19,10 +19,10 @@ class StringToListTransformerTest extends \PHPUnit_Framework_TestCase
public function transformProvider() public function transformProvider()
{ {
return array( return array(
array( null, '' ), array(null, ''),
array( array(), '' ), array(array(), ''),
array( array('single value'), 'single value' ), array(array('single value'), 'single value'),
array( array('first value', 'second value'), 'first value,second value' ), array(array('first value', 'second value'), 'first value,second value'),
); );
} }
@ -39,12 +39,12 @@ class StringToListTransformerTest extends \PHPUnit_Framework_TestCase
public function reverseTransformProvider() public function reverseTransformProvider()
{ {
return array( return array(
array( null, null ), array(null, null),
array( '', array() ), array('', array()),
array( 'single value', array('single value') ), array('single value', array('single value')),
array( 'first value,second value', array('first value', 'second value') ), array('first value,second value', array('first value', 'second value')),
array( 'first value, second value', array('first value', 'second value') ), array('first value, second value', array('first value', 'second value')),
array( 'first value, , second value', array('first value', 'second value') ), array('first value, , second value', array('first value', 'second value')),
); );
} }
} }

View File

@ -2,9 +2,7 @@
namespace Wallabag\CoreBundle\Tests\Helper; namespace Wallabag\CoreBundle\Tests\Helper;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Psr\Log\NullLogger; use Psr\Log\NullLogger;
use Wallabag\CoreBundle\Entity\Entry; use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\UserBundle\Entity\User; use Wallabag\UserBundle\Entity\User;
use Wallabag\CoreBundle\Helper\ContentProxy; use Wallabag\CoreBundle\Helper\ContentProxy;

View File

@ -18,8 +18,8 @@ class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
public function setUp() public function setUp()
{ {
$this->rulerz = $this->getRulerZMock(); $this->rulerz = $this->getRulerZMock();
$this->tagRepository = $this->getTagRepositoryMock(); $this->tagRepository = $this->getTagRepositoryMock();
$this->entryRepository = $this->getEntryRepositoryMock(); $this->entryRepository = $this->getEntryRepositoryMock();
$this->tagger = new RuleBasedTagger($this->rulerz, $this->tagRepository, $this->entryRepository); $this->tagger = new RuleBasedTagger($this->rulerz, $this->tagRepository, $this->entryRepository);
@ -37,8 +37,8 @@ class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
public function testTagWithNoMatchingRule() public function testTagWithNoMatchingRule()
{ {
$taggingRule = $this->getTaggingRule('rule as string', array('foo', 'bar')); $taggingRule = $this->getTaggingRule('rule as string', array('foo', 'bar'));
$user = $this->getUser([$taggingRule]); $user = $this->getUser([$taggingRule]);
$entry = new Entry($user); $entry = new Entry($user);
$this->rulerz $this->rulerz
->expects($this->once()) ->expects($this->once())
@ -54,8 +54,8 @@ class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
public function testTagWithAMatchingRule() public function testTagWithAMatchingRule()
{ {
$taggingRule = $this->getTaggingRule('rule as string', array('foo', 'bar')); $taggingRule = $this->getTaggingRule('rule as string', array('foo', 'bar'));
$user = $this->getUser([$taggingRule]); $user = $this->getUser([$taggingRule]);
$entry = new Entry($user); $entry = new Entry($user);
$this->rulerz $this->rulerz
->expects($this->once()) ->expects($this->once())
@ -76,10 +76,10 @@ class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
public function testTagWithAMixOfMatchingRules() public function testTagWithAMixOfMatchingRules()
{ {
$taggingRule = $this->getTaggingRule('bla bla', array('hey')); $taggingRule = $this->getTaggingRule('bla bla', array('hey'));
$otherTaggingRule = $this->getTaggingRule('rule as string', array('foo')); $otherTaggingRule = $this->getTaggingRule('rule as string', array('foo'));
$user = $this->getUser([$taggingRule, $otherTaggingRule]); $user = $this->getUser([$taggingRule, $otherTaggingRule]);
$entry = new Entry($user); $entry = new Entry($user);
$this->rulerz $this->rulerz
@ -98,9 +98,9 @@ class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
public function testWhenTheTagExists() public function testWhenTheTagExists()
{ {
$taggingRule = $this->getTaggingRule('rule as string', array('foo')); $taggingRule = $this->getTaggingRule('rule as string', array('foo'));
$user = $this->getUser([$taggingRule]); $user = $this->getUser([$taggingRule]);
$entry = new Entry($user); $entry = new Entry($user);
$tag = new Tag($user); $tag = new Tag($user);
$this->rulerz $this->rulerz
->expects($this->once()) ->expects($this->once())
@ -123,7 +123,7 @@ class RuleBasedTaggerTest extends \PHPUnit_Framework_TestCase
private function getUser(array $taggingRules = []) private function getUser(array $taggingRules = [])
{ {
$user = new User(); $user = new User();
$config = new Config($user); $config = new Config($user);
$user->setConfig($config); $user->setConfig($config);