diff --git a/lib/capybara/webkit/browser.rb b/lib/capybara/webkit/browser.rb index 4b34b8f..f282466 100644 --- a/lib/capybara/webkit/browser.rb +++ b/lib/capybara/webkit/browser.rb @@ -51,7 +51,7 @@ module Capybara::Webkit end def alert_messages - command("JavascriptAlertMessages").split("\n") + JSON.parse(command("JavascriptAlertMessages")) end def confirm_messages diff --git a/spec/driver_spec.rb b/spec/driver_spec.rb index ff6f58a..a15cf32 100644 --- a/spec/driver_spec.rb +++ b/spec/driver_spec.rb @@ -537,7 +537,7 @@ describe Capybara::Webkit::Driver do @@ -547,7 +547,7 @@ describe Capybara::Webkit::Driver do before { visit("/") } it "should let me read my alert messages" do - driver.alert_messages.first.should == "Alert Text Goes Here" + driver.alert_messages.first.should == "Alert Text\nGoes Here" end it "empties the array when reset" do diff --git a/src/JavascriptAlertMessages.cpp b/src/JavascriptAlertMessages.cpp index 0ce0bb2..bd62f6d 100644 --- a/src/JavascriptAlertMessages.cpp +++ b/src/JavascriptAlertMessages.cpp @@ -1,10 +1,13 @@ #include "JavascriptAlertMessages.h" #include "WebPage.h" #include "WebPageManager.h" +#include "JsonSerializer.h" JavascriptAlertMessages::JavascriptAlertMessages(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) {} void JavascriptAlertMessages::start() { - emitFinished(true, page()->alertMessages()); + JsonSerializer serializer; + QByteArray json = serializer.serialize(page()->alertMessages()); + emitFinished(true, json); } diff --git a/src/WebPage.cpp b/src/WebPage.cpp index e2e0d94..8852269 100644 --- a/src/WebPage.cpp +++ b/src/WebPage.cpp @@ -87,8 +87,8 @@ QVariantList WebPage::consoleMessages() { return m_consoleMessages; } -QString WebPage::alertMessages() { - return m_alertMessages.join("\n"); +QVariantList WebPage::alertMessages() { + return m_alertMessages; } QVariantList WebPage::confirmMessages() { diff --git a/src/WebPage.h b/src/WebPage.h index ab19385..b8d23ad 100644 --- a/src/WebPage.h +++ b/src/WebPage.h @@ -24,7 +24,7 @@ class WebPage : public QWebPage { virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0); void setSkipImageLoading(bool skip); QVariantList consoleMessages(); - QString alertMessages(); + QVariantList alertMessages(); QVariantList confirmMessages(); QString promptMessages(); void resetWindowSize(); @@ -72,7 +72,7 @@ class WebPage : public QWebPage { bool m_confirm; bool m_prompt; QVariantList m_consoleMessages; - QStringList m_alertMessages; + QVariantList m_alertMessages; QVariantList m_confirmMessages; QString m_prompt_text; QStringList m_promptMessages;