Skip to content

Commit

Permalink
Support multi-line confirmation messages
Browse files Browse the repository at this point in the history
  • Loading branch information
mhoran committed Jan 3, 2013
1 parent 857a1a0 commit eabe88e
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion lib/capybara/webkit/browser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def alert_messages
end

def confirm_messages
command("JavascriptConfirmMessages").split("\n")
JSON.parse(command("JavascriptConfirmMessages"))
end

def prompt_messages
Expand Down
6 changes: 6 additions & 0 deletions spec/driver_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -615,6 +615,12 @@ def visit(url, driver=driver)
driver.find("//input").first.click
driver.console_messages.first[:message].should == "hello"
end

it "supports multi-line confirmation messages" do
driver.execute_script("confirm('Hello\\nnewline')")
driver.confirm_messages.first.should == "Hello\nnewline"
end

end

context "on a prompt app" do
Expand Down
5 changes: 4 additions & 1 deletion src/JavascriptConfirmMessages.cpp
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
#include "JavascriptConfirmMessages.h"
#include "WebPage.h"
#include "WebPageManager.h"
#include "JsonSerializer.h"

JavascriptConfirmMessages::JavascriptConfirmMessages(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) {}

void JavascriptConfirmMessages::start()
{
emitFinished(true, page()->confirmMessages());
JsonSerializer serializer;
QByteArray json = serializer.serialize(page()->confirmMessages());
emitFinished(true, json);
}
4 changes: 2 additions & 2 deletions src/WebPage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ QString WebPage::alertMessages() {
return m_alertMessages.join("\n");
}

QString WebPage::confirmMessages() {
return m_confirmMessages.join("\n");
QVariantList WebPage::confirmMessages() {
return m_confirmMessages;
}

QString WebPage::promptMessages() {
Expand Down
4 changes: 2 additions & 2 deletions src/WebPage.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class WebPage : public QWebPage {
void setSkipImageLoading(bool skip);
QVariantList consoleMessages();
QString alertMessages();
QString confirmMessages();
QVariantList confirmMessages();
QString promptMessages();
void resetWindowSize();
QWebPage *createWindow(WebWindowType type);
Expand Down Expand Up @@ -73,7 +73,7 @@ class WebPage : public QWebPage {
bool m_prompt;
QVariantList m_consoleMessages;
QStringList m_alertMessages;
QStringList m_confirmMessages;
QVariantList m_confirmMessages;
QString m_prompt_text;
QStringList m_promptMessages;
QString m_uuid;
Expand Down

0 comments on commit eabe88e

Please sign in to comment.