We are using HtmlUnit for functional testing of a wicket application. We have several issues with it but one of the more critical problems arises whenever a multipart form is submitted via AJAX. Internally wicket apparently uses an iframe to submit the request and listens for the "load" event of this iframe to detect the success of the request.
Here in wicket-ajax.js:1215 the event is attached
Wicket.Event.add(iframe, "load", this.handleMultipartComplete.bind(this));
And later in wicket-ajax.js:1246 it is detached
// remove the event
iframe.removeEventListener("load", this.handleMultipartComplete, false);
But because the bind function returns a new object this should never work, right? I have attached a patch that fixes the problem in my environment, please take a look at it if this makes sense.