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

namespace Jasny\Twig;

use
Jasny\Twig\ArrayExtension;
use
Jasny\Twig\TestHelper;

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


    public function
testSum()
    {
       
$data = [1, 2, 3, 4];
       
       
$this->assertRender('10', '{{ data|sum }}', compact('data'));
    }

    public function
testProduct()
    {
       
$data = [1, 2, 3, 4];
       
       
$this->assertRender('24', '{{ data|product }}', compact('data'));
    }

    public function
testValues()
    {
       
$data = (object)['foo' => 1, 'bar' => 2, 'zoo' => 3];
       
       
$this->assertRender('1-2-3', '{{ data|values|join("-") }}', compact('data'));
    }

   
    public function
testAsArrayWithObject()
    {
       
$data = (object)['foo' => 1, 'bar' => 2, 'zoo' => 3];
       
       
$this->assertRender('foo-bar-zoo', '{{ data|as_array|keys|join("-") }}', compact('data'));
    }
   
    public function
testAsArrayWithString()
    {
       
$data = 'foo';
       
       
$this->assertRender('foo', '{{ data|as_array|join("-") }}', compact('data'));
    }
   
    public function
testHtmlAttr()
    {
       
$data = ['href' => 'foo.html', 'class' => 'big small', 'checked' => true, 'disabled' => false];
       
       
$this->assertRender(
           
'href="foo.html" class="big small" checked="checked"',
           
'{{ data|html_attr|raw }}',
           
compact('data')
        );
    }
   
   
    public function
filterProvider()
    {
        return [
            [
'sum'],
            [
'product'],
            [
'values'],
            [
'as_array'],
            [
'html_attr']
        ];
    }
   
   
/**
     * @dataProvider filterProvider
     *
     * @param string $filter
     */
   
public function testWithNull($filter)
    {
       
$this->assertRender('-', '{{ null|' . $filter . '("//")|default("-") }}');
    }    
}