UNPKG

@qooxdoo/framework

Version:

The JS Framework for Coders

143 lines (110 loc) 3.39 kB
/* ************************************************************************ 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) ************************************************************************ */ qx.Class.define("qx.test.log.Logger", { extend : qx.dev.unit.TestCase, statics : { TEST_CONSTANT: "abc" }, members : { setUp : function() { this.__initialLogLevel = qx.log.Logger.getLevel(); }, tearDown : function() { qx.log.Logger.setLevel(this.__initialLogLevel); }, __testLogException : function(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 : function() { var exception = this.newException(); this.__testLogException(exception); }, testLogDOMException : function() { var exception = this.newDOMException(); this.__testLogException(exception); }, testKonstantDeprecation : function() { // 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 : function() { 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 : function() { var exc; try { throw new Error(); } catch (e) { exc = e; } return exc; }, newDOMException : function() { var exc; try { document.body.appendChild(null); } catch (e) { exc = e; } return exc; } } });