Example #1
0
 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);
 }
Example #2
0
 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;
 }
Example #3
0
 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;
 }
Example #4
0
 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);
 }
Example #5
0
 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);
 }