Example #1
0
 public function parseMatch(dom\element $el)
 {
     $this->setMatch($el->readx('@match', array(), false));
     if ($this->getMatchString()) {
         $this->parseMatchValue($this->getMatchString(), $el);
     }
 }
Example #2
0
 protected function parseResult(dom\element $test, fs\file $file, array $aArguments = array())
 {
     if ($test->readx('@profile', array(), false)) {
         $this->loadProfiler();
         $this->startProfile();
     }
     return parent::parseResult($test, $file, $aArguments);
 }
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 addParsedChild(dom\element $el, array &$aResult, $mContent)
 {
     $mContent = $this->getWindow()->toString($mContent);
     if ($sKey = $el->readx('@action:name', array(), false)) {
         $aResult[$sKey] = $mContent;
     } else {
         $aResult[] = $mContent;
     }
 }
Example #5
0
 protected function addParsedChild(dom\element $el, array &$aResult, $mContent)
 {
     $mContent = current($this->getWindow()->parseArrayables(array($mContent)));
     if ($sKey = $el->readx('@action:name', array(), false)) {
         $aResult[$sKey] = $mContent;
     } else {
         $aResult[] = $mContent;
     }
 }
Example #6
0
 protected function test(dom\element $test, $sExpected, $controler, dom\document $doc, fs\file $file)
 {
     $bResult = false;
     $bReady = true;
     $this->resetCount();
     $sExpected = $test->readx('self:expected', array(), false);
     try {
         $this->prepareTest($test, $controler);
         if ($bReady) {
             if ($sExpected) {
                 if (is_null(eval('$closure = function($controler) { $manager = $controler; ' . $sExpected . '; };'))) {
                     $bResult = $this->evaluate($closure, $controler);
                 }
             } else {
                 $bResult = $this->testNode();
             }
         }
     } catch (core\exception $e) {
         $bResult = $this->catchException($test, $e, $file);
     }
     return $bResult;
 }
Example #7
0
 protected function elementIsTemplate(dom\element $el)
 {
     return $el->readx('@js:alias', $this->getNS(), false);
 }
Example #8
0
 protected function parseClassName(dom\element $el)
 {
     $sResult = '';
     if ($sName = $el->readx('@name', array(), false)) {
         if ($sName[0] == '\\') {
             $sResult = $sName;
         } else {
             $sResult = $this->getClassBase() . '\\' . $sName;
         }
     }
     return $sResult;
 }
Example #9
0
 protected function parseElementKey(dom\element $el)
 {
     return $el->readx('@tpl:name', array(), false);
 }
Example #10
0
 protected function parsePath(dom\element $el)
 {
     $result = null;
     if (!($sName = $el->readx('@name', array(), false))) {
         $sName = 'default';
     }
     if ($el->readx('@disabled', array(), false)) {
         $this->aDisabled[$sName] = true;
     } else {
         if (!array_key_exists($sName, $this->aDisabled)) {
             $result = $this->parseComponent($el);
             $this->addPath($result);
         }
     }
     return $result;
 }
Example #11
0
 protected function loadRule(dom\element $el, array &$aResult)
 {
     $aResult[$el->getName()] = $el->readx('@value', array(), false);
 }
Example #12
0
 protected function reflectOccurs(dom\element $el)
 {
     if (!($sOccurs = $el->readx('@occurs', array(), false))) {
         $sOccurs = '1..1';
     }
     list($iMin, $iMax) = explode('..', $sOccurs);
     $this->setOccurs($iMin, $iMax);
 }
Example #13
0
 protected function getType(dom\element $el)
 {
     if (!($sResult = $el->readx('@self:type', $this->getNS(), false))) {
         if ($element = $this->getElement($el)) {
             $sResult = $element->readx('@self:type', array(), false);
         }
     }
     return $sResult;
 }
Example #14
0
 protected function addSchemaType(dom\element $el, $sNamespace)
 {
     $sName = $el->readx('@name');
     if (!isset($this->aTypesNodes[$sNamespace])) {
         $this->aTypesNodes[$sNamespace] = array();
     }
     if (isset($this->aTypesNodes[$sNamespace][$sName])) {
         $this->throwException(sprintf('Type "%s" already exists', $sNamespace . ':' . $sName), $el->asToken());
     }
     $this->aTypesNodes[$sNamespace][$sName] = $this->getDocument()->add($el);
 }