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 SUITE:</span>
+ <span class="${status.toLowerCase()}">TEST 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 CASE: </span>
+ <span class="${status.toLowerCase()}">TEST 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 (){