Permalink
Browse files

Support multi-line prompt messages

  • Loading branch information...
1 parent 2f9d76b commit 8a8d12af5cb644537f6220cd332cc916c4b1f5ef @mhoran mhoran committed Dec 30, 2012
Showing with 15 additions and 6 deletions.
  1. +1 −1 lib/capybara/webkit/browser.rb
  2. +6 −0 spec/driver_spec.rb
  3. +4 −1 src/JavascriptPromptMessages.cpp
  4. +2 −2 src/WebPage.cpp
  5. +2 −2 src/WebPage.h
View
2 lib/capybara/webkit/browser.rb
@@ -59,7 +59,7 @@ def confirm_messages
end
def prompt_messages
- command("JavascriptPromptMessages").split("\n")
+ JSON.parse(command("JavascriptPromptMessages"))
end
def response_headers
View
6 spec/driver_spec.rb
@@ -700,6 +700,12 @@ def visit(url, driver=driver)
driver.find("//input").first.click
driver.console_messages.first[:message].should == "goodbye"
end
+
+ it "supports multi-line prompt messages" do
+ driver.execute_script("prompt('Hello\\nnewline')")
+ driver.prompt_messages.first.should == "Hello\nnewline"
+ end
+
end
end
View
5 src/JavascriptPromptMessages.cpp
@@ -1,10 +1,13 @@
#include "JavascriptPromptMessages.h"
#include "WebPage.h"
#include "WebPageManager.h"
+#include "JsonSerializer.h"
JavascriptPromptMessages::JavascriptPromptMessages(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) {}
void JavascriptPromptMessages::start()
{
- emitFinished(true, page()->promptMessages());
+ JsonSerializer serializer;
+ QByteArray json = serializer.serialize(page()->promptMessages());
+ emitFinished(true, json);
}
View
4 src/WebPage.cpp
@@ -95,8 +95,8 @@ QVariantList WebPage::confirmMessages() {
return m_confirmMessages;
}
-QString WebPage::promptMessages() {
- return m_promptMessages.join("\n");
+QVariantList WebPage::promptMessages() {
+ return m_promptMessages;
}
void WebPage::setUserAgent(QString userAgent) {
View
4 src/WebPage.h
@@ -26,7 +26,7 @@ class WebPage : public QWebPage {
QVariantList consoleMessages();
QVariantList alertMessages();
QVariantList confirmMessages();
- QString promptMessages();
+ QVariantList promptMessages();
void resetWindowSize();
QWebPage *createWindow(WebWindowType type);
QString uuid();
@@ -75,7 +75,7 @@ class WebPage : public QWebPage {
QVariantList m_alertMessages;
QVariantList m_confirmMessages;
QString m_prompt_text;
- QStringList m_promptMessages;
+ QVariantList m_promptMessages;
QString m_uuid;
WebPageManager *m_manager;
QString m_errorPageMessage;

0 comments on commit 8a8d12a

Please sign in to comment.