capybara-webkit 0.13.2 → 0.14.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/.travis.yml +10 -0
- data/Gemfile.lock +20 -18
- data/NEWS.md +20 -1
- data/README.md +12 -10
- data/capybara-webkit.gemspec +3 -2
- data/lib/capybara/webkit/browser.rb +10 -19
- data/lib/capybara/webkit/connection.rb +13 -34
- data/lib/capybara/webkit/driver.rb +5 -22
- data/lib/capybara/webkit/node.rb +10 -2
- data/lib/capybara/webkit/version.rb +1 -1
- data/lib/capybara_webkit_builder.rb +10 -1
- data/spec/browser_spec.rb +1 -1
- data/spec/connection_spec.rb +4 -2
- data/spec/driver_rendering_spec.rb +2 -2
- data/spec/driver_resize_window_spec.rb +29 -40
- data/spec/driver_spec.rb +368 -125
- data/spec/integration/session_spec.rb +100 -6
- data/spec/spec_helper.rb +6 -9
- data/spec/support/app_runner.rb +2 -12
- data/src/Authenticate.cpp +2 -2
- data/src/ClearCookies.cpp +1 -1
- data/src/ClearPromptText.cpp +1 -1
- data/src/Command.cpp +13 -0
- data/src/Command.h +6 -0
- data/src/CommandFactory.cpp +1 -3
- data/src/Connection.cpp +4 -3
- data/src/ConsoleMessages.cpp +4 -1
- data/src/CurrentUrl.cpp +1 -16
- data/src/CurrentUrl.h +0 -6
- data/src/EnableLogging.cpp +1 -1
- data/src/Evaluate.cpp +3 -74
- data/src/Evaluate.h +0 -8
- data/src/Execute.cpp +2 -2
- data/src/Find.cpp +2 -2
- data/src/FrameFocus.cpp +3 -3
- data/src/GetCookies.cpp +1 -1
- data/src/GetTimeout.cpp +1 -1
- data/src/GetWindowHandle.cpp +1 -1
- data/src/GetWindowHandles.cpp +6 -5
- data/src/Header.cpp +2 -2
- data/src/Headers.cpp +1 -1
- data/src/IgnoreSslErrors.cpp +1 -1
- data/src/JavascriptAlertMessages.cpp +4 -1
- data/src/JavascriptConfirmMessages.cpp +4 -1
- data/src/JavascriptPromptMessages.cpp +4 -1
- data/src/JsonSerializer.cpp +116 -0
- data/src/JsonSerializer.h +20 -0
- data/src/NetworkAccessManager.cpp +58 -17
- data/src/NetworkAccessManager.h +6 -0
- data/src/NoOpReply.cpp +32 -0
- data/src/NoOpReply.h +18 -0
- data/src/Node.cpp +1 -1
- data/src/NullCommand.cpp +1 -1
- data/src/PageLoadingCommand.cpp +5 -4
- data/src/Render.cpp +1 -1
- data/src/Reset.cpp +1 -1
- data/src/ResizeWindow.cpp +1 -1
- data/src/Response.cpp +3 -3
- data/src/Response.h +13 -4
- data/src/SetConfirmAction.cpp +1 -1
- data/src/SetCookie.cpp +1 -1
- data/src/SetPromptAction.cpp +1 -1
- data/src/SetPromptText.cpp +1 -1
- data/src/SetProxy.cpp +2 -2
- data/src/SetSkipImageLoading.cpp +1 -1
- data/src/SetTimeout.cpp +2 -2
- data/src/SetUrlBlacklist.cpp +15 -0
- data/src/SetUrlBlacklist.h +11 -0
- data/src/Status.cpp +1 -1
- data/src/TimeoutCommand.cpp +6 -6
- data/src/TimeoutCommand.h +0 -3
- data/src/UnsupportedContentHandler.cpp +1 -4
- data/src/Visit.cpp +1 -1
- data/src/WebPage.cpp +41 -31
- data/src/WebPage.h +14 -12
- data/src/WebPageManager.cpp +13 -8
- data/src/WebPageManager.h +3 -2
- data/src/WindowFocus.cpp +2 -2
- data/src/body.cpp +7 -2
- data/src/capybara.js +10 -2
- data/src/find_command.h +1 -3
- data/src/webkit_server.pro +7 -7
- metadata +47 -82
- checksums.yaml +0 -7
- data/spec/integration/driver_spec.rb +0 -21
- data/src/RequestedUrl.cpp +0 -13
- data/src/RequestedUrl.h +0 -10
- data/src/Source.cpp +0 -19
- data/src/Source.h +0 -18
- data/src/Url.cpp +0 -13
- data/src/Url.h +0 -10
data/src/WebPage.h
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#ifndef _WEBPAGE_H
|
2
2
|
#define _WEBPAGE_H
|
3
3
|
#include <QtWebKit>
|
4
|
-
#include <QtNetwork>
|
5
4
|
|
6
5
|
class WebPageManager;
|
6
|
+
class NetworkAccessManager;
|
7
7
|
|
8
8
|
class WebPage : public QWebPage {
|
9
9
|
Q_OBJECT
|
@@ -23,16 +23,19 @@ class WebPage : public QWebPage {
|
|
23
23
|
bool render(const QString &fileName);
|
24
24
|
virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0);
|
25
25
|
void setSkipImageLoading(bool skip);
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
QVariantList consoleMessages();
|
27
|
+
QVariantList alertMessages();
|
28
|
+
QVariantList confirmMessages();
|
29
|
+
QVariantList promptMessages();
|
30
30
|
void resetWindowSize();
|
31
31
|
QWebPage *createWindow(WebWindowType type);
|
32
32
|
QString uuid();
|
33
33
|
QString getWindowName();
|
34
34
|
bool matchesWindowSelector(QString);
|
35
35
|
void setFocus();
|
36
|
+
NetworkAccessManager *networkAccessManager();
|
37
|
+
bool unsupportedContentLoaded();
|
38
|
+
void unsupportedContentFinishedReply(QNetworkReply *reply);
|
36
39
|
|
37
40
|
public slots:
|
38
41
|
bool shouldInterruptJavaScript();
|
@@ -44,8 +47,6 @@ class WebPage : public QWebPage {
|
|
44
47
|
void frameCreated(QWebFrame *);
|
45
48
|
void handleSslErrorsForReply(QNetworkReply *reply, const QList<QSslError> &);
|
46
49
|
void handleUnsupportedContent(QNetworkReply *reply);
|
47
|
-
void networkAccessManagerCreatedRequest(QByteArray &url, QNetworkReply *reply);
|
48
|
-
void networkAccessManagerFinishedReply(QNetworkReply *reply);
|
49
50
|
|
50
51
|
signals:
|
51
52
|
void pageFinished(bool);
|
@@ -65,19 +66,20 @@ class WebPage : public QWebPage {
|
|
65
66
|
QString m_userAgent;
|
66
67
|
bool m_loading;
|
67
68
|
bool m_failed;
|
68
|
-
|
69
|
+
QStringList getAttachedFileNames();
|
69
70
|
void loadJavascript();
|
70
71
|
void setUserStylesheet();
|
71
72
|
bool m_confirm;
|
72
73
|
bool m_prompt;
|
73
|
-
|
74
|
-
|
75
|
-
|
74
|
+
QVariantList m_consoleMessages;
|
75
|
+
QVariantList m_alertMessages;
|
76
|
+
QVariantList m_confirmMessages;
|
76
77
|
QString m_prompt_text;
|
77
|
-
|
78
|
+
QVariantList m_promptMessages;
|
78
79
|
QString m_uuid;
|
79
80
|
WebPageManager *m_manager;
|
80
81
|
QString m_errorPageMessage;
|
82
|
+
bool m_unsupportedContentLoaded;
|
81
83
|
};
|
82
84
|
|
83
85
|
#endif //_WEBPAGE_H
|
data/src/WebPageManager.cpp
CHANGED
@@ -36,8 +36,6 @@ WebPage *WebPageManager::createPage(QObject *parent) {
|
|
36
36
|
this, SLOT(setPageStatus(bool)));
|
37
37
|
connect(page, SIGNAL(requestCreated(QByteArray &, QNetworkReply *)),
|
38
38
|
this, SLOT(requestCreated(QByteArray &, QNetworkReply *)));
|
39
|
-
connect(page, SIGNAL(replyFinished(QNetworkReply *)),
|
40
|
-
this, SLOT(replyFinished(QNetworkReply *)));
|
41
39
|
append(page);
|
42
40
|
return page;
|
43
41
|
}
|
@@ -47,25 +45,32 @@ void WebPageManager::emitLoadStarted() {
|
|
47
45
|
logger() << "Load started";
|
48
46
|
emit loadStarted();
|
49
47
|
}
|
48
|
+
m_started += qobject_cast<WebPage *>(sender());
|
50
49
|
}
|
51
50
|
|
52
51
|
void WebPageManager::requestCreated(QByteArray &url, QNetworkReply *reply) {
|
53
52
|
logger() << "Started request to" << url;
|
54
|
-
|
53
|
+
if (reply->isFinished())
|
54
|
+
replyFinished(reply);
|
55
|
+
else {
|
56
|
+
connect(reply, SIGNAL(finished()), SLOT(handleReplyFinished()));
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
void WebPageManager::handleReplyFinished() {
|
61
|
+
QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
|
62
|
+
disconnect(reply, SIGNAL(finished()), this, SLOT(handleReplyFinished()));
|
63
|
+
replyFinished(reply);
|
55
64
|
}
|
56
65
|
|
57
66
|
void WebPageManager::replyFinished(QNetworkReply *reply) {
|
58
67
|
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
59
68
|
logger() << "Received" << status << "from" << reply->url().toString();
|
60
|
-
m_started.remove(reply);
|
61
|
-
logger() << m_started.size() << "requests remaining";
|
62
|
-
if (m_started.empty() && !m_success) {
|
63
|
-
emitPageFinished();
|
64
|
-
}
|
65
69
|
}
|
66
70
|
|
67
71
|
void WebPageManager::setPageStatus(bool success) {
|
68
72
|
logger() << "Page finished with" << success;
|
73
|
+
m_started.remove(qobject_cast<WebPage *>(sender()));
|
69
74
|
m_success = success && m_success;
|
70
75
|
if (m_started.empty()) {
|
71
76
|
emitPageFinished();
|
data/src/WebPageManager.h
CHANGED
@@ -29,12 +29,13 @@ class WebPageManager : public QObject {
|
|
29
29
|
bool isLoading() const;
|
30
30
|
QDebug logger() const;
|
31
31
|
void enableLogging();
|
32
|
+
void replyFinished(QNetworkReply *reply);
|
32
33
|
|
33
34
|
public slots:
|
34
35
|
void emitLoadStarted();
|
35
36
|
void setPageStatus(bool);
|
36
37
|
void requestCreated(QByteArray &url, QNetworkReply *reply);
|
37
|
-
void
|
38
|
+
void handleReplyFinished();
|
38
39
|
|
39
40
|
signals:
|
40
41
|
void pageFinished(bool);
|
@@ -48,7 +49,7 @@ class WebPageManager : public QObject {
|
|
48
49
|
WebPage *m_currentPage;
|
49
50
|
bool m_ignoreSslErrors;
|
50
51
|
NetworkCookieJar *m_cookieJar;
|
51
|
-
QSet<
|
52
|
+
QSet<WebPage *> m_started;
|
52
53
|
bool m_success;
|
53
54
|
bool m_loggingEnabled;
|
54
55
|
QString *m_ignoredOutput;
|
data/src/WindowFocus.cpp
CHANGED
@@ -12,12 +12,12 @@ void WindowFocus::start() {
|
|
12
12
|
}
|
13
13
|
|
14
14
|
void WindowFocus::windowNotFound() {
|
15
|
-
|
15
|
+
emitFinished(false, QString("Unable to locate window. "));
|
16
16
|
}
|
17
17
|
|
18
18
|
void WindowFocus::success(WebPage *page) {
|
19
19
|
page->setFocus();
|
20
|
-
|
20
|
+
emitFinished(true);
|
21
21
|
}
|
22
22
|
|
23
23
|
void WindowFocus::focusWindow(QString selector) {
|
data/src/body.cpp
CHANGED
@@ -6,6 +6,11 @@ Body::Body(WebPageManager *manager, QStringList &arguments, QObject *parent) : S
|
|
6
6
|
}
|
7
7
|
|
8
8
|
void Body::start() {
|
9
|
-
QString result
|
10
|
-
|
9
|
+
QString result;
|
10
|
+
if (page()->unsupportedContentLoaded())
|
11
|
+
result = page()->currentFrame()->toPlainText();
|
12
|
+
else
|
13
|
+
result = page()->currentFrame()->toHtml();
|
14
|
+
|
15
|
+
emitFinished(true, result);
|
11
16
|
}
|
data/src/capybara.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Capybara = {
|
2
2
|
nextIndex: 0,
|
3
3
|
nodes: {},
|
4
|
-
|
4
|
+
attachedFiles: [],
|
5
5
|
|
6
6
|
invoke: function () {
|
7
7
|
return this[CapybaraInvocation.functionName].apply(this, CapybaraInvocation.arguments);
|
@@ -64,6 +64,10 @@ Capybara = {
|
|
64
64
|
}
|
65
65
|
},
|
66
66
|
|
67
|
+
hasAttribute: function(index, name) {
|
68
|
+
return this.nodes[index].hasAttribute(name);
|
69
|
+
},
|
70
|
+
|
67
71
|
path: function(index) {
|
68
72
|
return "/" + this.getXPathNode(this.nodes[index]).join("/");
|
69
73
|
},
|
@@ -260,7 +264,7 @@ Capybara = {
|
|
260
264
|
}
|
261
265
|
|
262
266
|
} else if (type === "file") {
|
263
|
-
this.
|
267
|
+
this.attachedFiles = Array.prototype.slice.call(arguments, 1);
|
264
268
|
this.click(index);
|
265
269
|
|
266
270
|
} else {
|
@@ -338,6 +342,10 @@ Capybara = {
|
|
338
342
|
};
|
339
343
|
mouseTrigger('mousemove', options);
|
340
344
|
mouseTrigger('mouseup', options);
|
345
|
+
},
|
346
|
+
|
347
|
+
equals: function(index, targetIndex) {
|
348
|
+
return this.nodes[index] === this.nodes[targetIndex];
|
341
349
|
}
|
342
350
|
};
|
343
351
|
|
data/src/find_command.h
CHANGED
@@ -7,8 +7,6 @@ CHECK_COMMAND(Visit)
|
|
7
7
|
CHECK_COMMAND(Find)
|
8
8
|
CHECK_COMMAND(Reset)
|
9
9
|
CHECK_COMMAND(Node)
|
10
|
-
CHECK_COMMAND(Url)
|
11
|
-
CHECK_COMMAND(Source)
|
12
10
|
CHECK_COMMAND(Evaluate)
|
13
11
|
CHECK_COMMAND(Execute)
|
14
12
|
CHECK_COMMAND(FrameFocus)
|
@@ -22,7 +20,6 @@ CHECK_COMMAND(ClearCookies)
|
|
22
20
|
CHECK_COMMAND(GetCookies)
|
23
21
|
CHECK_COMMAND(SetProxy)
|
24
22
|
CHECK_COMMAND(ConsoleMessages)
|
25
|
-
CHECK_COMMAND(RequestedUrl)
|
26
23
|
CHECK_COMMAND(CurrentUrl)
|
27
24
|
CHECK_COMMAND(ResizeWindow)
|
28
25
|
CHECK_COMMAND(IgnoreSslErrors)
|
@@ -41,4 +38,5 @@ CHECK_COMMAND(JavascriptConfirmMessages)
|
|
41
38
|
CHECK_COMMAND(JavascriptPromptMessages)
|
42
39
|
CHECK_COMMAND(GetTimeout)
|
43
40
|
CHECK_COMMAND(SetTimeout)
|
41
|
+
CHECK_COMMAND(SetUrlBlacklist)
|
44
42
|
|
data/src/webkit_server.pro
CHANGED
@@ -14,7 +14,6 @@ HEADERS = \
|
|
14
14
|
IgnoreSslErrors.h \
|
15
15
|
ResizeWindow.h \
|
16
16
|
CurrentUrl.h \
|
17
|
-
RequestedUrl.h \
|
18
17
|
ConsoleMessages.h \
|
19
18
|
WebPage.h \
|
20
19
|
Server.h \
|
@@ -26,8 +25,6 @@ HEADERS = \
|
|
26
25
|
Reset.h \
|
27
26
|
Node.h \
|
28
27
|
JavascriptInvocation.h \
|
29
|
-
Url.h \
|
30
|
-
Source.h \
|
31
28
|
Evaluate.h \
|
32
29
|
Execute.h \
|
33
30
|
FrameFocus.h \
|
@@ -36,7 +33,7 @@ HEADERS = \
|
|
36
33
|
NetworkCookieJar.h \
|
37
34
|
Header.h \
|
38
35
|
Render.h \
|
39
|
-
|
36
|
+
Body.h \
|
40
37
|
Status.h \
|
41
38
|
Headers.h \
|
42
39
|
UnsupportedContentHandler.h \
|
@@ -56,6 +53,9 @@ HEADERS = \
|
|
56
53
|
GetTimeout.h \
|
57
54
|
SetTimeout.h \
|
58
55
|
TimeoutCommand.h \
|
56
|
+
SetUrlBlacklist.h \
|
57
|
+
NoOpReply.h \
|
58
|
+
JsonSerializer.h
|
59
59
|
|
60
60
|
SOURCES = \
|
61
61
|
EnableLogging.cpp \
|
@@ -70,7 +70,6 @@ SOURCES = \
|
|
70
70
|
IgnoreSslErrors.cpp \
|
71
71
|
ResizeWindow.cpp \
|
72
72
|
CurrentUrl.cpp \
|
73
|
-
RequestedUrl.cpp \
|
74
73
|
ConsoleMessages.cpp \
|
75
74
|
main.cpp \
|
76
75
|
WebPage.cpp \
|
@@ -83,8 +82,6 @@ SOURCES = \
|
|
83
82
|
Reset.cpp \
|
84
83
|
Node.cpp \
|
85
84
|
JavascriptInvocation.cpp \
|
86
|
-
Url.cpp \
|
87
|
-
Source.cpp \
|
88
85
|
Evaluate.cpp \
|
89
86
|
Execute.cpp \
|
90
87
|
FrameFocus.cpp \
|
@@ -113,6 +110,9 @@ SOURCES = \
|
|
113
110
|
GetWindowHandles.cpp \
|
114
111
|
GetWindowHandle.cpp \
|
115
112
|
TimeoutCommand.cpp \
|
113
|
+
SetUrlBlacklist.cpp \
|
114
|
+
NoOpReply.cpp \
|
115
|
+
JsonSerializer.cpp
|
116
116
|
|
117
117
|
RESOURCES = webkit_server.qrc
|
118
118
|
QT += network webkit
|
metadata
CHANGED
@@ -1,123 +1,101 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-webkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- thoughtbot
|
8
9
|
- Joe Ferris
|
10
|
+
- Matt Horan
|
9
11
|
- Matt Mongeau
|
10
12
|
- Mike Burns
|
11
13
|
- Jason Morrison
|
12
14
|
autorequire:
|
13
15
|
bindir: bin
|
14
16
|
cert_chain: []
|
15
|
-
date:
|
17
|
+
date: 2013-01-03 00:00:00.000000000 Z
|
16
18
|
dependencies:
|
17
19
|
- !ruby/object:Gem::Dependency
|
18
20
|
name: capybara
|
19
|
-
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirement: &15525620 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
20
23
|
requirements:
|
21
|
-
- -
|
24
|
+
- - ~>
|
22
25
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
24
|
-
- -
|
26
|
+
version: '2.0'
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 2.0.2
|
27
30
|
type: :runtime
|
28
31
|
prerelease: false
|
29
|
-
version_requirements:
|
30
|
-
requirements:
|
31
|
-
- - '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.0.0
|
34
|
-
- - <
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: '1.2'
|
32
|
+
version_requirements: *15525620
|
37
33
|
- !ruby/object:Gem::Dependency
|
38
34
|
name: json
|
39
|
-
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirement: &15519880 !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
40
37
|
requirements:
|
41
|
-
- - '>='
|
38
|
+
- - ! '>='
|
42
39
|
- !ruby/object:Gem::Version
|
43
40
|
version: '0'
|
44
41
|
type: :runtime
|
45
42
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
requirements:
|
48
|
-
- - '>='
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '0'
|
43
|
+
version_requirements: *15519880
|
51
44
|
- !ruby/object:Gem::Dependency
|
52
45
|
name: rspec
|
53
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirement: &15509400 !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
54
48
|
requirements:
|
55
49
|
- - ~>
|
56
50
|
- !ruby/object:Gem::Version
|
57
51
|
version: 2.6.0
|
58
52
|
type: :development
|
59
53
|
prerelease: false
|
60
|
-
version_requirements:
|
61
|
-
requirements:
|
62
|
-
- - ~>
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 2.6.0
|
54
|
+
version_requirements: *15509400
|
65
55
|
- !ruby/object:Gem::Dependency
|
66
56
|
name: sinatra
|
67
|
-
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirement: &15507080 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
68
59
|
requirements:
|
69
|
-
- - '>='
|
60
|
+
- - ! '>='
|
70
61
|
- !ruby/object:Gem::Version
|
71
62
|
version: '0'
|
72
63
|
type: :development
|
73
64
|
prerelease: false
|
74
|
-
version_requirements:
|
75
|
-
requirements:
|
76
|
-
- - '>='
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '0'
|
65
|
+
version_requirements: *15507080
|
79
66
|
- !ruby/object:Gem::Dependency
|
80
67
|
name: mini_magick
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
68
|
+
requirement: &15493300 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
82
70
|
requirements:
|
83
|
-
- - '>='
|
71
|
+
- - ! '>='
|
84
72
|
- !ruby/object:Gem::Version
|
85
73
|
version: '0'
|
86
74
|
type: :development
|
87
75
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
requirements:
|
90
|
-
- - '>='
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: '0'
|
76
|
+
version_requirements: *15493300
|
93
77
|
- !ruby/object:Gem::Dependency
|
94
78
|
name: rake
|
95
|
-
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirement: &15488580 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
96
81
|
requirements:
|
97
|
-
- - '>='
|
82
|
+
- - ! '>='
|
98
83
|
- !ruby/object:Gem::Version
|
99
84
|
version: '0'
|
100
85
|
type: :development
|
101
86
|
prerelease: false
|
102
|
-
version_requirements:
|
103
|
-
requirements:
|
104
|
-
- - '>='
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: '0'
|
87
|
+
version_requirements: *15488580
|
107
88
|
- !ruby/object:Gem::Dependency
|
108
89
|
name: appraisal
|
109
|
-
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirement: &15475400 !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
110
92
|
requirements:
|
111
93
|
- - ~>
|
112
94
|
- !ruby/object:Gem::Version
|
113
95
|
version: 0.4.0
|
114
96
|
type: :development
|
115
97
|
prerelease: false
|
116
|
-
version_requirements:
|
117
|
-
requirements:
|
118
|
-
- - ~>
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 0.4.0
|
98
|
+
version_requirements: *15475400
|
121
99
|
description:
|
122
100
|
email: support@thoughtbot.com
|
123
101
|
executables: []
|
@@ -127,6 +105,7 @@ extra_rdoc_files: []
|
|
127
105
|
files:
|
128
106
|
- .gitignore
|
129
107
|
- .rspec
|
108
|
+
- .travis.yml
|
130
109
|
- Appraisals
|
131
110
|
- CONTRIBUTING.md
|
132
111
|
- GOALS
|
@@ -162,7 +141,6 @@ files:
|
|
162
141
|
- spec/driver_rendering_spec.rb
|
163
142
|
- spec/driver_resize_window_spec.rb
|
164
143
|
- spec/driver_spec.rb
|
165
|
-
- spec/integration/driver_spec.rb
|
166
144
|
- spec/integration/session_spec.rb
|
167
145
|
- spec/selenium_compatibility_spec.rb
|
168
146
|
- spec/self_signed_ssl_cert.rb
|
@@ -219,10 +197,14 @@ files:
|
|
219
197
|
- src/JavascriptInvocation.h
|
220
198
|
- src/JavascriptPromptMessages.cpp
|
221
199
|
- src/JavascriptPromptMessages.h
|
200
|
+
- src/JsonSerializer.cpp
|
201
|
+
- src/JsonSerializer.h
|
222
202
|
- src/NetworkAccessManager.cpp
|
223
203
|
- src/NetworkAccessManager.h
|
224
204
|
- src/NetworkCookieJar.cpp
|
225
205
|
- src/NetworkCookieJar.h
|
206
|
+
- src/NoOpReply.cpp
|
207
|
+
- src/NoOpReply.h
|
226
208
|
- src/Node.cpp
|
227
209
|
- src/Node.h
|
228
210
|
- src/NullCommand.cpp
|
@@ -231,8 +213,6 @@ files:
|
|
231
213
|
- src/PageLoadingCommand.h
|
232
214
|
- src/Render.cpp
|
233
215
|
- src/Render.h
|
234
|
-
- src/RequestedUrl.cpp
|
235
|
-
- src/RequestedUrl.h
|
236
216
|
- src/Reset.cpp
|
237
217
|
- src/Reset.h
|
238
218
|
- src/ResizeWindow.cpp
|
@@ -255,18 +235,16 @@ files:
|
|
255
235
|
- src/SetSkipImageLoading.h
|
256
236
|
- src/SetTimeout.cpp
|
257
237
|
- src/SetTimeout.h
|
238
|
+
- src/SetUrlBlacklist.cpp
|
239
|
+
- src/SetUrlBlacklist.h
|
258
240
|
- src/SocketCommand.cpp
|
259
241
|
- src/SocketCommand.h
|
260
|
-
- src/Source.cpp
|
261
|
-
- src/Source.h
|
262
242
|
- src/Status.cpp
|
263
243
|
- src/Status.h
|
264
244
|
- src/TimeoutCommand.cpp
|
265
245
|
- src/TimeoutCommand.h
|
266
246
|
- src/UnsupportedContentHandler.cpp
|
267
247
|
- src/UnsupportedContentHandler.h
|
268
|
-
- src/Url.cpp
|
269
|
-
- src/Url.h
|
270
248
|
- src/Visit.cpp
|
271
249
|
- src/Visit.h
|
272
250
|
- src/WebPage.cpp
|
@@ -286,39 +264,26 @@ files:
|
|
286
264
|
- webkit_server.pro
|
287
265
|
homepage: http://github.com/thoughtbot/capybara-webkit
|
288
266
|
licenses: []
|
289
|
-
metadata: {}
|
290
267
|
post_install_message:
|
291
268
|
rdoc_options: []
|
292
269
|
require_paths:
|
293
270
|
- lib
|
294
271
|
required_ruby_version: !ruby/object:Gem::Requirement
|
272
|
+
none: false
|
295
273
|
requirements:
|
296
|
-
- - '>='
|
274
|
+
- - ! '>='
|
297
275
|
- !ruby/object:Gem::Version
|
298
276
|
version: '0'
|
299
277
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
278
|
+
none: false
|
300
279
|
requirements:
|
301
|
-
- - '>='
|
280
|
+
- - ! '>='
|
302
281
|
- !ruby/object:Gem::Version
|
303
282
|
version: '0'
|
304
283
|
requirements: []
|
305
284
|
rubyforge_project:
|
306
|
-
rubygems_version:
|
285
|
+
rubygems_version: 1.8.15
|
307
286
|
signing_key:
|
308
|
-
specification_version:
|
287
|
+
specification_version: 3
|
309
288
|
summary: Headless Webkit driver for Capybara
|
310
|
-
test_files:
|
311
|
-
- spec/browser_spec.rb
|
312
|
-
- spec/capybara_webkit_builder_spec.rb
|
313
|
-
- spec/connection_spec.rb
|
314
|
-
- spec/cookie_jar_spec.rb
|
315
|
-
- spec/driver_rendering_spec.rb
|
316
|
-
- spec/driver_resize_window_spec.rb
|
317
|
-
- spec/driver_spec.rb
|
318
|
-
- spec/integration/driver_spec.rb
|
319
|
-
- spec/integration/session_spec.rb
|
320
|
-
- spec/selenium_compatibility_spec.rb
|
321
|
-
- spec/self_signed_ssl_cert.rb
|
322
|
-
- spec/spec_helper.rb
|
323
|
-
- spec/support/app_runner.rb
|
324
|
-
has_rdoc:
|
289
|
+
test_files: []
|