Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uprade to latest driver and firebug version. #17

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 82 additions & 82 deletions firefox/content/overlay.js
Original file line number Diff line number Diff line change
@@ -1,66 +1,66 @@
var JSErrorCollector = {
collectedErrors: {
list: [],
push: function (jsError) {
this.list[this.list.length] = jsError;
},
pump: function() {
var resp = [];
for (var i=0; i<this.list.length; ++i) {
var scriptError = this.list[i];
resp[i] = {
errorMessage: scriptError.errorMessage,
sourceName: scriptError.sourceName,
lineNumber: scriptError.lineNumber,
console: scriptError.console
};
}
this.list = [];
return resp;
},
toString: function() {
var s = "";
for (var i=0; i<this.list.length; ++i) {
s += i + ": " + this.list[i] + "\n";
}
return s;
},
__exposedProps__: { pump: "r" }
},
onLoad: function(event) {
// initialization code
this.initialize(event);
this.initialized = true;
},
collectedErrors: {
list: [],
push: function (jsError) {
this.list[this.list.length] = jsError;
},
pump: function() {
var resp = [];
for (var i=0; i<this.list.length; ++i) {
var scriptError = this.list[i];
resp[i] = {
errorMessage: scriptError.errorMessage,
sourceName: scriptError.sourceName,
lineNumber: scriptError.lineNumber,
console: scriptError.console
};
}
this.list = [];
return resp;
},
toString: function() {
var s = "";
for (var i=0; i<this.list.length; ++i) {
s += i + ": " + this.list[i] + "\n";
}
return s;
},
__exposedProps__: { pump: "r" }
},
onLoad: function(event) {
// initialization code
this.initialize(event);
this.initialized = true;
},

initialize: function(event) {
var windowContent = window.getBrowser();
initialize: function(event) {
var windowContent = window.getBrowser();

var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService().QueryInterface(Components.interfaces.nsIConsoleService);
if (consoleService)
{
consoleService.registerListener(JSErrorCollector_ErrorConsoleListener);
}
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService().QueryInterface(Components.interfaces.nsIConsoleService);
if (consoleService)
{
consoleService.registerListener(JSErrorCollector_ErrorConsoleListener);
}

var onPageLoad = function(aEvent) {
var doc = aEvent.originalTarget;
var win = doc.defaultView;
if (win) {
win.wrappedJSObject.JSErrorCollector_errors = JSErrorCollector.collectedErrors;
}
};
var onPageLoad = function(aEvent) {
var doc = aEvent.originalTarget;
var win = doc.defaultView;
if (win) {
win.wrappedJSObject.JSErrorCollector_errors = JSErrorCollector.collectedErrors;
}
};

windowContent.addEventListener("load", onPageLoad, true);
},
windowContent.addEventListener("load", onPageLoad, true);
},

addError: function(error) {
this.collectedErrors.push(error);
var labelField = document.getElementById("JSErrorCollector-nb");
labelField.nb = labelField.nb || 0;
labelField.nb++;
labelField.value = labelField.nb;
}
addError: function(error) {
this.collectedErrors.push(error);
var labelField = document.getElementById("JSErrorCollector-nb");
labelField.nb = labelField.nb || 0;
labelField.nb++;
labelField.value = labelField.nb;
}
};

//Error console listener
Expand All @@ -78,40 +78,40 @@ var JSErrorCollector_ErrorConsoleListener =
var errorCategory = scriptError.category;
var sourceName = scriptError.sourceName;
if (sourceName.indexOf("about:") == 0 || sourceName.indexOf("chrome:") == 0) {
return; // not interested in internal errors
return; // not interested in internal errors
}

// We're just looking for content JS errors (see https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIScriptError#Categories)
if (errorCategory == "content javascript")
{
var console = null;
// try to get content from Firebug's console if it exists
try {
if (window.Firebug && window.Firebug.currentContext) {
var doc = Firebug.currentContext.getPanel("console").document;
var logNodes = doc.querySelectorAll(".logRow > span");
var consoleLines = [];
for (var i=0; i<logNodes.length; ++i) {
var logNode = logNodes[i];
if (!logNode.JSErrorCollector_extracted) {
consoleLines.push(logNodes[i].textContent);
logNode.JSErrorCollector_extracted = true;
}
}
console = consoleLines.join("\n");
var console = null;
// try to get content from Firebug's console if it exists
try {
if (window.Firebug && window.Firebug.currentContext) {
var doc = Firebug.currentContext.getPanel("console").document;
var logNodes = doc.querySelectorAll(".logRow > span");
var consoleLines = [];
for (var i=0; i<logNodes.length; ++i) {
var logNode = logNodes[i];
if (!logNode.JSErrorCollector_extracted) {
consoleLines.push(logNodes[i].textContent);
logNode.JSErrorCollector_extracted = true;
}
}
console = consoleLines.join("\n");
}
} catch (e) {
console = "Error extracting content of Firebug console: " + e.message;
console = "Error extracting content of Firebug console: " + e.message;
}

var err = {
errorMessage: scriptError.errorMessage,
sourceName: scriptError.sourceName,
lineNumber: scriptError.lineNumber,
console: console
};
JSErrorCollector.addError(err);
var err = {
errorMessage: scriptError.errorMessage,
sourceName: scriptError.sourceName,
lineNumber: scriptError.lineNumber,
console: console
};
JSErrorCollector.addError(err);
}
}
catch (exception)
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>net.jsourcerer.webdriver</groupId>
<artifactId>JSErrorCollector</artifactId>
<version>0.5</version>
<version>0.6-SNAPSHOT</version>
<name>JSErrorCollector</name>
<organization>
<name>Marc Guillemot</name>
Expand Down Expand Up @@ -93,7 +93,7 @@
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>2.31.0</version>
<version>2.43.1</version>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class FirebugConsoleTest {
public static void setup() throws Exception {
FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.addExtension(new File("firefox")); // assuming that the test is started in project's root
ffProfile.addExtension(FirebugConsoleTest.class, "/firebug-1.11.4-fx.xpi");
ffProfile.addExtension(FirebugConsoleTest.class, "/firebug-2.0.7-fx.xpi");

ffProfile.setPreference("extensions.firebug.showStackTrace", "true");
ffProfile.setPreference("extensions.firebug.delayLoad", "false");
Expand All @@ -52,7 +52,7 @@ public void simple() throws Exception {
final String url = getResource("withConsoleOutput.html");
webDriver.get(url);

final JavaScriptError errorSimpleHtml = new JavaScriptError("TypeError: null has no properties", url, 8, "before JS error");
final JavaScriptError errorSimpleHtml = new JavaScriptError("TypeError: null has no properties", url, 8, null);

final List<JavaScriptError> expectedErrors = Arrays.asList(errorSimpleHtml);
List<JavaScriptError> jsErrors = JavaScriptError.readErrors(webDriver);
Expand Down
Binary file removed src/test/resources/firebug-1.11.4-fx.xpi
Binary file not shown.
Binary file added src/test/resources/firebug-2.0.7-fx.xpi
Binary file not shown.