Implement HTML5 multiple file upload
This commit is contained in:
parent
0efbbe0fbc
commit
ea2f785ba8
|
@ -33,7 +33,7 @@ module Capybara::Webkit
|
|||
end
|
||||
|
||||
def set(value)
|
||||
invoke "set", value
|
||||
invoke "set", *[value].flatten
|
||||
end
|
||||
|
||||
def select_option
|
||||
|
|
|
@ -221,13 +221,12 @@ QString WebPage::chooseFile(QWebFrame *parentFrame, const QString &suggestedFile
|
|||
Q_UNUSED(parentFrame);
|
||||
Q_UNUSED(suggestedFile);
|
||||
|
||||
return getLastAttachedFileName();
|
||||
return getAttachedFileNames().first();
|
||||
}
|
||||
|
||||
bool WebPage::extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output) {
|
||||
if (extension == ChooseMultipleFilesExtension) {
|
||||
QStringList names = QStringList() << getLastAttachedFileName();
|
||||
static_cast<ChooseMultipleFilesExtensionReturn*>(output)->fileNames = names;
|
||||
static_cast<ChooseMultipleFilesExtensionReturn*>(output)->fileNames = getAttachedFileNames();
|
||||
return true;
|
||||
}
|
||||
else if (extension == QWebPage::ErrorPageExtension) {
|
||||
|
@ -239,8 +238,8 @@ bool WebPage::extension(Extension extension, const ExtensionOption *option, Exte
|
|||
return false;
|
||||
}
|
||||
|
||||
QString WebPage::getLastAttachedFileName() {
|
||||
return currentFrame()->evaluateJavaScript(QString("Capybara.lastAttachedFile")).toString();
|
||||
QStringList WebPage::getAttachedFileNames() {
|
||||
return currentFrame()->evaluateJavaScript(QString("Capybara.attachedFiles")).toStringList();
|
||||
}
|
||||
|
||||
void WebPage::handleSslErrorsForReply(QNetworkReply *reply, const QList<QSslError> &errors) {
|
||||
|
|
|
@ -66,7 +66,7 @@ class WebPage : public QWebPage {
|
|||
QString m_userAgent;
|
||||
bool m_loading;
|
||||
bool m_failed;
|
||||
QString getLastAttachedFileName();
|
||||
QStringList getAttachedFileNames();
|
||||
void loadJavascript();
|
||||
void setUserStylesheet();
|
||||
bool m_confirm;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Capybara = {
|
||||
nextIndex: 0,
|
||||
nodes: {},
|
||||
lastAttachedFile: "",
|
||||
attachedFiles: [],
|
||||
|
||||
invoke: function () {
|
||||
return this[CapybaraInvocation.functionName].apply(this, CapybaraInvocation.arguments);
|
||||
|
@ -260,7 +260,7 @@ Capybara = {
|
|||
}
|
||||
|
||||
} else if (type === "file") {
|
||||
this.lastAttachedFile = value;
|
||||
this.attachedFiles = Array.prototype.slice.call(arguments, 1);
|
||||
this.click(index);
|
||||
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue