Index: review/server.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/review/server.inc,v
retrieving revision 1.4
diff -u -r1.4 server.inc
--- review/server.inc	28 Oct 2009 03:06:30 -0000	1.4
+++ review/server.inc	3 Nov 2009 19:30:13 -0000
@@ -30,6 +30,8 @@
 
   public function summary(array $result);
 
+  public function summary_format(array $details);
+
   public function detail(array $test, array $result);
 
   /**
Index: server/pifr_server.css
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.css,v
retrieving revision 1.4
diff -u -r1.4 pifr_server.css
--- server/pifr_server.css	28 Oct 2009 03:06:30 -0000	1.4
+++ server/pifr_server.css	3 Nov 2009 19:30:13 -0000
@@ -48,12 +48,17 @@
   color: #494949;
 }
 
+.pifr-assertion-summary {
+  padding: 5px;
+  border: 1px solid #cccccc;
+}
+
 .pifr-assertion-header {
   cursor: pointer;
 }
 
 .pifr-assertion-header.odd:hover, .pifr-assertion-header.even:hover {
-	background-color: white;
+  background-color: white;
 }
 
 /* Status page
Index: server/pifr_server.result.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.result.inc,v
retrieving revision 1.19
diff -u -r1.19 pifr_server.result.inc
--- server/pifr_server.result.inc	18 Oct 2009 23:36:48 -0000	1.19
+++ server/pifr_server.result.inc	3 Nov 2009 19:30:13 -0000
@@ -107,7 +107,7 @@
 function pifr_server_result_summary_message($result) {
   if ($result) {
     $summary = pifr_server_review_summary($result);
-    $details = $result['details'];
+    $details = pifr_server_review_summary_format($result);
 
     $environment = pifr_server_environment_get($result['environment_id']);
     $details['@environment'] = $environment['title'];
Index: server/pifr_server.review.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/server/pifr_server.review.inc,v
retrieving revision 1.5
diff -u -r1.5 pifr_server.review.inc
--- server/pifr_server.review.inc	28 Oct 2009 07:10:07 -0000	1.5
+++ server/pifr_server.review.inc	3 Nov 2009 19:30:13 -0000
@@ -57,6 +57,19 @@
   return $plugin->summary($result);
 }
 
+
+/**
+ * Format summary details.
+ *
+ * @param array $result Result information.
+ * @return array Formatted summary details.
+ */
+function pifr_server_review_summary_format(array $result) {
+  $plugin = pifr_server_review_plugin_load_environment($result['environment_id']);
+
+  return $plugin->summary_format($result['details']);
+}
+
 /**
  * Generate review details.
  *
Index: review/assertion/pifr_assertion.server.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/review/assertion/pifr_assertion.server.inc,v
retrieving revision 1.2
diff -u -r1.2 pifr_assertion.server.inc
--- review/assertion/pifr_assertion.server.inc	18 Oct 2009 23:36:48 -0000	1.2
+++ review/assertion/pifr_assertion.server.inc	3 Nov 2009 19:30:13 -0000
@@ -73,6 +73,22 @@
   }
 
   /**
+   * Format the result detail numbers.
+   *
+   * Performs a number format on each of the three assertion summary counts:
+   * pass, fail, exception (with @ in front of each).
+   *
+   * @param array $details Result detail array.
+   * @return array Formated result details.
+   */
+  public function summary_format(array $details) {
+    foreach (array('@pass', '@fail', '@exception') as $key) {
+      $details[$key] = number_format($details[$key]);
+    }
+    return $details;
+  }
+
+  /**
    * Generate detailed display of test results.
    *
    * The display will provide test summaries and assertions as applicable.
@@ -147,6 +163,13 @@
       }
     }
 
-    return $rows ? theme('table', $header, $rows) : '';
+    // Generate summary of assertion result.
+    $pass = $result['details']['@fail'] + $result['details']['@exception'] == 0;
+    $details = $this->summary_format($result['details']);
+    $summary = t('@pass pass(es), @fail fail(s), and @exception exception(es)', $details);
+    $summary = '<div class="pifr-assertion-summary pifr-' . ($pass ? 'ok' : 'error') . '">' . $summary . '</div>';
+
+    // Merge all components.
+    return $rows ? $summary . theme('table', $header, $rows) : '';
   }
 }
