}); (string) (new SimpleHTMLBuilder(array('openTags' => 'notice')))->html(); set_error_handler($oldErrorHandler); return $result; }; $unitTests['Callback on Open Tags'] = function () { $result = false; (string) (new SimpleHTMLBuilder(array('openTags' => function () use(&$result) { $result = true; })))->html(); return $result; }; $unitTests['Auto Close on Open Tags'] = function () { $expected = '<html><p></p></html>'; $builder = new SimpleHTMLBuilder(array('openTags' => 'autoClose')); $builder->html()->p(); return $builder == $expected; }; $unitTests['Error on Non-Matching Close'] = function () { $result = false; $oldErrorHandler = set_error_handler(function ($errorNo, $errorString) use(&$result) { $result = $errorNo == E_USER_ERROR; }); (string) (new SimpleHTMLBuilder(array('nonMatchingClose' => 'error')))->html()->close('other'); set_error_handler($oldErrorHandler); return $result; }; $unitTests['Warning on Non-Matching Close'] = function () { $result = false; $oldErrorHandler = set_error_handler(function ($errorNo, $errorString) use(&$result) { $result = $errorNo == E_USER_WARNING;