zoe Wed Jul 1 20:15:41 2009 UTC Modified files: /phpruntests/src/testcase rtPhpTest.php Log: Changes to deal with parsing tests that contain section key words inside teh section http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/rtPhpTest.php?r1=1.11&r2=1.12&diff_format=u Index: phpruntests/src/testcase/rtPhpTest.php diff -u phpruntests/src/testcase/rtPhpTest.php:1.11 phpruntests/src/testcase/rtPhpTest.php:1.12 --- phpruntests/src/testcase/rtPhpTest.php:1.11 Tue Jun 2 19:12:07 2009 +++ phpruntests/src/testcase/rtPhpTest.php Wed Jul 1 20:15:41 2009 @@ -40,29 +40,40 @@ */ public function parse() { - for ($i=0; $i<count($this->contents); $i++) { - //Create an array of section objects - if ($this->isSectionKey($this->contents[$i])) { - $sectionKey = $this->contents[$i]; - - $tempArray = array(); - for ($j=$i+1; $j<count($this->contents); $j++) { - - if ($this->isSectionKey($this->contents[$j]) || stripos($this->contents[$j], "===done===") !== false) { - if(stripos($this->contents[$j], "===done===") !== false) { - $tempArray[] = trim($this->contents[$j]); + + for ($sectionCount = 0; $sectionCount < count ($this->sectionHeadings) -1 ; $sectionCount++) { + + $sectionKey = $this->sectionHeadings[$sectionCount]; + $nextSectionKey = $this->sectionHeadings[$sectionCount + 1]; + $tempArray = array(); + + $contentPointer = 0; + for ($i=0; $i<count($this->contents); $i++) { + if($this->contents[$i] == $sectionKey) { + for ($j=$i+1; $j<count($this->contents); $j++) { + if ($this->contents[$j] == $nextSectionKey || stripos($this->contents[$j], "===done===") !== false) { + if(stripos($this->contents[$j], "===done===") !== false) { + $tempArray[] = trim($this->contents[$j]); + } + + $testSection = rtSection::getInstance($sectionKey, $tempArray); + $this->sections[$sectionKey] = $testSection; + $contentPointer = $j; + break; } - $testSection = rtSection::getInstance($sectionKey, $tempArray); - $this->sections[$sectionKey] = $testSection; - break; + $tempArray[] = $this->contents[$j]; } - $tempArray[] = $this->contents[$j]; } } } - $testSection = rtSection::getInstance($sectionKey, $tempArray); - $this->sections[$sectionKey] = $testSection; + + $tempArray = array(); + for ($k = $contentPointer +1; $k < count($this->contents); $k++) { + $tempArray[] = $this->contents[$k]; + } + $testSection = rtSection::getInstance($nextSectionKey, $tempArray); + $this->sections[$nextSectionKey] = $testSection; //Identify the file and expect section types @@ -71,23 +82,23 @@ $this->fileSection->setExecutableFileName($this->getName()); } - + /** * Initialises the configuration for this test. Uses the configuration sections from teh test case - * + * * @param rtRunTEstsConfiuration $runConfiguration - * + * */ public function init(rtRuntestsConfiguration $runConfiguration) { $this->testConfiguration = new rtTestConfiguration($runConfiguration, $this->sections, $this->sectionHeadings, $this->fileSection); } - + /** * Executes the test case - * + * * @param rtRunTEstsConfiuration $runConfiguration */ public function executeTest(rtRuntestsConfiguration $runConfiguration) @@ -119,7 +130,7 @@ /** * Test the output against the expect section - * + * */ public function compareOutput() { @@ -132,10 +143,10 @@ } } - + /** * Test the expected headers against actual headers. Only relevant for CGI tests. - * + * */ public function compareHeaders() { @@ -148,10 +159,10 @@ } } - + /** * Identify a section heading - * + * */ private function isSectionKey($line) { @@ -180,7 +191,7 @@ } } - + /** * Sets the test's expect section */ @@ -223,9 +234,9 @@ { return $this->sections[$sectionKey]; } - + /* - * Return the object containing all test status + * Return the object containing all test status */ public function getStatus() {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php