version: Make sure the displayed test results are for the displayed version

This commit is contained in:
Alexander Nicolaysen Sørnes
2009-01-30 20:55:32 +01:00
parent d43cb56dd6
commit ebc492dc1f
2 changed files with 16 additions and 2 deletions

View File

@@ -1413,6 +1413,11 @@ class testData{
return ((mktime() - mysqltimestamp_to_unixtimestamp($this->sSubmitTime)) > (60 * 60 * 24 * 175)); return ((mktime() - mysqltimestamp_to_unixtimestamp($this->sSubmitTime)) > (60 * 60 * 24 * 175));
} }
function objectGetParent()
{
return new version($this->iVersionId);
}
function objectGetChildren($bIncludeDeleted = false) function objectGetChildren($bIncludeDeleted = false)
{ {
/* We have none */ /* We have none */

View File

@@ -1035,11 +1035,20 @@ class version {
// Show test data // Show test data
$iNewestId = 0; $iNewestId = 0;
$oTest = null;
/* Set if the use chose to display a particular test report */ /* Set if the use chose to display a particular test report */
if($iTestingId) if($iTestingId)
{
$oTest = new testData($iTestingId); $oTest = new testData($iTestingId);
else if($this->iVersionId) /* Let's query for the latest rest report */ $oTestParent = $oTest->objectGetParent();
/* Check that the test report doesn't belong to another version */
if($oTestParent->objectGetId() && $oTestParent->objectGetId() != $this->objectGetId())
$oTest = null;
}
if(!$oTest && $this->iVersionId) /* Let's query for the latest rest report */
{ {
$iNewestId = testData::getNewestTestIdFromVersionId($this->iVersionId); $iNewestId = testData::getNewestTestIdFromVersionId($this->iVersionId);
$iTestingId = $iNewestId; $iTestingId = $iNewestId;
@@ -1047,7 +1056,7 @@ class version {
if($iTestingId) /* We want all entries to have test data, but old versions might lack if($iTestingId) /* We want all entries to have test data, but old versions might lack
it, or data may have been deleted */ it, or data may have been deleted */
$oTest = new testData($iTestingId); $oTest = new testData($iTestingId);
} else /* Perhaps we have a cached entry? There should be */ } else if(!$oTest) /* Perhaps we have a cached entry? There should be */
{ {
$aTests = $this->getTestResults(); $aTests = $this->getTestResults();