diff options
author | xue <> | 2006-09-30 18:40:40 +0000 |
---|---|---|
committer | xue <> | 2006-09-30 18:40:40 +0000 |
commit | 1c32172efb18e8d08ea483e2460813670ebfe1a5 (patch) | |
tree | 8420f9e53eaba35d7b4822fac823197254f0d131 /tests/test_tools/selenium/core/scripts/selenium-logging.js | |
parent | 6b1d87352911e43672b46b7a65a3c90dd8e5b8b1 (diff) |
merge from 3.0 branch till 1451.
Diffstat (limited to 'tests/test_tools/selenium/core/scripts/selenium-logging.js')
-rw-r--r-- | tests/test_tools/selenium/core/scripts/selenium-logging.js | 91 |
1 files changed, 55 insertions, 36 deletions
diff --git a/tests/test_tools/selenium/core/scripts/selenium-logging.js b/tests/test_tools/selenium/core/scripts/selenium-logging.js index b0fc67e4..25e11463 100644 --- a/tests/test_tools/selenium/core/scripts/selenium-logging.js +++ b/tests/test_tools/selenium/core/scripts/selenium-logging.js @@ -1,33 +1,31 @@ /* -* Copyright 2004 ThoughtWorks, Inc -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright 2004 ThoughtWorks, Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ var Logger = function() { this.logWindow = null; } Logger.prototype = { + pendingMessages: new Array(), + setLogLevelThreshold: function(logLevel) { - this.pendingLogLevelThreshold = logLevel; + this.pendingLogLevelThreshold = logLevel; this.show(); - // - // The following message does not show up in the log -- _unless_ I step along w/ the debugger - // down to the append call. I believe this is because the new log window has not yet loaded, - // and therefore the log msg is discarded; but if I step through the debugger, this changes - // the scheduling so as to load that window and make it ready. - // this.info("Log level programmatically set to " + logLevel + " (presumably by driven-mode test code)"); + // NOTE: log messages will be discarded until the log window is + // fully loaded. }, getLogWindow: function() { @@ -37,10 +35,12 @@ Logger.prototype = { if (this.logWindow && this.pendingLogLevelThreshold && this.logWindow.setThresholdLevel) { this.logWindow.setThresholdLevel(this.pendingLogLevelThreshold); - // can't just directly log because that action would loop back to this code infinitely - this.pendingInfoMessage = "Log level programmatically set to " + this.pendingLogLevelThreshold + " (presumably by driven-mode test code)"; + // can't just directly log because that action would loop back + // to this code infinitely + var pendingMessage = new LogMessage("info", "Log level programmatically set to " + this.pendingLogLevelThreshold + " (presumably by driven-mode test code)"); + this.pendingMessages.push(pendingMessage); - this.pendingLogLevelThreshold = null; // let's only go this way one time + this.pendingLogLevelThreshold = null; // let's only go this way one time } return this.logWindow; @@ -49,8 +49,9 @@ Logger.prototype = { openLogWindow: function() { this.logWindow = window.open( getDocumentBase(document) + "SeleniumLog.html", "SeleniumLog", - "width=600,height=250,bottom=0,right=0,status,scrollbars,resizable" + "width=600,height=1000,bottom=0,right=0,status,scrollbars,resizable" ); + this.logWindow.moveTo(window.screenX + 1210, window.screenY + window.outerHeight - 1400); return this.logWindow; }, @@ -60,28 +61,42 @@ Logger.prototype = { } }, + logHook: function(message, className) { + }, + log: function(message, className) { var logWindow = this.getLogWindow(); + this.logHook(message, className); if (logWindow) { if (logWindow.append) { - if (this.pendingInfoMessage) { - logWindow.append("info: " + this.pendingInfoMessage, "info"); - this.pendingInfoMessage = null; + if (this.pendingMessages.length > 0) { + logWindow.append("info: Appending missed logging messages", "info"); + while (this.pendingMessages.length > 0) { + var msg = this.pendingMessages.shift(); + logWindow.append(msg.type + ": " + msg.msg, msg.type); + } + logWindow.append("info: Done appending missed logging messages", "info"); } logWindow.append(className + ": " + message, className); } + } else { + // uncomment this to turn on background logging + /* these logging messages are never flushed, which creates + an enormous array of strings that never stops growing. Only + turn this on if you need it for debugging! */ + //this.pendingMessages.push(new LogMessage(message, className)); } }, close: function(message) { - if (this.logWindow != null) { - try { - this.logWindow.close(); - } catch (e) { - // swallow exception - // the window is probably closed if we get an exception here - } - this.logWindow = null; + if (this.logWindow != null) { + try { + this.logWindow.close(); + } catch (e) { + // swallow exception + // the window is probably closed if we get an exception here + } + this.logWindow = null; } }, @@ -110,3 +125,7 @@ Logger.prototype = { var LOG = new Logger(); +var LogMessage = function(msg, type) { + this.type = type; + this.msg = msg; +} |