}; $unitTests['Eval Template'] = function () { date_default_timezone_set('UTC'); $expected = 'My String at 08:39 06.02.1970 with 3.14 % of pie'; $template = '%string at %date[H:i d.m.Y] with %number$3.2f % of pie'; $object = (object) array('string' => 'My String', 'date' => new DateTime('@3141592'), 'number' => 3.1415); $evaluated_static = SimpleHTMLBuilder::evalTemplateString($template, $object); $evaluated_object = (new SimpleHTMLBuilder())->append($template)->evalTemplate($object); return $evaluated_static == $expected && $evaluated_object == $expected; }; $unitTests['Eval Template with Escape HTML'] = function () { date_default_timezone_set('UTC'); $expected = 'My <String> at 08:39 06.02.1970 with 3.14 % of pie'; $template = '%string at %date[H:i d.m.Y] with %number$3.2f % of pie'; $object = (object) array('string' => 'My <String>', 'date' => new DateTime('@3141592'), 'number' => 3.1415); $evaluated_static = SimpleHTMLBuilder::evalTemplateString($template, $object, true); $evaluated_object = (new SimpleHTMLBuilder())->append($template)->evalTemplate($object, true); return $evaluated_static == $expected && $evaluated_object == $expected; }; $unitTests['Open Tags'] = function () { $builder = new SimpleHTMLBuilder(); $builder->body()->div()->close('div')->p()->em(); return array('body', 'p', 'em') == $builder->openTags(); }; $unitTests['Close Until (default options)'] = function () { $builder = new SimpleHTMLBuilder(); $builder->body()->div()->closeUntil('body'); return '<body><div></div></body>' == $builder; }; $unitTests['Close Until (exclude tag)'] = function () { $builder = new SimpleHTMLBuilder(array('openTags' => function () {