Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/jasny/twig-extensions/tests/TextExtensionTest.php
<?php

namespace Jasny\Twig;

use
Jasny\Twig\TextExtension;
use
Jasny\Twig\TestHelper;

/**
 * @covers Jasny\Twig\TextExtension
 */
class TextExtensionTest extends \PHPUnit_Framework_TestCase
{
    use
TestHelper;
   
    protected function
getExtension()
    {
        return new
TextExtension();
    }

   
    public function
testParagraph()
    {
       
$this->assertRender("<p>foo<br>\nbar</p>\n<p>monkey</p>", "{{ 'foo\nbar\n\nmonkey'|paragraph() }}");
    }
   
   
    public function
testLine()
    {
       
$this->assertRender("foo", "{{ 'foo\nbar\nbaz'|line() }}");
    }
   
    public function
testLineTwo()
    {
       
$this->assertRender("bar", "{{ 'foo\nbar\nbaz'|line(2) }}");
    }
   
    public function
testLineToHigh()
    {
       
$this->assertRender("", "{{ 'foo\nbar\nbaz'|line(100) }}");
    }
   
   
    public function
testLess()
    {
       
$this->assertRender("foo...", "{{ 'foo<!-- pagebreak -->baz'|less() }}");
    }
   
    public function
testLessCustom()
    {
       
$this->assertRender("foo..", "{{ 'fooXbarXbaz'|less('..', 'X') }}");
    }
   
    public function
testLessNoPageBreak()
    {
       
$this->assertRender("foo bar", "{{ 'foo bar'|less }}");
    }
   
   
    public function
testTruncate()
    {
       
$this->assertRender("foo...", "{{ 'foo bar baz'|truncate(6) }}");
    }
   
    public function
testTruncateCustom()
    {
       
$this->assertRender("foo ..", "{{ 'foo bar baz'|truncate(6, '..') }}");
    }
   
    public function
testTruncateToHigh()
    {
       
$this->assertRender("foo bar baz", "{{ 'foo bar baz'|truncate(100) }}");
    }
   
   
    public function
testLinkify()
    {
       
$this->assertRender(
           
'<a href="http://www.example.com">www.example.com</a>, color.bar and '
               
. '<a href="mailto:john@example.com">john@example.com</a>',
           
'{{ "www.example.com, color.bar and john@example.com"|linkify }}'
       
);
    }
   
    public function
testLinkifyAll()
    {
       
$this->assertRender(
           
'<a href="http://www.example.com">www.example.com</a>, <a href="http://color.bar">color.bar</a> and '
               
. '<a href="mailto:john@example.com">john@example.com</a>',
           
'{{ "www.example.com, color.bar and john@example.com"|linkify(["http", "mail"], [], "all") }}'
       
);
    }
   
    public function
testLinkifyHttps()
    {
       
$this->assertRender(
           
'<a href="https://www.example.com">www.example.com</a>',
           
'{{ "www.example.com"|linkify("https") }}'
       
);
    }
   
    public function
testLinkifyMail()
    {
       
$this->assertRender(
           
'<a href="mailto:john@example.com">john@example.com</a> and '
               
. '<a href="mailto:jeff@example.com">jeff@example.com</a>',
           
'{{ "john@example.com and jeff@example.com"|linkify }}'
       
);
    }
   
    public function
testLinkifyFtp()
    {
       
$this->assertRender(
           
'<a href="ftp://www.example.com">www.example.com</a>',
           
'{{ "ftp://www.example.com"|linkify("ftp") }}'
       
);
    }
   
    public function
testLinkifyFtpAll()
    {
       
$this->assertRender(
           
'<a href="ftp://www.example.com">www.example.com</a>',
           
'{{ "www.example.com"|linkify("ftp", [], "all") }}'
       
);
    }
   
    public function
testLinkifyOther()
    {
       
$this->assertRender(
           
'<a href="foo:abc.def.hif">abc.def.hif</a>',
           
'{{ "foo:abc.def.hif"|linkify("foo") }}'
       
);
    }
   
    public function
testLinkifyOtherAll()
    {
       
$this->assertRender(
           
'<a href="foo:abc.def.hif">abc.def.hif</a>',
           
'{{ "abc.def.hif"|linkify("foo", [], "all") }}'
       
);
    }
   
    public function
testLinkifyWithAttributes()
    {
       
$this->assertRender(
           
'<a foo="bar" color="blue" href="http://www.example.com">www.example.com</a> and '
               
. '<a foo="bar" color="blue" href="mailto:john@example.com">john@example.com</a>',
           
'{{ "www.example.com and john@example.com"|linkify(["http", "mail"], {foo: "bar", color: "blue"}) }}'
       
);
    }
   
    public function
testLinkifyWithExistingLink()
    {
       
$this->assertRender(
           
'<a href="http://www.example.com">www.example.com</a> and '
               
. '<a href="http://www.example.net">www.example.net</a>',
           
'{{ "<a href=\\"http://www.example.com\\">www.example.com</a> and www.example.net"|linkify }}'
       
);
    }
   
   
    public function
filterProvider()
    {
        return [
            [
'paragraph'],
            [
'line'],
            [
'less'],
            [
'truncate'],
            [
'linkify']
        ];
    }
   
   
/**
     * @dataProvider filterProvider
     *
     * @param string $filter
     */
   
public function testWithNull($filter)
    {
       
$this->assertRender('-', '{{ null|' . $filter . '("//")|default("-") }}');
    }    
}