@qooxdoo/framework
Version:
The JS Framework for Coders
133 lines (105 loc) • 3.31 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-2009 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Fabian Jakobs (fjakobs)
************************************************************************ */
/* global test */
qx.Class.define("qx.test.log.Logger", {
extend: qx.dev.unit.TestCase,
statics: {
TEST_CONSTANT: "abc"
},
members: {
setUp() {
this.__initialLogLevel = qx.log.Logger.getLevel();
},
tearDown() {
qx.log.Logger.setLevel(this.__initialLogLevel);
},
__testLogException(exception) {
var appender = new qx.log.appender.RingBuffer();
qx.log.Logger.setLevel("debug");
qx.log.Logger.clear();
qx.log.Logger.register(appender);
qx.log.Logger.debug(exception);
var events = appender.getAllLogEvents();
this.assertEquals(1, events.length);
if (qx.core.Environment.get("ecmascript.error.stacktrace")) {
if (
exception instanceof Error ||
qx.core.Environment.get("engine.name") !== "gecko"
) {
this.assert(events[0].items[0].trace.length > 0);
}
}
qx.log.Logger.unregister(appender);
},
testLogException() {
var exception = this.newException();
this.__testLogException(exception);
},
testLogDOMException() {
var exception = this.newDOMException();
this.__testLogException(exception);
},
testKonstantDeprecation() {
// call the method to see if its not throwing an error
qx.log.Logger.deprecatedConstantWarning(
qx.test.log.Logger,
"TEST_CONSTANT"
);
this.assertEquals("abc", qx.test.log.Logger.TEST_CONSTANT);
},
/**
* @ignore(test.DisposableObject)
*/
testContextObject() {
var appender = new qx.log.appender.RingBuffer();
qx.log.Logger.setLevel("debug");
qx.log.Logger.clear();
qx.log.Logger.register(appender);
qx.Class.define("test.DisposableObject", {
extend: qx.core.Object,
implement: qx.core.IDisposable
});
var obj = new qx.core.Object();
var dispObj = new test.DisposableObject();
qx.log.Logger.debug(qx.core.Object, "m1");
qx.log.Logger.debug(obj, "m2");
qx.log.Logger.debug(qxWeb(), "m3");
qx.log.Logger.debug(dispObj, "m4");
var events = appender.getAllLogEvents();
this.assertEquals(qx.core.Object, events[0].clazz);
this.assertEquals(qx.core.Object, events[1].clazz);
this.assertEquals(qxWeb, events[2].clazz);
this.assertEquals(dispObj.toHashCode(), events[3].object);
qx.log.Logger.unregister(appender);
dispObj.dispose();
qx.Class.undefine("test.DisposableObject");
},
newException() {
var exc;
try {
throw new Error();
} catch (e) {
exc = e;
}
return exc;
},
newDOMException() {
var exc;
try {
document.body.appendChild(null);
} catch (e) {
exc = e;
}
return exc;
}
}
});