Support multi-line alert messages

This commit is contained in:
Matthew Horan 2012-12-30 14:41:23 -05:00
parent eabe88e543
commit 2f9d76bfbb
5 changed files with 11 additions and 8 deletions

View File

@ -51,7 +51,7 @@ module Capybara::Webkit
end
def alert_messages
command("JavascriptAlertMessages").split("\n")
JSON.parse(command("JavascriptAlertMessages"))
end
def confirm_messages

View File

@ -537,7 +537,7 @@ describe Capybara::Webkit::Driver do
</head>
<body>
<script type="text/javascript">
alert("Alert Text Goes Here");
alert("Alert Text\\nGoes Here");
</script>
</body>
</html>
@ -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

View File

@ -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);
}

View File

@ -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() {

View File

@ -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;