_elementFactory->createBlock
(
'Each',
array
(
new jQueryTmpl_Token_EachStart(0, array('name'=>'key3'), ''),
new jQueryTmpl_Token_NoOp(1, array(), 'TEST'),
new jQueryTmpl_Token_EachEnd(0, array(), '')
)
);
$this->assertEquals
(
'',
$element->setData($this->_data)->render()
);
}
public function testShoudLoopThroughArray()
{
$element = $this->_elementFactory->createBlock
(
'Each',
array
(
new jQueryTmpl_Token_EachStart(0, array('name'=>'array'), ''),
new jQueryTmpl_Token_NoOp(1, array(), '
'),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'$index'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ': '),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'$value'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ''),
new jQueryTmpl_Token_EachEnd(0, array(), '')
)
);
$this->assertEquals
(
'0: av11: av22: av3',
$element->setData($this->_data)->render()
);
}
public function testShoudLoopThroughArrayWithCustomIndex()
{
$element = $this->_elementFactory->createBlock
(
'Each',
array
(
new jQueryTmpl_Token_EachStart(0, array('name'=>'array','index'=>'idx','value'=>'val'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ''),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'idx'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ': '),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'val'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ''),
new jQueryTmpl_Token_EachEnd(0, array(), '')
)
);
$this->assertEquals
(
'0: av11: av22: av3',
$element->setData($this->_data)->render()
);
}
public function testShoudLoopThroughNestedEach()
{
$element = $this->_elementFactory->createBlock
(
'Each',
array
(
new jQueryTmpl_Token_EachStart(0, array('name'=>'array'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ''),
new jQueryTmpl_Token_EachStart(1, array('name'=>'key5.child5'), ''),
new jQueryTmpl_Token_NoOp(2, array(), '- '),
new jQueryTmpl_Token_ValueEscaped(2, array('name'=>'$value'), ''),
new jQueryTmpl_Token_NoOp(2, array(), '
'),
new jQueryTmpl_Token_EachEnd(1, array(), ''),
new jQueryTmpl_Token_NoOp(1, array(), '
'),
new jQueryTmpl_Token_EachEnd(0, array(), '')
)
);
$this->assertEquals
(
'',
$element->setData($this->_data)->render()
);
}
public function testShoudLoopThroughObject()
{
$element = $this->_elementFactory->createBlock
(
'Each',
array
(
new jQueryTmpl_Token_EachStart(0, array('name'=>'object'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ''),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'$value.gender'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ': '),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'this.name'), ''),
new jQueryTmpl_Token_NoOp(1, array(), '('),
new jQueryTmpl_Token_ValueEscaped(1, array('name'=>'attn'), ''),
new jQueryTmpl_Token_NoOp(1, array(), ')'),
new jQueryTmpl_Token_EachEnd(0, array(), '')
)
);
$this->assertEquals
(
'F: Sophia(!)M: Zack(!)F: Zoe(!): Morgan(!)',
$element->setData($this->_data)->render()
);
}
}