Implement current_url for driver.
This commit is contained in:
parent
77ff0b4fc5
commit
92a17ae94e
|
@ -17,7 +17,7 @@ class Capybara::Driver::Webkit
|
||||||
end
|
end
|
||||||
|
|
||||||
def current_url
|
def current_url
|
||||||
raise NotImplementedError
|
browser.url
|
||||||
end
|
end
|
||||||
|
|
||||||
def visit(path)
|
def visit(path)
|
||||||
|
|
|
@ -19,6 +19,10 @@ class Capybara::Driver::Webkit
|
||||||
command("Reset")
|
command("Reset")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def url
|
||||||
|
command("Url")
|
||||||
|
end
|
||||||
|
|
||||||
def command(name, *args)
|
def command(name, *args)
|
||||||
@socket.puts name
|
@socket.puts name
|
||||||
args.each { |arg| @socket.puts arg }
|
args.each { |arg| @socket.puts arg }
|
||||||
|
|
|
@ -18,7 +18,7 @@ describe Capybara::Driver::Webkit do
|
||||||
end
|
end
|
||||||
|
|
||||||
subject { Capybara::Driver::Webkit.new(hello_app) }
|
subject { Capybara::Driver::Webkit.new(hello_app) }
|
||||||
before { subject.visit("/hello") }
|
before { subject.visit("/hello/world?success=true") }
|
||||||
after { subject.reset! }
|
after { subject.reset! }
|
||||||
|
|
||||||
it "finds content after loading a URL" do
|
it "finds content after loading a URL" do
|
||||||
|
@ -38,5 +38,10 @@ describe Capybara::Driver::Webkit do
|
||||||
it "returns an attribute's value" do
|
it "returns an attribute's value" do
|
||||||
subject.find("//p").first["id"].should == "greeting"
|
subject.find("//p").first["id"].should == "greeting"
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "Command.h"
|
#include "Command.h"
|
||||||
#include "Reset.h"
|
#include "Reset.h"
|
||||||
#include "Attribute.h"
|
#include "Attribute.h"
|
||||||
|
#include "Url.h"
|
||||||
|
|
||||||
#include <QTcpSocket>
|
#include <QTcpSocket>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
};
|
||||||
|
|
|
@ -7,3 +7,4 @@ CHECK_COMMAND(Visit)
|
||||||
CHECK_COMMAND(Find)
|
CHECK_COMMAND(Find)
|
||||||
CHECK_COMMAND(Reset)
|
CHECK_COMMAND(Reset)
|
||||||
CHECK_COMMAND(Attribute)
|
CHECK_COMMAND(Attribute)
|
||||||
|
CHECK_COMMAND(Url)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
TARGET = webkit_server
|
TARGET = webkit_server
|
||||||
DESTDIR = .
|
DESTDIR = .
|
||||||
HEADERS = WebPage.h Server.h Connection.h Command.h Visit.h Find.h Reset.h Attribute.h
|
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
|
SOURCES = main.cpp WebPage.cpp Server.cpp Connection.cpp Command.cpp Visit.cpp Find.cpp Reset.cpp Attribute.cpp Url.cpp
|
||||||
QT += network webkit
|
QT += network webkit
|
||||||
CONFIG += console staticlib
|
CONFIG += console staticlib
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue