// +---------------------------------------------------------------------- /** * 模板测试 * @author oldrind */ namespace tests\thinkphp\library\think; use think\Template; class templateTest extends \PHPUnit_Framework_TestCase { public function testVar() { $template = new Template(); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = <<parse($content); $this->assertEquals($data, $content); $content = <<parse($content); $this->assertEquals($data, $content); } public function testVarFunction() { $template = new Template(); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $template->parse($content); $this->assertEquals($data, $content); } public function testVarIdentify() { $config['tpl_begin'] = '<#'; $config['tpl_end'] = '#>'; $config['tpl_var_identify'] = ''; $template = new Template($config); $content = << EOF; $data = <<a) ? (is_array(\$info)?\$info['a']:\$info->a) : 'test'; ?> EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $data = <<a)) echo 'test'; ?> EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $data = <<a)==(is_array(\$info)?\$info['b']:\$info->b)) echo 'test'; ?> EOF; $template->parse($content); $this->assertEquals($data, $content); $content = << EOF; $data = <<a) !== ''?(is_array(\$info)?\$info['a']:\$info->a):'test')?'yes':'no'; ?> EOF; $template->parse($content); $this->assertEquals($data, $content); $template2 = new Template(); $template2->tpl_var_identify = 'obj'; $content = <<b)?'yes':'no'; ?> EOF; $template2->parse($content); $this->assertEquals($data, $content); } public function testThinkVar() { $config['tpl_begin'] = '{'; $config['tpl_end'] = '}'; $template = new Template($config); $_SERVER['SERVER_NAME'] = 'server_name'; $_GET['action'] = 'action'; $_POST['action'] = 'action'; $_COOKIE['name'] = 'name'; $_SESSION['action'] = ['name' => 'name']; define('SITE_NAME', 'site_name'); $content = << {\$Think.GET.action}
{\$Think.POST.action}
{\$Think.COOKIE.action}
{\$Think.COOKIE.action.name}
{\$Think.SESSION.action}
{\$Think.SESSION.action.name}
{\$Think.ENV.OS}
{\$Think.REQUEST.action}
{\$Think.CONST.SITE_NAME}
{\$Think.LANG.action}
{\$Think.CONFIG.action.name}
{\$Think.NOW}
{\$Think.VERSION}
{\$Think.LDELIM}
{\$Think.RDELIM}
{\$Think.SITE_NAME}
{\$Think.SITE.URL} EOF; $data = <<
















EOF; $template->parse($content); $this->assertEquals($data, $content); } public function testDisplay() { $template = new Template(); $template->assign('name', 'name'); $config = [ 'strip_space' => true, 'view_path' => dirname(__FILE__) . '/', ]; $data = ['name' => 'value']; $template->display('display', $data, $config); $this->expectOutputString('value'); } public function testFetch() { $config['view_path'] = dirname(__FILE__) . '/'; $config['view_suffix'] = '.html'; $config['layout_on'] = true; $config['layout_name'] = 'layout'; $template = new Template($config); $files = ['extend' => 'extend', 'include' => 'include']; $template->assign('files', $files); $template->assign('user', ['name' => 'name', 'account' => 100]); $template->assign('message', 'message'); $template->assign('info', ['value' => 'value']); $content = << header
value: main side value: message{\$message} mainbody {\$name} php code
EOF; $template->fetch($content); $this->expectOutputString($content2); // $template->parse($content); // var_dump($content); } public function testVarAssign() { $template = new Template(); $template->assign('name', 'value'); $value = $template->get('name'); $this->assertEquals('value', $value); } public function testVarGet() { $template = new Template(); $data = ['a' => 'a', 'b' => 'b']; $template->assign($data); $this->assertEquals($data, $template->get()); } }