zoe Tue Jun 30 13:34:56 2009 UTC
Modified files:
/phpruntests/src/testcase rtPhpTestFile.php
Log:
Changes to discard empty test sections
http://cvs.php.net/viewvc.cgi/phpruntests/src/testcase/rtPhpTestFile.php?r1=1.4&r2=1.5&diff_format=u
Index: phpruntests/src/testcase/rtPhpTestFile.php
diff -u phpruntests/src/testcase/rtPhpTestFile.php:1.4
phpruntests/src/testcase/rtPhpTestFile.php:1.5
--- phpruntests/src/testcase/rtPhpTestFile.php:1.4 Mon May 25 12:46:57 2009
+++ phpruntests/src/testcase/rtPhpTestFile.php Tue Jun 30 13:34:56 2009
@@ -28,71 +28,81 @@
'rtHasNoDuplicateSections',
'rtIsValidSectionName',
'rtIsSectionImplemented'
- );
+ );
- /**
- * Reads the contents of the test file and creates an array of the
contents.
- *
- * @param string $testFile (file name)
- */
- public function doRead($testFile)
- {
- $this->testFileName = realpath($testFile);
- $this->testName=
dirname($this->testFileName).DIRECTORY_SEPARATOR.basename($this->testFileName,
".phpt");
- $this->testContents = file($this->testFileName);
- }
-
- public function normaliseLineEndings()
- {
- for ($i=0; $i<count($this->testContents); $i++) {
- //This is not nice but there are a huge number of tests with
random spacs at the end of the section header
- if (preg_match("/--([A-Z]+(_[A-Z]+|))--/",
$this->testContents[$i], $matches)) {
- $this->sectionHeadings[] = $matches[1];
- $this->testContents[$i] = $matches[1];
- } else {
- $this->testContents[$i] = rtrim($this->testContents[$i],
$this->carriageReturn.$this->newLine);
+ /**
+ * Reads the contents of the test file and creates an array of the
contents.
+ *
+ * @param string $testFile (file name)
+ */
+ public function doRead($testFile)
+ {
+ $this->testFileName = realpath($testFile);
+ $this->testName=
dirname($this->testFileName).DIRECTORY_SEPARATOR.basename($this->testFileName,
".phpt");
+ $this->testContents = file($this->testFileName);
+ }
+
+ public function normaliseLineEndings()
+ {
+ $tempArray = array();
+ for ($i=0; $i<count($this->testContents); $i++) {
+ //This is not nice but there are a huge number of tests with
random spacs at the end of the section header
+ //and empty sections.
+ if (preg_match("/--([A-Z]+(_[A-Z]+|))--/",
$this->testContents[$i], $matches)) {
+ //look ahead to next section unless this is the last test
section.
+ //if the EXPECT section is empty (missing) it will be
caught by preconditions.
+ //If the next line is also a section heading than skip
adding it to the test case or headings.
+ if($i< count($this->testContents) - 1) {
+ if (!preg_match("/--([A-Z]+(_[A-Z]+|))--/",
$this->testContents[$i+1])) {
+ $this->sectionHeadings[] = $matches[1];
+ $tempArray[] = $matches[1];
+ }
+ }
+ } else {
+ $tempArray[] = rtrim($this->testContents[$i],
$this->carriageReturn.$this->newLine);
+ }
}
+ $this->testContents = $tempArray;
}
- }
-
- public function arePreConditionsMet()
- {
- foreach ($this->preConditions as $preCondition) {
- $condition = new $preCondition;
- if (!$condition->isMet($this->sectionHeadings)) {
- $this->testExitMessage = $condition->getMessage();
- return false;
+
+ public function arePreConditionsMet()
+ {
+ foreach ($this->preConditions as $preCondition) {
+ $condition = new $preCondition;
+ if (!$condition->isMet($this->sectionHeadings)) {
+ $this->testExitMessage = $condition->getMessage();
+ return false;
+ }
}
+ return true;
+ }
+
+ public function getContents()
+ {
+ return $this->testContents;
+ }
+
+ public function getSectionHeadings()
+ {
+ return $this->sectionHeadings;
}
- return true;
- }
- public function getContents()
- {
- return $this->testContents;
- }
-
- public function getSectionHeadings()
- {
- return $this->sectionHeadings;
- }
-
-
- public function getTestName()
- {
- return $this->testName;
- }
-
-
- public function getTestFileName()
- {
- return $this->testFileName;
- }
-
-
- public function getExitMessage()
- {
- return $this->testExitMessage;
- }
+
+ public function getTestName()
+ {
+ return $this->testName;
+ }
+
+
+ public function getTestFileName()
+ {
+ return $this->testFileName;
+ }
+
+
+ public function getExitMessage()
+ {
+ return $this->testExitMessage;
+ }
}
?>
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php