capybara-webkit 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +1 -6
- data/Gemfile.lock +15 -13
- data/README.md +9 -8
- data/Rakefile +3 -21
- data/capybara-webkit.gemspec +21 -18
- data/gemfiles/1.0.gemfile.lock +18 -13
- data/gemfiles/1.1.gemfile.lock +18 -13
- data/lib/capybara/driver/webkit.rb +20 -1
- data/lib/capybara/driver/webkit/browser.rb +49 -5
- data/lib/capybara/driver/webkit/cookie_jar.rb +55 -0
- data/lib/capybara/driver/webkit/node.rb +5 -1
- data/lib/capybara/driver/webkit/version.rb +7 -0
- data/lib/capybara/webkit/matchers.rb +39 -0
- data/lib/capybara_webkit_builder.rb +2 -1
- data/spec/browser_spec.rb +150 -2
- data/spec/cookie_jar_spec.rb +48 -0
- data/spec/driver_spec.rb +248 -16
- data/spec/self_signed_ssl_cert.rb +42 -0
- data/src/CommandFactory.cpp +31 -0
- data/src/CommandFactory.h +16 -0
- data/src/CommandParser.cpp +68 -0
- data/src/CommandParser.h +29 -0
- data/src/Connection.cpp +14 -83
- data/src/Connection.h +5 -8
- data/src/ConsoleMessages.cpp +11 -0
- data/src/ConsoleMessages.h +12 -0
- data/src/RequestedUrl.cpp +15 -0
- data/src/RequestedUrl.h +12 -0
- data/src/Reset.cpp +1 -0
- data/src/Server.cpp +2 -1
- data/src/Server.h +1 -1
- data/src/SetProxy.cpp +24 -0
- data/src/SetProxy.h +11 -0
- data/src/UnsupportedContentHandler.cpp +1 -0
- data/src/Visit.cpp +1 -1
- data/src/WebPage.cpp +28 -2
- data/src/WebPage.h +7 -0
- data/src/capybara.js +54 -11
- data/src/find_command.h +4 -0
- data/src/main.cpp +4 -1
- data/src/webkit_server.pro +10 -0
- metadata +67 -47
data/src/SetProxy.cpp
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
#include "SetProxy.h"
|
2
|
+
#include "WebPage.h"
|
3
|
+
#include <QNetworkAccessManager>
|
4
|
+
#include <QNetworkProxy>
|
5
|
+
|
6
|
+
SetProxy::SetProxy(WebPage *page, QObject *parent)
|
7
|
+
: Command(page, parent)
|
8
|
+
{ }
|
9
|
+
|
10
|
+
void SetProxy::start(QStringList &arguments)
|
11
|
+
{
|
12
|
+
// default to empty proxy
|
13
|
+
QNetworkProxy proxy;
|
14
|
+
|
15
|
+
if (arguments.size() > 0)
|
16
|
+
proxy = QNetworkProxy(QNetworkProxy::HttpProxy,
|
17
|
+
arguments[0],
|
18
|
+
(quint16)(arguments[1].toInt()),
|
19
|
+
arguments[2],
|
20
|
+
arguments[3]);
|
21
|
+
|
22
|
+
page()->networkAccessManager()->setProxy(proxy);
|
23
|
+
emit finished(new Response(true));
|
24
|
+
}
|
data/src/SetProxy.h
ADDED
@@ -27,5 +27,6 @@ void UnsupportedContentHandler::loadUnsupportedContent() {
|
|
27
27
|
|
28
28
|
void UnsupportedContentHandler::finish(bool success) {
|
29
29
|
connect(m_page, SIGNAL(loadFinished(bool)), m_page, SLOT(loadFinished(bool)));
|
30
|
+
m_page->replyFinished(m_reply);
|
30
31
|
m_page->loadFinished(success);
|
31
32
|
}
|
data/src/Visit.cpp
CHANGED
@@ -7,7 +7,7 @@ Visit::Visit(WebPage *page, QObject *parent) : Command(page, parent) {
|
|
7
7
|
}
|
8
8
|
|
9
9
|
void Visit::start(QStringList &arguments) {
|
10
|
-
QUrl requestedUrl = QUrl(arguments[0]);
|
10
|
+
QUrl requestedUrl = QUrl::fromEncoded(arguments[0].toUtf8(), QUrl::StrictMode);
|
11
11
|
page()->currentFrame()->load(QUrl(requestedUrl));
|
12
12
|
}
|
13
13
|
|
data/src/WebPage.cpp
CHANGED
@@ -20,6 +20,7 @@ WebPage::WebPage(QObject *parent) : QWebPage(parent) {
|
|
20
20
|
this, SLOT(frameCreated(QWebFrame *)));
|
21
21
|
connect(this, SIGNAL(unsupportedContent(QNetworkReply*)),
|
22
22
|
this, SLOT(handleUnsupportedContent(QNetworkReply*)));
|
23
|
+
this->setViewportSize(QSize(1680, 1050));
|
23
24
|
}
|
24
25
|
|
25
26
|
void WebPage::setCustomNetworkAccessManager() {
|
@@ -27,6 +28,7 @@ void WebPage::setCustomNetworkAccessManager() {
|
|
27
28
|
manager->setCookieJar(new NetworkCookieJar());
|
28
29
|
this->setNetworkAccessManager(manager);
|
29
30
|
connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
|
31
|
+
connect(manager, SIGNAL(sslErrors(QNetworkReply *, QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply *, QList<QSslError>)));
|
30
32
|
}
|
31
33
|
|
32
34
|
void WebPage::loadJavascript() {
|
@@ -56,6 +58,10 @@ QString WebPage::userAgentForUrl(const QUrl &url ) const {
|
|
56
58
|
}
|
57
59
|
}
|
58
60
|
|
61
|
+
QString WebPage::consoleMessages() {
|
62
|
+
return m_consoleMessages.join("\n");
|
63
|
+
}
|
64
|
+
|
59
65
|
void WebPage::setUserAgent(QString userAgent) {
|
60
66
|
m_userAgent = userAgent;
|
61
67
|
}
|
@@ -88,9 +94,11 @@ QVariant WebPage::invokeCapybaraFunction(QString &name, QStringList &arguments)
|
|
88
94
|
}
|
89
95
|
|
90
96
|
void WebPage::javaScriptConsoleMessage(const QString &message, int lineNumber, const QString &sourceID) {
|
97
|
+
QString fullMessage = QString::number(lineNumber) + "|" + message;
|
91
98
|
if (!sourceID.isEmpty())
|
92
|
-
|
93
|
-
|
99
|
+
fullMessage = sourceID + "|" + fullMessage;
|
100
|
+
m_consoleMessages.append(fullMessage);
|
101
|
+
std::cout << qPrintable(fullMessage) << std::endl;
|
94
102
|
}
|
95
103
|
|
96
104
|
void WebPage::javaScriptAlert(QWebFrame *frame, const QString &message) {
|
@@ -192,6 +200,20 @@ void WebPage::replyFinished(QNetworkReply *reply) {
|
|
192
200
|
}
|
193
201
|
}
|
194
202
|
|
203
|
+
void WebPage::ignoreSslErrors(QNetworkReply *reply, const QList<QSslError> &errors) {
|
204
|
+
if (m_ignoreSslErrors)
|
205
|
+
reply->ignoreSslErrors(errors);
|
206
|
+
}
|
207
|
+
|
208
|
+
void WebPage::setIgnoreSslErrors(bool ignore) {
|
209
|
+
m_ignoreSslErrors = ignore;
|
210
|
+
}
|
211
|
+
|
212
|
+
bool WebPage::ignoreSslErrors() {
|
213
|
+
return m_ignoreSslErrors;
|
214
|
+
}
|
215
|
+
|
216
|
+
|
195
217
|
int WebPage::getLastStatus() {
|
196
218
|
return m_lastStatus;
|
197
219
|
}
|
@@ -201,6 +223,10 @@ void WebPage::resetResponseHeaders() {
|
|
201
223
|
m_pageHeaders = QString();
|
202
224
|
}
|
203
225
|
|
226
|
+
void WebPage::resetConsoleMessages() {
|
227
|
+
m_consoleMessages.clear();
|
228
|
+
}
|
229
|
+
|
204
230
|
QString WebPage::pageHeaders() {
|
205
231
|
return m_pageHeaders;
|
206
232
|
}
|
data/src/WebPage.h
CHANGED
@@ -15,6 +15,10 @@ class WebPage : public QWebPage {
|
|
15
15
|
void setCustomNetworkAccessManager();
|
16
16
|
bool render(const QString &fileName);
|
17
17
|
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0);
|
18
|
+
void setIgnoreSslErrors(bool ignore);
|
19
|
+
bool ignoreSslErrors();
|
20
|
+
QString consoleMessages();
|
21
|
+
void resetConsoleMessages();
|
18
22
|
|
19
23
|
public slots:
|
20
24
|
bool shouldInterruptJavaScript();
|
@@ -25,6 +29,7 @@ class WebPage : public QWebPage {
|
|
25
29
|
QString pageHeaders();
|
26
30
|
void frameCreated(QWebFrame *);
|
27
31
|
void replyFinished(QNetworkReply *reply);
|
32
|
+
void ignoreSslErrors(QNetworkReply *reply, const QList<QSslError> &);
|
28
33
|
void handleUnsupportedContent(QNetworkReply *reply);
|
29
34
|
|
30
35
|
signals:
|
@@ -46,5 +51,7 @@ class WebPage : public QWebPage {
|
|
46
51
|
void setUserStylesheet();
|
47
52
|
int m_lastStatus;
|
48
53
|
QString m_pageHeaders;
|
54
|
+
bool m_ignoreSslErrors;
|
55
|
+
QStringList m_consoleMessages;
|
49
56
|
};
|
50
57
|
|
data/src/capybara.js
CHANGED
@@ -56,10 +56,46 @@ Capybara = {
|
|
56
56
|
}
|
57
57
|
},
|
58
58
|
|
59
|
+
path: function(index) {
|
60
|
+
return "/" + this.getXPathNode(this.nodes[index]).join("/");
|
61
|
+
},
|
62
|
+
|
63
|
+
getXPathNode: function(node, path) {
|
64
|
+
path = path || [];
|
65
|
+
if (node.parentNode) {
|
66
|
+
path = this.getXPathNode(node.parentNode, path);
|
67
|
+
}
|
68
|
+
|
69
|
+
var first = node;
|
70
|
+
while (first.previousSibling)
|
71
|
+
first = first.previousSibling;
|
72
|
+
|
73
|
+
var count = 0;
|
74
|
+
var index = 0;
|
75
|
+
var iter = first;
|
76
|
+
while (iter) {
|
77
|
+
if (iter.nodeType == 1 && iter.nodeName == node.nodeName)
|
78
|
+
count++;
|
79
|
+
if (iter.isSameNode(node))
|
80
|
+
index = count;
|
81
|
+
iter = iter.nextSibling;
|
82
|
+
continue;
|
83
|
+
}
|
84
|
+
|
85
|
+
if (node.nodeType == 1)
|
86
|
+
path.push(node.nodeName.toLowerCase() + (node.id ? "[@id='"+node.id+"']" : count > 1 ? "["+index+"]" : ''));
|
87
|
+
|
88
|
+
return path;
|
89
|
+
},
|
90
|
+
|
59
91
|
tagName: function(index) {
|
60
92
|
return this.nodes[index].tagName.toLowerCase();
|
61
93
|
},
|
62
94
|
|
95
|
+
submit: function(index) {
|
96
|
+
return this.nodes[index].submit();
|
97
|
+
},
|
98
|
+
|
63
99
|
click: function (index) {
|
64
100
|
var clickEvent = document.createEvent('MouseEvents');
|
65
101
|
clickEvent.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
@@ -103,21 +139,25 @@ Capybara = {
|
|
103
139
|
return this.nodes[index].value;
|
104
140
|
},
|
105
141
|
|
106
|
-
set: function(index, value) {
|
107
|
-
var node
|
108
|
-
|
109
|
-
|
142
|
+
set: function (index, value) {
|
143
|
+
var length, maxLength, node, strindex, textTypes, type;
|
144
|
+
|
145
|
+
node = this.nodes[index];
|
146
|
+
type = (node.type || node.tagName).toLowerCase();
|
147
|
+
textTypes = ["email", "number", "password", "search", "tel", "text", "textarea", "url"];
|
148
|
+
|
149
|
+
if (textTypes.indexOf(type) != -1) {
|
110
150
|
this.trigger(index, "focus");
|
111
|
-
|
112
|
-
|
113
|
-
length;
|
151
|
+
|
152
|
+
maxLength = this.attribute(index, "maxlength");
|
114
153
|
if (maxLength && value.length > maxLength) {
|
115
154
|
length = maxLength;
|
116
155
|
} else {
|
117
156
|
length = value.length;
|
118
157
|
}
|
119
158
|
|
120
|
-
|
159
|
+
node.value = "";
|
160
|
+
for (strindex = 0; strindex < length; strindex++) {
|
121
161
|
node.value += value[strindex];
|
122
162
|
this.trigger(index, "keydown");
|
123
163
|
this.keypress(index, false, false, false, false, 0, value[strindex]);
|
@@ -125,13 +165,16 @@ Capybara = {
|
|
125
165
|
}
|
126
166
|
this.trigger(index, "change");
|
127
167
|
this.trigger(index, "blur");
|
128
|
-
|
129
|
-
|
168
|
+
|
169
|
+
} else if (type === "checkbox" || type === "radio") {
|
170
|
+
node.checked = (value === "true");
|
130
171
|
this.trigger(index, "click");
|
131
172
|
this.trigger(index, "change");
|
132
|
-
|
173
|
+
|
174
|
+
} else if (type === "file") {
|
133
175
|
this.lastAttachedFile = value;
|
134
176
|
this.trigger(index, "click");
|
177
|
+
|
135
178
|
} else {
|
136
179
|
node.value = value;
|
137
180
|
}
|
data/src/find_command.h
CHANGED
data/src/main.cpp
CHANGED
@@ -18,7 +18,10 @@ int main(int argc, char **argv) {
|
|
18
18
|
app.setOrganizationName("thoughtbot, inc");
|
19
19
|
app.setOrganizationDomain("thoughtbot.com");
|
20
20
|
|
21
|
-
|
21
|
+
QStringList args = app.arguments();
|
22
|
+
bool ignoreSslErrors = args.contains("--ignore-ssl-errors");
|
23
|
+
|
24
|
+
Server server(0, ignoreSslErrors);
|
22
25
|
|
23
26
|
if (server.start()) {
|
24
27
|
std::cout << "Capybara-webkit server started, listening on port: " << server.server_port() << std::endl;
|
data/src/webkit_server.pro
CHANGED
@@ -2,6 +2,8 @@ TEMPLATE = app
|
|
2
2
|
TARGET = webkit_server
|
3
3
|
DESTDIR = .
|
4
4
|
HEADERS = \
|
5
|
+
RequestedUrl.h \
|
6
|
+
ConsoleMessages.h \
|
5
7
|
WebPage.h \
|
6
8
|
Server.h \
|
7
9
|
Connection.h \
|
@@ -28,8 +30,13 @@ HEADERS = \
|
|
28
30
|
SetCookie.h \
|
29
31
|
ClearCookies.h \
|
30
32
|
GetCookies.h \
|
33
|
+
CommandParser.h \
|
34
|
+
CommandFactory.h \
|
35
|
+
SetProxy.h \
|
31
36
|
|
32
37
|
SOURCES = \
|
38
|
+
RequestedUrl.cpp \
|
39
|
+
ConsoleMessages.cpp \
|
33
40
|
main.cpp \
|
34
41
|
WebPage.cpp \
|
35
42
|
Server.cpp \
|
@@ -57,6 +64,9 @@ SOURCES = \
|
|
57
64
|
SetCookie.cpp \
|
58
65
|
ClearCookies.cpp \
|
59
66
|
GetCookies.cpp \
|
67
|
+
CommandParser.cpp \
|
68
|
+
CommandFactory.cpp \
|
69
|
+
SetProxy.cpp \
|
60
70
|
|
61
71
|
RESOURCES = webkit_server.qrc
|
62
72
|
QT += network webkit
|
metadata
CHANGED
@@ -1,41 +1,28 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-webkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 63
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 8
|
9
|
+
- 0
|
10
|
+
version: 0.8.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- thoughtbot
|
14
14
|
- Joe Ferris
|
15
|
+
- Matt Mongeau
|
16
|
+
- Mike Burns
|
15
17
|
- Jason Morrison
|
16
|
-
- Tristan Dunn
|
17
|
-
- Joshua Clayton
|
18
|
-
- Yuichi Tateno
|
19
|
-
- Aaron Gibralter
|
20
|
-
- Vasily Reys
|
21
|
-
- petrushka
|
22
|
-
- John Bintz
|
23
|
-
- Chad Pytel
|
24
|
-
- Christopher Meiklejohn
|
25
|
-
- John Barker
|
26
|
-
- Jeremy Wells
|
27
|
-
- Chris Griego
|
28
|
-
- Shigeya Suzuki
|
29
18
|
autorequire:
|
30
19
|
bindir: bin
|
31
20
|
cert_chain: []
|
32
21
|
|
33
|
-
date:
|
34
|
-
default_executable:
|
22
|
+
date: 2012-01-20 00:00:00 Z
|
35
23
|
dependencies:
|
36
24
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
38
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
39
26
|
none: false
|
40
27
|
requirements:
|
41
28
|
- - ">="
|
@@ -53,12 +40,26 @@ dependencies:
|
|
53
40
|
- 1
|
54
41
|
- 2
|
55
42
|
version: "1.2"
|
56
|
-
|
43
|
+
requirement: *id001
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
57
46
|
name: capybara
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
hash: 3
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
requirement: *id002
|
58
|
+
type: :runtime
|
58
59
|
prerelease: false
|
60
|
+
name: json
|
59
61
|
- !ruby/object:Gem::Dependency
|
60
|
-
|
61
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
62
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
62
63
|
none: false
|
63
64
|
requirements:
|
64
65
|
- - ~>
|
@@ -69,12 +70,12 @@ dependencies:
|
|
69
70
|
- 6
|
70
71
|
- 0
|
71
72
|
version: 2.6.0
|
72
|
-
|
73
|
-
|
73
|
+
requirement: *id003
|
74
|
+
type: :development
|
74
75
|
prerelease: false
|
76
|
+
name: rspec
|
75
77
|
- !ruby/object:Gem::Dependency
|
76
|
-
|
77
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
78
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
78
79
|
none: false
|
79
80
|
requirements:
|
80
81
|
- - ">="
|
@@ -83,12 +84,12 @@ dependencies:
|
|
83
84
|
segments:
|
84
85
|
- 0
|
85
86
|
version: "0"
|
86
|
-
|
87
|
-
|
87
|
+
requirement: *id004
|
88
|
+
type: :development
|
88
89
|
prerelease: false
|
90
|
+
name: sinatra
|
89
91
|
- !ruby/object:Gem::Dependency
|
90
|
-
|
91
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
92
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
92
93
|
none: false
|
93
94
|
requirements:
|
94
95
|
- - ">="
|
@@ -97,12 +98,12 @@ dependencies:
|
|
97
98
|
segments:
|
98
99
|
- 0
|
99
100
|
version: "0"
|
100
|
-
|
101
|
-
|
101
|
+
requirement: *id005
|
102
|
+
type: :development
|
102
103
|
prerelease: false
|
104
|
+
name: mini_magick
|
103
105
|
- !ruby/object:Gem::Dependency
|
104
|
-
|
105
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
106
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
106
107
|
none: false
|
107
108
|
requirements:
|
108
109
|
- - ">="
|
@@ -111,23 +112,26 @@ dependencies:
|
|
111
112
|
segments:
|
112
113
|
- 0
|
113
114
|
version: "0"
|
114
|
-
|
115
|
-
|
115
|
+
requirement: *id006
|
116
|
+
type: :development
|
116
117
|
prerelease: false
|
118
|
+
name: rake
|
117
119
|
- !ruby/object:Gem::Dependency
|
118
|
-
|
119
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
120
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
120
121
|
none: false
|
121
122
|
requirements:
|
122
|
-
- -
|
123
|
+
- - ~>
|
123
124
|
- !ruby/object:Gem::Version
|
124
|
-
hash:
|
125
|
+
hash: 15
|
125
126
|
segments:
|
126
127
|
- 0
|
127
|
-
|
128
|
-
|
129
|
-
|
128
|
+
- 4
|
129
|
+
- 0
|
130
|
+
version: 0.4.0
|
131
|
+
requirement: *id007
|
132
|
+
type: :development
|
130
133
|
prerelease: false
|
134
|
+
name: appraisal
|
131
135
|
description:
|
132
136
|
email: support@thoughtbot.com
|
133
137
|
executables: []
|
@@ -156,23 +160,34 @@ files:
|
|
156
160
|
- lib/capybara-webkit.rb
|
157
161
|
- lib/capybara/driver/webkit.rb
|
158
162
|
- lib/capybara/driver/webkit/browser.rb
|
163
|
+
- lib/capybara/driver/webkit/cookie_jar.rb
|
159
164
|
- lib/capybara/driver/webkit/node.rb
|
160
165
|
- lib/capybara/driver/webkit/socket_debugger.rb
|
166
|
+
- lib/capybara/driver/webkit/version.rb
|
161
167
|
- lib/capybara/webkit.rb
|
168
|
+
- lib/capybara/webkit/matchers.rb
|
162
169
|
- lib/capybara_webkit_builder.rb
|
163
170
|
- spec/browser_spec.rb
|
171
|
+
- spec/cookie_jar_spec.rb
|
164
172
|
- spec/driver_rendering_spec.rb
|
165
173
|
- spec/driver_spec.rb
|
166
174
|
- spec/integration/driver_spec.rb
|
167
175
|
- spec/integration/session_spec.rb
|
176
|
+
- spec/self_signed_ssl_cert.rb
|
168
177
|
- spec/spec_helper.rb
|
169
178
|
- src/Body.h
|
170
179
|
- src/ClearCookies.cpp
|
171
180
|
- src/ClearCookies.h
|
172
181
|
- src/Command.cpp
|
173
182
|
- src/Command.h
|
183
|
+
- src/CommandFactory.cpp
|
184
|
+
- src/CommandFactory.h
|
185
|
+
- src/CommandParser.cpp
|
186
|
+
- src/CommandParser.h
|
174
187
|
- src/Connection.cpp
|
175
188
|
- src/Connection.h
|
189
|
+
- src/ConsoleMessages.cpp
|
190
|
+
- src/ConsoleMessages.h
|
176
191
|
- src/Evaluate.cpp
|
177
192
|
- src/Evaluate.h
|
178
193
|
- src/Execute.cpp
|
@@ -197,6 +212,8 @@ files:
|
|
197
212
|
- src/Node.h
|
198
213
|
- src/Render.cpp
|
199
214
|
- src/Render.h
|
215
|
+
- src/RequestedUrl.cpp
|
216
|
+
- src/RequestedUrl.h
|
200
217
|
- src/Reset.cpp
|
201
218
|
- src/Reset.h
|
202
219
|
- src/Response.cpp
|
@@ -205,6 +222,8 @@ files:
|
|
205
222
|
- src/Server.h
|
206
223
|
- src/SetCookie.cpp
|
207
224
|
- src/SetCookie.h
|
225
|
+
- src/SetProxy.cpp
|
226
|
+
- src/SetProxy.h
|
208
227
|
- src/Source.cpp
|
209
228
|
- src/Source.h
|
210
229
|
- src/Status.cpp
|
@@ -226,7 +245,6 @@ files:
|
|
226
245
|
- templates/Command.cpp
|
227
246
|
- templates/Command.h
|
228
247
|
- webkit_server.pro
|
229
|
-
has_rdoc: true
|
230
248
|
homepage: http://github.com/thoughtbot/capybara-webkit
|
231
249
|
licenses: []
|
232
250
|
|
@@ -256,14 +274,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
274
|
requirements: []
|
257
275
|
|
258
276
|
rubyforge_project:
|
259
|
-
rubygems_version: 1.
|
277
|
+
rubygems_version: 1.8.11
|
260
278
|
signing_key:
|
261
279
|
specification_version: 3
|
262
280
|
summary: Headless Webkit driver for Capybara
|
263
281
|
test_files:
|
264
282
|
- spec/browser_spec.rb
|
283
|
+
- spec/cookie_jar_spec.rb
|
265
284
|
- spec/driver_rendering_spec.rb
|
266
285
|
- spec/driver_spec.rb
|
267
286
|
- spec/integration/driver_spec.rb
|
268
287
|
- spec/integration/session_spec.rb
|
288
|
+
- spec/self_signed_ssl_cert.rb
|
269
289
|
- spec/spec_helper.rb
|