Revision: 5b3609665766
Author:   Janne Härkönen <[email protected]>
Date:     Mon Jun 20 03:29:18 2011
Log:      model: status is now uppercased in model always
http://code.google.com/p/robotframework/source/detail?r=5b3609665766

Modified:
 /src/robot/webcontent/log.html
 /src/robot/webcontent/log.js
 /src/robot/webcontent/model.js
 /src/robot/webcontent/testdata.js
 /utest/webcontent/spec/ParsingSpec.js

=======================================
--- /src/robot/webcontent/log.html      Mon Jun 20 02:56:16 2011
+++ /src/robot/webcontent/log.html      Mon Jun 20 03:29:18 2011
@@ -46,7 +46,7 @@
         makeElementVisible(window.location.hash.substring(1));
         window.location.hash = window.location.hash.substring(1);
     } else {
-        expandFailed(topsuite);
+        expandSuite(topsuite);
     }
 });

@@ -84,9 +84,6 @@
     $('<h2>Test Execution Log</h2>').appendTo($('body'));
     var root = $.tmpl('suiteTemplate', main);
     root.appendTo($('body'));
-    if (main.status == "pass") {
-        $("#"+main.id+"_unfoldlink").click();
-    }
 }
 </script>

@@ -161,7 +158,7 @@
         <div class="foldingbutton" id="${id}_foldlink"
              onclick="closeElement('${id}');"
              style="display: none;">-</div>
-        <span class="${status}">TEST&nbsp;SUITE:</span>
+        <span class="${status.toLowerCase()}">TEST&nbsp;SUITE:</span>
<a class="name" name="suite_${fullname}" title="${name}">${name}</a>
       </td>
     </tr>
@@ -204,7 +201,7 @@
              id="${id}_foldlink"
              onclick="closeElement('${id}');"
              style="display: none;">-</div>
-        <span class="${status}">TEST&nbsp;CASE: </span>
+        <span class="${status.toLowerCase()}">TEST&nbsp;CASE: </span>
         <a class="name" name="test_${fullname}"
            title="${fullname}">${name}</a>
       </td>
@@ -224,7 +221,7 @@
             <tr><th>Timeout:</th><td>${timeout}</td></tr>
             {{/if}}
<tr><th>Start / End / Elapsed:</th><td>${times.startTime} / ${times.endTime} / ${times.elapsedTime}</td></tr> - <tr><th>Status:</th><td class="${status}">${statusText}</td></tr> + <tr><th>Status:</th><td><span class="${status.toLowerCase()}">${status}</span>{{if isCritical}} (critical){{/if}}</td></tr>
             {{if message}}
             <tr><th>Message:</th><td>${message}</td></tr>
             {{/if}}
@@ -247,7 +244,7 @@
              id="${id}_unfoldlink"
              onclick="openKeyword('${id}');"
              style="display: block;">+</div>
-        <span class="${status}">${type}: </span>
+        <span class="${status.toLowerCase()}">${type}: </span>
         <a class="name" name="keyword_${path}" title="${name}">${name}</a>
         <span class="arg">${arguments}</span>
       </td>
=======================================
--- /src/robot/webcontent/log.js        Mon Jun 20 01:13:00 2011
+++ /src/robot/webcontent/log.js        Mon Jun 20 03:29:18 2011
@@ -36,6 +36,7 @@
     $('#'+elementId+'_unfoldlink').show();
 }

+// TODO: rename
 function iterateTasks(){
     if (!window.tasks.length)
         return;
@@ -61,14 +62,21 @@

 function expandAllChildren(elementId) {
     window.tasks = [window.testdata.find(elementId)];
-    window.tasksMatcher = function() {return true;}
+    window.tasksMatcher = function() {return true;};
     iterateTasks();
 }

 function expandFailed(element) {
-    if (element.status == "fail") {
+    if (element.status == "FAIL") {
         window.tasks = [element];
-        window.tasksMatcher = function(e) {return e.status == "fail"};
+        window.tasksMatcher = function(e) {return e.status == "FAIL";};
         iterateTasks();
     }
 }
+
+function expandSuite(suite) {
+    if (suite.status == "PASS")
+        $("#"+suite.id+"_unfoldlink").click();
+    else
+        expandFailed(suite);
+}
=======================================
--- /src/robot/webcontent/model.js      Thu Jun 16 12:53:15 2011
+++ /src/robot/webcontent/model.js      Mon Jun 20 03:29:18 2011
@@ -1,9 +1,9 @@
 window.model = function () {

     var STATUS = {
-        pass: "pass",
-        fail: "fail",
-        notRun: "not_run"
+        pass: "PASS",
+        fail: "FAIL",
+        notRun: "NOT RUN"
     };

     var KEYWORD_TYPE = {
@@ -16,10 +16,6 @@
         var suite = createModelObject(data);
         suite.source = data.source;
suite.fullname = data.parent ? data.parent.fullname + "." + data.name : data.name; - // TODO: No need to have status and statusText when the difference is just case. - // Better to have just status in uppercase and let view do toLowerCase() if needed.
-        // Same changes should be done also with Tests and Keywords.
-        suite.statusText = data.status.status.toUpperCase();
         setStats(suite, data.statistics);
         suite.metadata = data.metadata;
         suite.populateKeywords = createIterablePopulator("Keyword");
@@ -29,9 +25,8 @@
         suite.children = function () {
return suite.keywords().concat(suite.tests()).concat(suite.suites());
         };
-        // TODO: Is hasTeardownFailure used anymore?
         suite.hasTeardownFailure = function () {
- return suiteTeardownFailed(suite) || data.status.parentSuiteTeardownFailed; + return suiteTeardownFailed(suite) || data.parentSuiteTeardownFailed;
         };
         suite.searchTests = function (predicate) {
             var tests = [];
@@ -128,7 +123,7 @@
         var obj = {};
         obj.name = data.name;
         obj.documentation = data.doc; // TODO: rename documentation -> doc
-        obj.status = data.status.status;
+        obj.status = data.status;
         obj.times = data.times;
         return obj
     }
@@ -146,7 +141,6 @@
             return test.keywords();
         };
         test.isCritical = data.isCritical;
- test.statusText = test.status.toUpperCase() + (test.isCritical ? " (critical)" : ""); // TODO: move to templates
         test.tags = data.tags;
         test.message = data.message;
         // TODO: Handle failures in parent teardowns
@@ -185,13 +179,6 @@
         message.link = link;
         return message;
     }
-
-    function Status(status, parentSuiteTeardownFailed) {
-        return {
-            parentSuiteTeardownFailed: parentSuiteTeardownFailed,
-            status: parentSuiteTeardownFailed ? model.FAIL : status
-        };
-    }

     function Times(timedata) {
         var start = timedata[0];
@@ -298,7 +285,6 @@
         Test: Test,
         Keyword: Keyword,
         Message: Message,
-        Status: Status,
         Times: Times,
         PASS: STATUS.pass,
         FAIL: STATUS.fail,
=======================================
--- /src/robot/webcontent/testdata.js   Fri Jun 17 01:30:20 2011
+++ /src/robot/webcontent/testdata.js   Mon Jun 20 03:29:18 2011
@@ -46,10 +46,10 @@
model.Message(LEVEL[element[1]], timestamp(element[0]), get(element[2]), element[3]));
     }

-    // TODO: Is separate status object needed? Probably not.
-    function createStatus(stats, parentSuiteTeardownFailed) {
- var status = {'P': model.PASS , 'F': model.FAIL, 'N': model.NOT_RUN}[stats[0]];
-        return model.Status(status, parentSuiteTeardownFailed);
+    function parseStatus(stats, parentSuiteTeardownFailed) {
+        if (parentSuiteTeardownFailed)
+            return model.FAIL;
+ return {'P': model.PASS, 'F': model.FAIL, 'N': model.NOT_RUN}[stats[0]];
     }

     function last(items) {
@@ -73,7 +73,7 @@
             name: get(element[1]),
             args: get(element[4]),
             doc: get(element[3]),
-            status: createStatus(last(element)),
+            status: parseStatus(last(element)),
             times: model.Times(times(last(element))),
             parent: parent,
             index: index
@@ -104,7 +104,7 @@
             doc: get(element[4]),
             timeout: get(element[2]),
             isCritical: (element[3] == "Y"),
- status: createStatus(statusElement, suite.hasTeardownFailure()),
+            status: parseStatus(statusElement, suite.hasTeardownFailure()),
message: createMessage(statusElement, suite.hasTeardownFailure()),
             times: model.Times(times(statusElement)),
             tags: tags(last2(element))
@@ -132,7 +132,8 @@
             name: element[2],
             source: element[1],
             doc: get(element[3]),
- status: createStatus(statusElement, parent && parent.hasTeardownFailure()), + status: parseStatus(statusElement, parent && parent.hasTeardownFailure()), + parentSuiteTeardownFailed: parent && parent.hasTeardownFailure(), message: createMessage(statusElement, parent && parent.hasTeardownFailure()),
             times: model.Times(times(statusElement)),
             statistics: suiteStats(last(element)),
=======================================
--- /utest/webcontent/spec/ParsingSpec.js       Fri Jun 17 01:30:20 2011
+++ /utest/webcontent/spec/ParsingSpec.js       Mon Jun 20 03:29:18 2011
@@ -85,8 +85,7 @@
     it("should parse suite", function () {
         var suite = window.testdata.suite();
         expect(suite.name).toEqual("Suite");
-        expect(suite.status).toEqual("pass");
-        expect(suite.statusText).toEqual("PASS");
+        expect(suite.status).toEqual("PASS");
         expect(suite.source).toEqual("/tmp/test.txt");
         expect(suite.documentation).toEqual("suite doc");
         expect(suite.times).toBeDefined();
@@ -98,8 +97,7 @@
     it("should parse test", function () {
         var test = window.testdata.suite().test(0);
         expect(test.name).toEqual("Test");
-        expect(test.status).toEqual("pass");
-        expect(test.statusText).toEqual("PASS (critical)");
+        expect(test.status).toEqual("PASS");
         expect(test.fullname).toEqual("Suite.Test");
         expect(test.documentation).toEqual("test doc");
         expect(test.tags).toEqual(["tag1", "tag2"]);
@@ -111,7 +109,7 @@
     it("should parse keyword", function () {
         var kw = window.testdata.suite().test(0).keyword(0);
         expect(kw.name).toEqual("lib.kw");
-        expect(kw.status).toEqual("pass");
+        expect(kw.status).toEqual("PASS");
         expect(kw.times).toBeDefined();
         expect(kw.times.elapsedMillis).toEqual(0);
         expect(kw.path).toEqual("Suite.Test.0");
@@ -290,12 +288,12 @@

     it("should show test status as failed", function (){
         var test = window.testdata.suite().suite(0).test(0);
-        expect(test.status).toEqual("fail");
+        expect(test.status).toEqual("FAIL");
     });

     it("should show suite status as failed", function (){
         var suite = window.testdata.suite().suite(0);
-        expect(suite.status).toEqual("fail");
+        expect(suite.status).toEqual("FAIL");
     });

it("should show test message 'Teardown of the parent suite failed.'", function (){

Reply via email to