/js/lib/Socket.IO-node/support/expresso/deps/jscoverage/doc/example-jsunit/jsunit/app/jsUnitTracer.js
http://github.com/onedayitwillmake/RealtimeMultiplayerNodeJs · JavaScript · 102 lines · 87 code · 15 blank · 0 comment · 16 complexity · cd02a42fc0ac84eafd02c95b22321ee5 MD5 · raw file
- var TRACE_LEVEL_NONE = new JsUnitTraceLevel(0, null);
- var TRACE_LEVEL_WARNING = new JsUnitTraceLevel(1, "#FF0000");
- var TRACE_LEVEL_INFO = new JsUnitTraceLevel(2, "#009966");
- var TRACE_LEVEL_DEBUG = new JsUnitTraceLevel(3, "#0000FF");
-
- function JsUnitTracer(testManager) {
- this._testManager = testManager;
- this._traceWindow = null;
- this.popupWindowsBlocked = false;
- }
-
- JsUnitTracer.prototype.initialize = function() {
- if (this._traceWindow != null && top.testManager.closeTraceWindowOnNewRun.checked)
- this._traceWindow.close();
- this._traceWindow = null;
- }
-
- JsUnitTracer.prototype.finalize = function() {
- if (this._traceWindow != null) {
- this._traceWindow.document.write('<\/body>\n<\/html>');
- this._traceWindow.document.close();
- }
- }
-
- JsUnitTracer.prototype.warn = function() {
- this._trace(arguments[0], arguments[1], TRACE_LEVEL_WARNING);
- }
-
- JsUnitTracer.prototype.inform = function() {
- this._trace(arguments[0], arguments[1], TRACE_LEVEL_INFO);
- }
-
- JsUnitTracer.prototype.debug = function() {
- this._trace(arguments[0], arguments[1], TRACE_LEVEL_DEBUG);
- }
-
- JsUnitTracer.prototype._trace = function(message, value, traceLevel) {
- if (!top.shouldSubmitResults() && this._getChosenTraceLevel().matches(traceLevel)) {
- var traceString = message;
- if (value)
- traceString += ': ' + value;
- var prefix = this._testManager.getTestFileName() + ":" +
- this._testManager.getTestFunctionName() + " - ";
- this._writeToTraceWindow(prefix, traceString, traceLevel);
- }
- }
-
- JsUnitTracer.prototype._getChosenTraceLevel = function() {
- var levelNumber = eval(top.testManager.traceLevel.value);
- return traceLevelByLevelNumber(levelNumber);
- }
-
- JsUnitTracer.prototype._writeToTraceWindow = function(prefix, traceString, traceLevel) {
- var htmlToAppend = '<p class="jsUnitDefault">' + prefix + '<font color="' + traceLevel.getColor() + '">' + traceString + '</font><\/p>\n';
- this._getTraceWindow().document.write(htmlToAppend);
- }
-
- JsUnitTracer.prototype._getTraceWindow = function() {
- if (this._traceWindow == null && !top.shouldSubmitResults() && !this.popupWindowsBlocked) {
- this._traceWindow = window.open('', '', 'width=600, height=350,status=no,resizable=yes,scrollbars=yes');
- if (!this._traceWindow)
- this.popupWindowsBlocked = true;
- else {
- var resDoc = this._traceWindow.document;
- resDoc.write('<html>\n<head>\n<link rel="stylesheet" href="css/jsUnitStyle.css">\n<title>Tracing - JsUnit<\/title>\n<head>\n<body>');
- resDoc.write('<h2>Tracing - JsUnit<\/h2>\n');
- resDoc.write('<p class="jsUnitDefault"><i>(Traces are color coded: ');
- resDoc.write('<font color="' + TRACE_LEVEL_WARNING.getColor() + '">Warning</font> - ');
- resDoc.write('<font color="' + TRACE_LEVEL_INFO.getColor() + '">Information</font> - ');
- resDoc.write('<font color="' + TRACE_LEVEL_DEBUG.getColor() + '">Debug</font>');
- resDoc.write(')</i></p>');
- }
- }
- return this._traceWindow;
- }
-
- if (xbDEBUG.on) {
- xbDebugTraceObject('window', 'JsUnitTracer');
- }
-
- function JsUnitTraceLevel(levelNumber, color) {
- this._levelNumber = levelNumber;
- this._color = color;
- }
-
- JsUnitTraceLevel.prototype.matches = function(anotherTraceLevel) {
- return this._levelNumber >= anotherTraceLevel._levelNumber;
- }
-
- JsUnitTraceLevel.prototype.getColor = function() {
- return this._color;
- }
-
- function traceLevelByLevelNumber(levelNumber) {
- switch (levelNumber) {
- case 0: return TRACE_LEVEL_NONE;
- case 1: return TRACE_LEVEL_WARNING;
- case 2: return TRACE_LEVEL_INFO;
- case 3: return TRACE_LEVEL_DEBUG;
- }
- return null;
- }