Skip to content

Commit

Permalink
allow uploading files with forms
Browse files Browse the repository at this point in the history
  • Loading branch information
hubertlepicki committed Jul 18, 2011
1 parent 26594c1 commit a449008
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/WebPage.cpp
Expand Up @@ -132,3 +132,12 @@ bool WebPage::render(const QString &fileName) {

return buffer.save(fileName);
}

QString WebPage::chooseFile(QWebFrame *parentFrame, const QString &suggestedFile) {
Q_UNUSED(parentFrame);
Q_UNUSED(suggestedFile);

QString javascript = QString("Capybara.lastAttachedFile");
return currentFrame()->evaluateJavaScript(javascript).toString();
}

1 change: 1 addition & 0 deletions src/WebPage.h
Expand Up @@ -25,6 +25,7 @@ class WebPage : public QWebPage {
virtual void javaScriptAlert(QWebFrame *frame, const QString &message);
virtual bool javaScriptConfirm(QWebFrame *frame, const QString &message);
virtual bool javaScriptPrompt(QWebFrame *frame, const QString &message, const QString &defaultValue, QString *result);
virtual QString chooseFile(QWebFrame * parentFrame, const QString &suggestedFile);

private:
QString m_capybaraJavascript;
Expand Down
4 changes: 4 additions & 0 deletions src/capybara.js
@@ -1,6 +1,7 @@
Capybara = {
nextIndex: 0,
nodes: {},
lastAttachedFile: "",

invoke: function () {
return this[CapybaraInvocation.functionName].apply(this, CapybaraInvocation.arguments);
Expand Down Expand Up @@ -106,6 +107,9 @@ Capybara = {
node.checked = (value == "true");
this.trigger(index, "click");
this.trigger(index, "change");
} else if(type == "file") {
this.lastAttachedFile = value;
this.trigger(index, "click");
} else {
node.value = value;
}
Expand Down

0 comments on commit a449008

Please sign in to comment.