mirror of
https://github.com/wallabag/wallabag.git
synced 2024-12-27 01:50:29 +00:00
Twig: add removeSchemeAndWww filter
This twig filter removes scheme (only http and https are supported) and pass the result to removeWww filter to also remove 'www.' at the beginning of an url. Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
This commit is contained in:
parent
03b020eb20
commit
e50e45d6fa
2 changed files with 35 additions and 0 deletions
|
@ -28,6 +28,7 @@ class WallabagExtension extends \Twig_Extension implements \Twig_Extension_Globa
|
|||
{
|
||||
return [
|
||||
new \Twig_SimpleFilter('removeWww', [$this, 'removeWww']),
|
||||
new \Twig_SimpleFilter('removeSchemeAndWww', [$this, 'removeSchemeAndWww']),
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -45,6 +46,13 @@ class WallabagExtension extends \Twig_Extension implements \Twig_Extension_Globa
|
|||
return preg_replace('/^www\./i', '', $url);
|
||||
}
|
||||
|
||||
public function removeSchemeAndWww($url)
|
||||
{
|
||||
return $this->removeWww(
|
||||
preg_replace('@^https?://@i', '', $url)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return number of entries depending of the type (unread, archive, starred or all).
|
||||
*
|
||||
|
|
|
@ -30,4 +30,31 @@ class WallabagExtensionTest extends \PHPUnit_Framework_TestCase
|
|||
$this->assertSame('lemonde.fr', $extension->removeWww('lemonde.fr'));
|
||||
$this->assertSame('gist.github.com', $extension->removeWww('gist.github.com'));
|
||||
}
|
||||
|
||||
public function testRemoveSchemeAndWww()
|
||||
{
|
||||
$entryRepository = $this->getMockBuilder('Wallabag\CoreBundle\Repository\EntryRepository')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$tagRepository = $this->getMockBuilder('Wallabag\CoreBundle\Repository\TagRepository')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$tokenStorage = $this->getMockBuilder('Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$translator = $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$extension = new WallabagExtension($entryRepository, $tagRepository, $tokenStorage, 0, $translator);
|
||||
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('www.lemonde.fr'));
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('http://lemonde.fr'));
|
||||
$this->assertSame('lemonde.fr', $extension->removeSchemeAndWww('https://www.lemonde.fr'));
|
||||
$this->assertSame('gist.github.com', $extension->removeSchemeAndWww('https://gist.github.com'));
|
||||
$this->assertSame('ftp://gist.github.com', $extension->removeSchemeAndWww('ftp://gist.github.com'));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue