/** * @dataProvider parseTagProvider */ public function testLexerTagParsing($cond, $expectedResult) { $provider = new \Webiny\Htpl\TemplateProviders\ArrayProvider(['test' => '<w-if cond="' . $cond . '"></w-if>']); $htpl = new \Webiny\Htpl\Htpl($provider); $result = $htpl->build('test')->getSource(); $this->assertSame($expectedResult . '<?php } ?>', $result); }
public function testLexerTagParsing2() { $provider = new \Webiny\Htpl\TemplateProviders\ArrayProvider(['test' => '<w-else></w-else>']); $htpl = new \Webiny\Htpl\Htpl($provider); $result = $htpl->build('test')->getSource(); $this->assertSame('<?php } else { ?>', $result); }
public function testLexerTagParsing() { $provider = new \Webiny\Htpl\TemplateProviders\ArrayProvider(['test' => '<w-include file="someVar"/>']); $htpl = new \Webiny\Htpl\Htpl($provider); $htpl->assign('someVar', 'someTemplate.htpl'); $result = $htpl->build('test')->getSource(); $this->assertSame('<?php Webiny\\Htpl\\Functions\\WInclude::htpl(' . \Webiny\Htpl\Processor\OutputWrapper::getVar('someVar') . ', $this->getHtplInstance()) ?>', $result); }
public function testLexerTagParsingJs() { // htpl instance $tpl = ' <w-minify> <script src="assets/js/skel.min.js"></script> <script src="assets/js/init.js"></script> </w-minify> '; $provider = new \Webiny\Htpl\TemplateProviders\ArrayProvider(['test' => $tpl]); $htpl = new \Webiny\Htpl\Htpl($provider); $htpl->setOptions(['minify' => ['driver' => 'Webiny\\Htpl\\UnitTests\\Mocks\\WMinifyMock']]); $result = $htpl->build('test')->fetch(); $this->assertSame('<script type="text/javascript" src="/mock/min.js"/>', $result); $this->assertSame(['assets/js/skel.min.js', 'assets/js/init.js'], WMinifyMock::$jsFiles); }
public function testLexerTagParsingWithKeyNested() { $tpl = '<w-loop items="items" var="var" key="key">'; $tpl .= '<li>'; $tpl .= '{key}=>{var.val}'; $tpl .= '<w-loop items="innerItems" var="iEntry" key="iKey">'; $tpl .= '<span>{key} => {iEntry.name} => {iKey}</span>'; $tpl .= '</w-loop>'; $tpl .= '</li>'; $tpl .= '</w-loop>'; $provider = new \Webiny\Htpl\TemplateProviders\ArrayProvider(['test' => $tpl]); $htpl = new \Webiny\Htpl\Htpl($provider); // source check $data = ['items' => ['A' => ['val' => 'ItemA'], 'B' => ['val' => 'ItemB']], 'innerItems' => ['C' => ['name' => 'ItemC'], 'D' => ['name' => 'ItemD']]]; $expectedResult = '<li>A=>ItemA <span>A => ItemC => C</span><span>A => ItemD => D</span> </li><li>B=>ItemB <span>B => ItemC => C</span><span>B => ItemD => D</span> </li>'; $result = $htpl->build('test', $data)->fetch(); $this->assertSame($expectedResult, trim($result)); }