summaryrefslogtreecommitdiff
path: root/tests/test_tools/selenium/core/scripts/selenium-logging.js
diff options
context:
space:
mode:
authorxue <>2006-09-30 18:40:40 +0000
committerxue <>2006-09-30 18:40:40 +0000
commit1c32172efb18e8d08ea483e2460813670ebfe1a5 (patch)
tree8420f9e53eaba35d7b4822fac823197254f0d131 /tests/test_tools/selenium/core/scripts/selenium-logging.js
parent6b1d87352911e43672b46b7a65a3c90dd8e5b8b1 (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.js91
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;
+}