From ebc492dc1fe93ac99e3c49b6c741f8554ca6cad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Nicolaysen=20S=C3=B8rnes?= Date: Fri, 30 Jan 2009 20:55:32 +0100 Subject: [PATCH] version: Make sure the displayed test results are for the displayed version --- include/testData.php | 5 +++++ include/version.php | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/include/testData.php b/include/testData.php index 9423e33..57f51ee 100644 --- a/include/testData.php +++ b/include/testData.php @@ -1413,6 +1413,11 @@ class testData{ return ((mktime() - mysqltimestamp_to_unixtimestamp($this->sSubmitTime)) > (60 * 60 * 24 * 175)); } + function objectGetParent() + { + return new version($this->iVersionId); + } + function objectGetChildren($bIncludeDeleted = false) { /* We have none */ diff --git a/include/version.php b/include/version.php index 1d2fa14..a5046f5 100644 --- a/include/version.php +++ b/include/version.php @@ -1035,11 +1035,20 @@ class version { // Show test data $iNewestId = 0; + $oTest = null; /* Set if the use chose to display a particular test report */ if($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); $iTestingId = $iNewestId; @@ -1047,7 +1056,7 @@ class version { if($iTestingId) /* We want all entries to have test data, but old versions might lack it, or data may have been deleted */ $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();