<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -442,6 +442,20 @@ FBL.ns(function() { with (FBL) {
                 panel.appendResults([result]);
               }
             },
+
+            /*
+             * Inserts a log message
+             * @param {String} msg The message to display.
+             */
+            log: function( msg ) {
+              var result = new Firebug.FireUnitModule.TestResult(win, undefined, msg, undefined, undefined, true);
+              if ( testQueue ) {
+                queueResults.push(result);
+              } else {
+                var panel = context.getPanel(panelName);
+                panel.appendResults([result]);
+              }
+            },
             
             /*
              * Compares two strings to see if they are the same. If they are,
@@ -667,7 +681,7 @@ FBL.ns(function() { with (FBL) {
             if (FBTrace.DBG_FIREUNIT)
                 FBTrace.sysout(&quot;fireunit.FireUnitPanel.updateOption: &quot; + name + &quot;: &quot; + value);
     
-            if (name == &quot;fireunit.showPass&quot; || name == &quot;fireunit.showFail&quot;)
+            if (name == &quot;fireunit.showPass&quot; || name == &quot;fireunit.showFail&quot; || name == &quot;fireunit.showLog&quot; )
                 this.updatePanelFilter();
         },
     
@@ -675,6 +689,7 @@ FBL.ns(function() { with (FBL) {
         {
             var showPass = Firebug.getPref(Firebug.prefDomain, &quot;fireunit.showPass&quot;);
             var showFail = Firebug.getPref(Firebug.prefDomain, &quot;fireunit.showFail&quot;);
+            var showLog = Firebug.getPref(Firebug.prefDomain, &quot;fireunit.showLog&quot;);
     
             // Update styles on the root table (contains the list of results).
             // These styles ensure proper visibility of pass and fail tests according 
@@ -683,6 +698,7 @@ FBL.ns(function() { with (FBL) {
             var table = getElementByClass(panelNode, &quot;testTable&quot;);
             showPass ? setClass(table, &quot;showPass&quot;) : removeClass(table, &quot;showPass&quot;);
             showFail ? setClass(table, &quot;showFail&quot;) : removeClass(table, &quot;showFail&quot;);
+            showLog ? setClass(table, &quot;showLog&quot;) : removeClass(table, &quot;showLog&quot;);
         },
     
         getOptionsMenuItems: function(context)
@@ -690,6 +706,7 @@ FBL.ns(function() { with (FBL) {
             var items = [];
             items.push(this.optionMenu($FU_STR(&quot;fireunit.option.Passing Tests&quot;), &quot;fireunit.showPass&quot;));
             items.push(this.optionMenu($FU_STR(&quot;fireunit.option.Failing Tests&quot;), &quot;fireunit.showFail&quot;));
+            items.push(this.optionMenu($FU_STR(&quot;fireunit.option.Log&quot;), &quot;fireunit.showLog&quot;));
             items.push(&quot;-&quot;);
             items.push({
                 label: $FU_STR(&quot;fireunit.option.Enable Privileges&quot;),
@@ -744,7 +761,7 @@ FBL.ns(function() { with (FBL) {
             var summary = { passing: 0, failing: 0 };
             for (var row = tbody.firstChild; row; row = row.nextSibling) {
                 if (hasClass(row, &quot;testResultRow&quot;))
-                    hasClass(row, &quot;testError&quot;) ? summary.failing++ : summary.passing++;
+                    hasClass(row, &quot;testError&quot;) ? summary.failing++ : hasClass(row, &quot;testOK&quot;) ? summary.passing++ : true;
             }
     
             // Append summary row.
@@ -777,7 +794,8 @@ FBL.ns(function() { with (FBL) {
             FOR(&quot;result&quot;, &quot;$results&quot;,
                 TR({&quot;class&quot;: &quot;testResultRow&quot;, _repObject: &quot;$result&quot;,
                     $testError: &quot;$result|isError&quot;,
-                    $testOK: &quot;$result|isOK&quot;},
+                    $testOK: &quot;$result|isOK&quot;,
+                    $testLog: &quot;$result|isLog&quot;},
                     TD({&quot;class&quot;: &quot;testResultCol&quot;, width: &quot;100%&quot;},
                         DIV({&quot;class&quot;: &quot;testResultMessage testResultLabel&quot;},
                             &quot;$result|getMessage&quot;
@@ -823,13 +841,18 @@ FBL.ns(function() { with (FBL) {
         },
     
         isError: function(result)
-        {
-            return !result.pass;
+        {   // result.log takes precedence
+            return !result.log &amp;&amp; !result.pass;
         },
     
         isOK: function(result)
+        {   // result.log takes precedence
+            return !result.log &amp;&amp; result.pass;
+        },
+        
+        isLog: function(result)
         {
-            return result.pass;
+            return result.log;
         },
     
         summaryPassed: function(summary)
@@ -1266,12 +1289,14 @@ FBL.ns(function() { with (FBL) {
     /**
      * This object represents a test-result.
      */
-    Firebug.FireUnitModule.TestResult = function(win, pass, msg, expected, result)
+    Firebug.FireUnitModule.TestResult = function(win, pass, msg, expected, result, log)
     {
         var location = win.location.href;
         this.fileName = location.substr(location.lastIndexOf(&quot;/&quot;) + 1);
     
-        this.pass = pass ? true : false;
+        this.pass = pass;
+        this.log = log;
+        
         this.msg = clean(msg);
         this.expected = expected;
         this.result = result;</diff>
      <filename>chrome/content/fireunit/fireunit.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,18 +1,19 @@
-fireunit.panel.Test=Test
-fireunit.tab.Stack=Test Location
-fireunit.tab.Compare=Compare
-fireunit.title.Expected=Expected Result
-fireunit.title.Result=Actual Result
-fireunit.title.Difference=Difference
-fireunit.switch.view_source=view source
-fireunit.switch.pretty_print=pretty print
-fireunit.option.Passing_Tests=Passing Tests
-fireunit.option.Failing_Tests=Failing Tests
-fireunit.option.Enable_Privileges=Enable Privileges
-fireunit.item.View_Source=View Source
-fireunit.item.Copy=Copy
-fireunit.item.Copy_All=Copy All
-fireunit.test.Line=Line
-fireunit.label.Pass=Pass
-fireunit.label.Fail=Fail
-fireunit.label.Timeout=Timeout
+fireunit.panel.Test=Test
+fireunit.tab.Stack=Test Location
+fireunit.tab.Compare=Compare
+fireunit.title.Expected=Expected Result
+fireunit.title.Result=Actual Result
+fireunit.title.Difference=Difference
+fireunit.switch.view_source=view source
+fireunit.switch.pretty_print=pretty print
+fireunit.option.Passing_Tests=Passing Tests
+fireunit.option.Failing_Tests=Failing Tests
+fireunit.option.Log=Log
+fireunit.option.Enable_Privileges=Enable Privileges
+fireunit.item.View_Source=View Source
+fireunit.item.Copy=Copy
+fireunit.item.Copy_All=Copy All
+fireunit.test.Line=Line
+fireunit.label.Pass=Pass
+fireunit.label.Fail=Fail
+fireunit.label.Timeout=Timeout</diff>
      <filename>chrome/locale/en-US/fireunit.properties</filename>
    </modified>
    <modified>
      <diff>@@ -94,6 +94,10 @@
     display: table-row !important;
 }
 
+.testTable.showLog .testResultRow.testLog {
+    display: table-row !important;
+}
+
 .testTable.showPass .testResultRow.testOK {
     display: table-row !important;
 }
@@ -123,6 +127,11 @@
     padding-left: 18px;
 }
 
+.testResultRow.testLog
+{
+    color: Blue;
+}
+
 .summaryPass.testResultSummaryLabel {
     color: Green;
 }</diff>
      <filename>chrome/skin/classic/fireunit.css</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
-pref(&quot;extensions.firebug.fireunit.showPass&quot;, true);
-pref(&quot;extensions.firebug.fireunit.showFail&quot;, true);
-pref(&quot;extensions.firebug.fireunit.testTimeout&quot;, 0);      // Break timeout for stuck unit test. Disabled by default.
-
-// Support for tracing console
-pref(&quot;extensions.firebug.DBG_FIREUNIT&quot;, false);
+pref(&quot;extensions.firebug.fireunit.showPass&quot;, true);
+pref(&quot;extensions.firebug.fireunit.showFail&quot;, true);
+pref(&quot;extensions.firebug.fireunit.showLog&quot;, true);
+pref(&quot;extensions.firebug.fireunit.testTimeout&quot;, 0);      // Break timeout for stuck unit test. Disabled by default.
+
+// Support for tracing console
+pref(&quot;extensions.firebug.DBG_FIREUNIT&quot;, false);</diff>
      <filename>defaults/preferences/prefs.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f8cd28b9fff346a7365d5036dc81fe35746c4029</id>
    </parent>
  </parents>
  <author>
    <name>Jan Odvarko</name>
    <email>odvarko@gmail.com</email>
  </author>
  <url>http://github.com/jeresig/fireunit/commit/9429805af2aac4468c57595fd16a84bccf53479f</url>
  <id>9429805af2aac4468c57595fd16a84bccf53479f</id>
  <committed-date>2009-02-25T08:12:39-08:00</committed-date>
  <authored-date>2009-02-25T08:12:39-08:00</authored-date>
  <message>New API for message logging: fireunit.log(msg); Contribution by Shane Tomlinson.</message>
  <tree>8e1f491ce3ebf8df0b0fd8c847d9abc30230139b</tree>
  <committer>
    <name>Jan Odvarko</name>
    <email>odvarko@gmail.com</email>
  </committer>
</commit>
