Alexander Nicolaysen Sørnes : version: Properly handle missing test results

Chris Morgan cmorgan at winehq.org
Sun Nov 4 20:58:03 CST 2007


Module: appdb
Branch: master
Commit: 5c6b3bb45ede3a31b0c388dd5decb3bb2b1ebb66
URL:    http://source.winehq.org/git/appdb.git/?a=commit;h=5c6b3bb45ede3a31b0c388dd5decb3bb2b1ebb66

Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date:   Sun Nov  4 23:09:12 2007 +0100

version: Properly handle missing test results

---

 application.css     |    6 ++++++
 include/html.php    |   14 ++++++++++++++
 include/version.php |   45 ++++++++++++++++++++++++++++++++++-----------
 3 files changed, 54 insertions(+), 11 deletions(-)

diff --git a/application.css b/application.css
index 15b99dc..0746379 100644
--- a/application.css
+++ b/application.css
@@ -63,6 +63,12 @@ div.info_contents { padding:10px; background-color: #eee; }
 div.title_class { font-weight: bold; border-bottom: 1px solid; padding: 4px;
                   font-size: 140%; background-color: #ddd; }
 
+/* Classes for a note box */
+div.note_container { margin:6px; border: 1px solid; }
+div.note_body { padding: 10px; background-color: #ffe732; }
+div.note_title { font-weight: bold; border-bottom: 1px solid; padding: 4px;
+                 font-size: 140%; background-color: #ffc004; }
+
 /* classes for the main page */
 div.rating_header { padding: 8px; }
 div.rating_title { padding-bottom: 4px; font-weight: bold; font-size: 160%; }
diff --git a/include/html.php b/include/html.php
index e8cdfdb..b0aa6c8 100644
--- a/include/html.php
+++ b/include/html.php
@@ -286,4 +286,18 @@ function make_inx_option_list($varname, $inx = null)
 
 }
 
+/* Displays a note box */
+function html_note($shTitle, $shBody)
+{
+    $shRet = '<div class="note_container">';
+    $shRet .= '<div class="note_title">';
+    $shRet .= $shTitle;
+    $shRet .= '</div>';
+    $shRet .= '<div class="note_body">';
+    $shRet .= $shBody;
+    $shRet .= '</div></div>';
+
+    return $shRet;
+}
+
 ?>
diff --git a/include/version.php b/include/version.php
index 3b9bd2f..ea8c121 100644
--- a/include/version.php
+++ b/include/version.php
@@ -987,11 +987,7 @@ class version {
 
         //////////////////////
         // Show test data
-        echo "<div class='info_container'>\n";
 
-        echo "\t<div class='title_class'>\n";
-        echo "\t\tSelected test results <small><small>(selected in 'Test Results' table below)</small></small>\n";
-        echo "\t</div>\n";
 
         /* Set if the use chose to display a particular test report */
         if($iTestingId)
@@ -999,18 +995,45 @@ class version {
         else if($this->iVersionId) /* Let's query for the latest rest report */
         {
             $iTestingId = testData::getNewestTestIdFromVersionId($this->iVersionId);
-            $oTest = new testData($iTestingId);
+
+            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 */
         {
             $aTests = $this->getTestResults();
-            $oTest = $aTests[0];
+
+            if(sizeof($aTests)) /* ... but we cannot be certain */
+                $oTest = $aTests[0];
         }
 
-        echo "<div class='info_contents'>\n";
-        $oTest->ShowTestResult();
-        echo "</div>\n";
+        if($oTest)
+        {
+            echo "<div class='info_container'>\n";
 
-        echo "</div>\n"; // end the 'info_container' div
+            echo "\t<div class='title_class'>\n";
+            echo "\t\tSelected test results <small><small>(selected in 'Test Results' table below)</small></small>\n";
+            echo "\t</div>\n";
+
+            echo "<div class='info_contents'>\n";
+
+            $oTest->ShowTestResult();
+
+            echo "</div>\n";
+
+            echo "</div>\n";
+        } else /* Show a note saying that no test results are present,
+                  and encourage the user to take action */
+        {
+            echo html_note('No Test Results',
+                           'This version has no test results, please consider submitting some.<br />'.
+                           'They may be part of the '.
+                           'version or application description. If they are, please '.
+                           'consider becoming a maintainer and remove them, submitting '.
+                           'a proper test report instead.');
+        }
+
+        // end the 'info_container' div
         // end show test data
         /////////////////////
 
@@ -1020,7 +1043,7 @@ class version {
         if($oTest->iTestingId)
         {
             $oTest->ShowVersionsTestingTable($this->objectMakeUrl()."&iTestingId=", 5);
-        } else /* We are previewing the version */
+        } else if($oTest) /* We are previewing the version */
         {
             $oTable = $oTest->CreateTestTable();
             $oTable->AddRow($oTest->CreateTestTableRow(0, ""));




More information about the wine-cvs mailing list