PropertyFilters.php

<?php

namespace Phad\Test\Unit;

class PropertyFilters extends \Phad\Tester {


    /**
     * @test adding a filter by name & then executing it
     */
    public function testDisableFiltering(){
        $phad = $this->phad();

        $phad->filters['namespace:filter_name'] = 
            function($input){
                return 'FILTERED';
            };

        $item = $phad->item('Other/SimpleBlogWithFilter', ['Blog'=>['title'=>'TITLE', 'description'=>'DESCRIPTION']]);


        $this->str_contains(
            $item,
            '<h1>TITLE</h1>',
            '<p>FILTERED</p>'
        );


        $item = $phad->item('Other/SimpleBlogWithFilter', ['Blog'=>['title'=>'TITLE', 'description'=>'DESCRIPTION']]);
        $item->enable_filtering = false;

        $this->str_contains(
            $item,
            '<h1>TITLE</h1>',
            '<p>DESCRIPTION</p>'
        );


    }

    /**
     * @test adding a filter by name & then executing it
     */
    public function testFilter(){

        $filterer = new \Phad();
        $filterer->filters['phad:test_to_lower'] = 'strtolower';

        $in = 'I AM STRING';
        $target = 'i am string';
        $actual = $filterer->filter('phad:test_to_lower', $in);

        $this->compare($target, $actual);
    }

}