jasmine.log() and Spec#log() take multiple arguments which are pretty-printed and concatted together.

Log messages are handled correctly in TrivialReporter and JsApiReporter.
This commit is contained in:
Lee Byrd & Christian Williams
2010-06-22 12:23:54 -07:00
parent 3bdc96c00a
commit e7cd6a473a
11 changed files with 124 additions and 55 deletions

View File

@@ -80,11 +80,11 @@ jasmine.JsApiReporter.prototype.resultsForSpecs = function(specIds){
jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
var summaryMessages = [];
var messagesLength = result.messages.length
var messagesLength = result.messages.length;
for (var messageIndex = 0; messageIndex < messagesLength; messageIndex++) {
var resultMessage = result.messages[messageIndex];
summaryMessages.push({
text: resultMessage.text,
text: resultMessage.type == 'MessageResult' ? resultMessage.toString() : jasmine.undefined,
passed: resultMessage.passed ? resultMessage.passed() : true,
type: resultMessage.type,
message: resultMessage.message,
@@ -92,13 +92,11 @@ jasmine.JsApiReporter.prototype.summarizeResult_ = function(result){
stack: resultMessage.passed && !resultMessage.passed() ? resultMessage.trace.stack : jasmine.undefined
}
});
};
}
var summaryResult = {
return {
result : result.result,
messages : summaryMessages
};
return summaryResult;
};

View File

@@ -38,11 +38,11 @@ jasmine.NestedResults.prototype.rollupCounts = function(result) {
};
/**
* Tracks a result's message.
* @param message
* Adds a log message.
* @param values Array of message parts which will be concatenated later.
*/
jasmine.NestedResults.prototype.log = function(message) {
this.items_.push(new jasmine.MessageResult(message));
jasmine.NestedResults.prototype.log = function(values) {
this.items_.push(new jasmine.MessageResult(values));
};
/**

View File

@@ -37,8 +37,8 @@ jasmine.Spec.prototype.results = function() {
return this.results_;
};
jasmine.Spec.prototype.log = function(message) {
return this.results_.log(message);
jasmine.Spec.prototype.log = function() {
return this.results_.log(arguments);
};
/** @deprecated */

View File

@@ -51,14 +51,23 @@ jasmine.clearTimeout = jasmine.bindOriginal_(window, 'clearTimeout');
jasmine.setInterval = jasmine.bindOriginal_(window, 'setInterval');
jasmine.clearInterval = jasmine.bindOriginal_(window, 'clearInterval');
jasmine.MessageResult = function(text) {
jasmine.MessageResult = function(values) {
this.type = 'MessageResult';
this.text = text;
this.values = values;
this.trace = new Error(); // todo: test better
};
jasmine.MessageResult.prototype.toString = function() {
return this.text;
var text = "";
for(var i = 0; i < this.values.length; i++) {
if (i > 0) text += " ";
if (jasmine.isString_(this.values[i])) {
text += this.values[i];
} else {
text += jasmine.pp(this.values[i]);
}
}
return text;
};
jasmine.ExpectationResult = function(params) {
@@ -395,8 +404,9 @@ jasmine.createSpyObj = function(baseName, methodNames) {
return obj;
};
jasmine.log = function(message) {
jasmine.getEnv().currentSpec.log(message);
jasmine.log = function() {
var spec = jasmine.getEnv().currentSpec;
spec.log.apply(spec, arguments);
};
/**