protected function test(dom\element $test, $sExpected, $controler, dom\document $doc, fs\file $file) { if ($nodeResult = $test->getx('self:node', array(), false)) { $this->setArgument('node', $nodeResult->getFirst()); } return parent::test($test, $sExpected, $controler, $doc, $file); }
protected function prepareTest(dom\element $test, $controler) { $bResult = true; if ($prepare = $test->getx('self:prepare', array(), false)) { if (is_null(eval('$closure = function($controler) { $manager = $controler; ' . $prepare->readx() . '; };'))) { $this->evaluate($closure, $controler); $this->onPrepared(); } else { $bResult = false; } $prepare->remove(); } return $bResult; }
protected function buildResult(dom\element $test, $manager, fs\file $file, array $aArguments) { $result = null; try { $manager->build($file, $this->getDirectory()); if ($sLoad = $test->readx('self:load', array(), false)) { if (is_null(eval('$closure = function($manager) { ' . $sLoad . '; };'))) { $aArguments = $this->evaluate($closure, $this); } } $bExpected = !$test->getx('self:expected', array(), false); $sRun = $test->readx('@run', array(), false); $result = $this->loadResult($manager, $file, $aArguments, $sRun !== 'false', $bExpected); } catch (\sylma\core\exception $e) { $this->catchParserException($test, $e, $file); } return $result; }
protected function testArgument(dom\element $test, dom\document $doc, fs\file $file) { $expected = $test->getx('self:expected'); return parent::test($test, $expected->read(), $this, $doc, $file); }
protected function mergeElementComplex(dom\element $current, dom\element $import) { foreach ($import->getChildren() as $child) { if ($child->getNamespace() === $this->getNamespace('self')) { continue; } else { if ($el = $current->getx("{$child->getName()}", array(), false)) { $this->mergeElement($el, $child); } } } foreach ($current->getChildren() as $child) { $import->add($child); } return $current->replace($import); }