Exemple #1
0
 /**
  * @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);
 }
Exemple #2
0
 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);
 }
Exemple #3
0
 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);
 }
Exemple #4
0
 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);
 }
Exemple #5
0
    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));
    }