Implement current_url for driver.

This commit is contained in:
Tristan Dunn 2011-02-25 17:53:36 -05:00
parent 77ff0b4fc5
commit 92a17ae94e
8 changed files with 40 additions and 5 deletions

View File

@ -17,7 +17,7 @@ class Capybara::Driver::Webkit
end
def current_url
raise NotImplementedError
browser.url
end
def visit(path)

View File

@ -19,6 +19,10 @@ class Capybara::Driver::Webkit
command("Reset")
end
def url
command("Url")
end
def command(name, *args)
@socket.puts name
args.each { |arg| @socket.puts arg }

View File

@ -18,7 +18,7 @@ describe Capybara::Driver::Webkit do
end
subject { Capybara::Driver::Webkit.new(hello_app) }
before { subject.visit("/hello") }
before { subject.visit("/hello/world?success=true") }
after { subject.reset! }
it "finds content after loading a URL" do
@ -38,5 +38,10 @@ describe Capybara::Driver::Webkit do
it "returns an attribute's value" do
subject.find("//p").first["id"].should == "greeting"
end
it "returns the current URL" do
port = subject.instance_variable_get("@rack_server").port
subject.current_url.should == "http://127.0.0.1:#{port}/hello/world?success=true"
end
end

View File

@ -4,6 +4,7 @@
#include "Command.h"
#include "Reset.h"
#include "Attribute.h"
#include "Url.h"
#include <QTcpSocket>
#include <iostream>

12
src/Url.cpp Normal file
View File

@ -0,0 +1,12 @@
#include "Url.h"
#include "WebPage.h"
Url::Url(WebPage *page, QObject *parent) : Command(page, parent) {
}
void Url::start() {
QString response = page()->mainFrame()->url().toString();
emit finished(true, response);
}

12
src/Url.h Normal file
View File

@ -0,0 +1,12 @@
#include "Command.h"
class WebPage;
class Url : public Command {
Q_OBJECT
public:
Url(WebPage *page, QObject *parent = 0);
virtual void start();
};

View File

@ -6,4 +6,5 @@
CHECK_COMMAND(Visit)
CHECK_COMMAND(Find)
CHECK_COMMAND(Reset)
CHECK_COMMAND(Attribute)
CHECK_COMMAND(Attribute)
CHECK_COMMAND(Url)

View File

@ -1,8 +1,8 @@
TEMPLATE = app
TARGET = webkit_server
DESTDIR = .
HEADERS = WebPage.h Server.h Connection.h Command.h Visit.h Find.h Reset.h Attribute.h
SOURCES = main.cpp WebPage.cpp Server.cpp Connection.cpp Command.cpp Visit.cpp Find.cpp Reset.cpp Attribute.cpp
HEADERS = WebPage.h Server.h Connection.h Command.h Visit.h Find.h Reset.h Attribute.h Url.h
SOURCES = main.cpp WebPage.cpp Server.cpp Connection.cpp Command.cpp Visit.cpp Find.cpp Reset.cpp Attribute.cpp Url.cpp
QT += network webkit
CONFIG += console staticlib