Location: PHPKode > projects > PHPTAL > PHPTAL-1.2.2/tests/ArrayOverloadTest.php
<?php
/**
 * PHPTAL templating engine
 *
 * PHP Version 5
 *
 * @category HTML
 * @package  PHPTAL
 * @author   Laurent Bedubourg <hide@address.com>
 * @author   Kornel Lesiński <hide@address.com>
 * @license  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License
 * @version  SVN: $Id: ArrayOverloadTest.php 888 2010-06-08 09:48:33Z kornel $
 * @link     http://phptal.org/
 */

class MyArray implements ArrayAccess
{
    public function push($value)
    {
        $this->_values[] =  $value;
    }

    public function offsetGet($index)
    {
        return $this->_values[$index];
    }

    public function offsetSet($index, $value)
    {
        $this->_values[$index] = $value;
    }

    public function offsetExists($of)
    {
        return isset($this->_values[$of]);
    }

    public function offsetUnset($of)
    {
        unset($this->_values[$of]);
    }

    private $_values = array();
}


class ArrayOverloadTest extends PHPTAL_TestCase
{
    function testIt()
    {
        $arr = new MyArray();
        for ($i=0; $i<20; $i++) {
            $val = new stdClass;
            $val->foo = "foo value $i";
            $arr->push($val);
        }

        $tpl = $this->newPHPTAL('input/array-overload.01.html');
        $tpl->myobject = $arr;
        $res = $tpl->execute();
        $exp = normalize_html_file('output/array-overload.01.html');
        $res = normalize_html($res);
        $this->assertEquals($exp, $res);
    }
}


Return current item: PHPTAL