capybara-webkit 0.9.0 → 0.10.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/ChangeLog +36 -6
- data/Gemfile.lock +6 -6
- data/NEWS.md +6 -0
- data/capybara-webkit.gemspec +1 -0
- data/lib/capybara/driver/webkit.rb +1 -1
- data/lib/capybara/driver/webkit/browser.rb +4 -0
- data/lib/capybara/driver/webkit/node.rb +1 -5
- data/lib/capybara/driver/webkit/version.rb +1 -1
- data/lib/capybara_webkit_builder.rb +17 -8
- data/spec/capybara_webkit_builder_spec.rb +37 -0
- data/spec/driver_spec.rb +67 -8
- data/spec/spec_helper.rb +14 -0
- data/src/CommandFactory.cpp +1 -0
- data/src/CurrentUrl.cpp +71 -0
- data/src/CurrentUrl.h +16 -0
- data/src/Reset.cpp +7 -0
- data/src/Reset.h +3 -0
- data/src/capybara.js +0 -2
- data/src/find_command.h +1 -0
- data/src/webkit_server.pro +2 -0
- metadata +20 -16
data/ChangeLog
CHANGED
@@ -1,10 +1,40 @@
|
|
1
|
-
2012-02-
|
1
|
+
2012-02-17 Matthew Mongeau <halogenandtoast@gmail.com>
|
2
|
+
* ChangeLog, version.rb:
|
3
|
+
Bump to 0.10.0
|
4
|
+
|
5
|
+
2012-02-17 Marc Schwieterman
|
6
|
+
* driver_spec.rb, Reset.cpp, Reset.h: Reset history when resetting session.
|
7
|
+
* driver_spec.rb, webkit.rb, browser.rb, CommandFactory.cpp, CurrentUrl.cpp,
|
8
|
+
CurrentUrl.h, find_command.h, webkit_server.pro:
|
9
|
+
current_url now conforms more closely to the behavior of Selenium.
|
10
|
+
|
11
|
+
2012-02-17 Igor Zubkov <igor.zubkov@gmail.com>
|
12
|
+
* spec_helper.rb: Fix typo.
|
13
|
+
|
14
|
+
2012-02-17 Matthew Mongeau <halogenandtoast@gmail.com>
|
15
|
+
* capybara_webkit_builder.rb, capybara_webkit_builder_spec.rb,
|
16
|
+
spec_helper.rb:
|
17
|
+
Allow for overriding MAKE, QMAKE, and SPEC options via the environment.
|
18
|
+
|
19
|
+
2012-02-12 Jason Petersen <jasonmp85@gmail.com>
|
20
|
+
* driver_spec.rb, node.rb, capybara.js:
|
21
|
+
Selected attribute is no longer removed when selecting/deselecting. Only the
|
22
|
+
property is changed.
|
23
|
+
|
24
|
+
2012-02-09 Gabe Berke-Williams <gabe@thoughtbot.com>
|
25
|
+
* capybara-webkit.gemspec: Note capybara-webkit's usage of Sinatra.
|
26
|
+
|
27
|
+
2012-02-03 Matthew Mongeau <halogenandtoast@gmail.com>
|
28
|
+
* version.rb:
|
29
|
+
Bump to 0.9.0
|
30
|
+
|
31
|
+
2012-02-01 Joe Ferris <jferris@thoughtbot.com>
|
2
32
|
* driver_spec.rb, Connection.cpp, Connection.h:
|
3
|
-
Try to detect when a command starts a page load and wait for it to finish
|
33
|
+
Try to detect when a command starts a page load and wait for it to finish.
|
4
34
|
|
5
|
-
2012-01-27
|
6
|
-
* driver_spec.rb, capybara.js: Trigger mousedown and mouseup events
|
7
|
-
* driver_spec.rb, capybara.js: Simulate browser events more closely
|
35
|
+
2012-01-27 Matthew Mongeau <halogenandtoast@gmail.com>
|
36
|
+
* driver_spec.rb, capybara.js: Trigger mousedown and mouseup events.
|
37
|
+
* driver_spec.rb, capybara.js: Simulate browser events more closely.
|
8
38
|
|
9
39
|
2012-01-19 Marco Antonio <marcofognog@gmail.com>
|
10
40
|
* node.rb, driver_spec.rb:
|
@@ -15,4 +45,4 @@
|
|
15
45
|
Raise error when an invisible element receives #click so it resembles a browser more closely.
|
16
46
|
|
17
47
|
2012-01-15 Marc Schwieterman
|
18
|
-
* CONTRIBUTING.md: add imagemagick dependency to contributing guide
|
48
|
+
* CONTRIBUTING.md: add imagemagick dependency to contributing guide.
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
capybara-webkit (0.
|
4
|
+
capybara-webkit (0.9.0)
|
5
5
|
capybara (>= 1.0.0, < 1.2)
|
6
6
|
json
|
7
7
|
|
@@ -18,11 +18,11 @@ GEM
|
|
18
18
|
rack-test (>= 0.5.4)
|
19
19
|
selenium-webdriver (~> 2.0)
|
20
20
|
xpath (~> 0.1.4)
|
21
|
-
childprocess (0.
|
21
|
+
childprocess (0.3.1)
|
22
22
|
ffi (~> 1.0.6)
|
23
23
|
diff-lcs (1.1.2)
|
24
24
|
ffi (1.0.11)
|
25
|
-
json (1.6.
|
25
|
+
json (1.6.5)
|
26
26
|
mime-types (1.17.2)
|
27
27
|
mini_magick (3.2.1)
|
28
28
|
subexec (~> 0.0.4)
|
@@ -40,9 +40,9 @@ GEM
|
|
40
40
|
rspec-expectations (2.6.0)
|
41
41
|
diff-lcs (~> 1.1.2)
|
42
42
|
rspec-mocks (2.6.0)
|
43
|
-
rubyzip (0.9.
|
44
|
-
selenium-webdriver (2.
|
45
|
-
childprocess (>= 0.2.
|
43
|
+
rubyzip (0.9.6.1)
|
44
|
+
selenium-webdriver (2.19.0)
|
45
|
+
childprocess (>= 0.2.5)
|
46
46
|
ffi (~> 1.0.9)
|
47
47
|
multi_json (~> 1.0.4)
|
48
48
|
rubyzip
|
data/NEWS.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
New for 0.10.0:
|
2
|
+
|
3
|
+
* current_url now more closely matches the behavior of Selenium
|
4
|
+
* custom MAKE, QMAKE, and SPEC options can be set from the environment
|
5
|
+
* BUG: Selected attribute is no longer removed when selecting/deselecting. Only the property is changed.
|
6
|
+
|
1
7
|
New for 0.9.0:
|
2
8
|
|
3
9
|
* Raise an error when an invisible element receives #click.
|
data/capybara-webkit.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_runtime_dependency("json")
|
20
20
|
|
21
21
|
s.add_development_dependency("rspec", "~> 2.6.0")
|
22
|
+
# Sinatra is used by Capybara's TestApp
|
22
23
|
s.add_development_dependency("sinatra")
|
23
24
|
s.add_development_dependency("mini_magick")
|
24
25
|
s.add_development_dependency("rake")
|
@@ -22,11 +22,7 @@ class Capybara::Driver::Webkit
|
|
22
22
|
|
23
23
|
def value
|
24
24
|
if multiple_select?
|
25
|
-
self.find(".//option").select
|
26
|
-
option["selected"] == "selected"
|
27
|
-
end.map do |option|
|
28
|
-
option.value
|
29
|
-
end
|
25
|
+
self.find(".//option").select(&:selected?).map(&:value)
|
30
26
|
else
|
31
27
|
invoke "value"
|
32
28
|
end
|
@@ -5,23 +5,32 @@ module CapybaraWebkitBuilder
|
|
5
5
|
extend self
|
6
6
|
|
7
7
|
def make_bin
|
8
|
-
|
9
|
-
make_binaries.detect { |make| system("which #{make}") }
|
8
|
+
ENV['MAKE'] || 'make'
|
10
9
|
end
|
11
10
|
|
12
|
-
def
|
13
|
-
|
14
|
-
|
11
|
+
def qmake_bin
|
12
|
+
ENV['QMAKE'] || 'qmake'
|
13
|
+
end
|
14
|
+
|
15
|
+
def spec
|
16
|
+
ENV['SPEC'] || os_spec
|
17
|
+
end
|
18
|
+
|
19
|
+
def os_spec
|
15
20
|
case RbConfig::CONFIG['host_os']
|
16
21
|
when /linux/
|
17
|
-
|
22
|
+
"linux-g++"
|
18
23
|
when /freebsd/
|
19
|
-
|
24
|
+
"freebsd-g++"
|
20
25
|
else
|
21
|
-
|
26
|
+
"macx-g++"
|
22
27
|
end
|
23
28
|
end
|
24
29
|
|
30
|
+
def makefile
|
31
|
+
system("#{qmake_bin} -spec #{spec}")
|
32
|
+
end
|
33
|
+
|
25
34
|
def qmake
|
26
35
|
system("#{make_bin} qmake")
|
27
36
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'capybara_webkit_builder'
|
3
|
+
|
4
|
+
describe CapybaraWebkitBuilder do
|
5
|
+
let(:builder) { CapybaraWebkitBuilder }
|
6
|
+
|
7
|
+
it "will use the env variable for #make_bin" do
|
8
|
+
with_env_vars("MAKE" => "fake_make") do
|
9
|
+
builder.make_bin.should == "fake_make"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it "will use the env variable for #qmake_bin" do
|
14
|
+
with_env_vars("QMAKE" => "fake_qmake") do
|
15
|
+
builder.qmake_bin.should == "fake_qmake"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it "will use the env variable for #os_spec" do
|
20
|
+
with_env_vars("SPEC" => "fake_os_spec") do
|
21
|
+
builder.spec.should == "fake_os_spec"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it "defaults the #make_bin" do
|
26
|
+
builder.make_bin.should == 'make'
|
27
|
+
end
|
28
|
+
|
29
|
+
it "defaults the #qmake_bin" do
|
30
|
+
builder.qmake_bin.should == 'qmake'
|
31
|
+
end
|
32
|
+
|
33
|
+
it "defaults #spec to the #os_specs" do
|
34
|
+
builder.spec.should == builder.os_spec
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
data/spec/driver_spec.rb
CHANGED
@@ -132,6 +132,20 @@ describe Capybara::Driver::Webkit do
|
|
132
132
|
subject.find("//input").first.click
|
133
133
|
subject.find("//p").first.text.should == ""
|
134
134
|
end
|
135
|
+
|
136
|
+
it "returns the current URL when changed by pushState after a redirect" do
|
137
|
+
subject.visit("/redirect-me")
|
138
|
+
port = subject.instance_variable_get("@rack_server").port
|
139
|
+
subject.execute_script("window.history.pushState({}, '', '/pushed-after-redirect')")
|
140
|
+
subject.current_url.should == "http://127.0.0.1:#{port}/pushed-after-redirect"
|
141
|
+
end
|
142
|
+
|
143
|
+
it "returns the current URL when changed by replaceState after a redirect" do
|
144
|
+
subject.visit("/redirect-me")
|
145
|
+
port = subject.instance_variable_get("@rack_server").port
|
146
|
+
subject.execute_script("window.history.replaceState({}, '', '/replaced-after-redirect')")
|
147
|
+
subject.current_url.should == "http://127.0.0.1:#{port}/replaced-after-redirect"
|
148
|
+
end
|
135
149
|
end
|
136
150
|
|
137
151
|
context "css app" do
|
@@ -197,6 +211,11 @@ describe Capybara::Driver::Webkit do
|
|
197
211
|
subject.find("//*[contains(., 'hello')]").should be_empty
|
198
212
|
end
|
199
213
|
|
214
|
+
it "has a location of 'about:blank' after reseting" do
|
215
|
+
subject.reset!
|
216
|
+
subject.current_url.should == "about:blank"
|
217
|
+
end
|
218
|
+
|
200
219
|
it "raises an error for an invalid xpath query" do
|
201
220
|
expect { subject.find("totally invalid salad") }.
|
202
221
|
to raise_error(Capybara::Driver::Webkit::WebkitInvalidResponseError, /xpath/i)
|
@@ -223,6 +242,18 @@ describe Capybara::Driver::Webkit do
|
|
223
242
|
subject.current_url.should == "http://127.0.0.1:#{port}/hello/world?success=true"
|
224
243
|
end
|
225
244
|
|
245
|
+
it "returns the current URL when changed by pushState" do
|
246
|
+
port = subject.instance_variable_get("@rack_server").port
|
247
|
+
subject.execute_script("window.history.pushState({}, '', '/pushed')")
|
248
|
+
subject.current_url.should == "http://127.0.0.1:#{port}/pushed"
|
249
|
+
end
|
250
|
+
|
251
|
+
it "returns the current URL when changed by replaceState" do
|
252
|
+
port = subject.instance_variable_get("@rack_server").port
|
253
|
+
subject.execute_script("window.history.replaceState({}, '', '/replaced')")
|
254
|
+
subject.current_url.should == "http://127.0.0.1:#{port}/replaced"
|
255
|
+
end
|
256
|
+
|
226
257
|
it "does not double-encode URLs" do
|
227
258
|
subject.visit("/hello/world?success=%25true")
|
228
259
|
subject.current_url.should =~ /success=\%25true/
|
@@ -380,6 +411,7 @@ describe Capybara::Driver::Webkit do
|
|
380
411
|
</select>
|
381
412
|
<textarea id="only-textarea">what a wonderful area for text</textarea>
|
382
413
|
<input type="radio" id="only-radio" value="1"/>
|
414
|
+
<button type="reset">Reset Form</button>
|
383
415
|
</form>
|
384
416
|
</body></html>
|
385
417
|
HTML
|
@@ -450,18 +482,45 @@ describe Capybara::Driver::Webkit do
|
|
450
482
|
let(:banana_option) { subject.find("//option[@id='topping-banana']").first }
|
451
483
|
let(:cherry_option) { subject.find("//option[@id='topping-cherry']").first }
|
452
484
|
let(:toppings_select) { subject.find("//select[@name='toppings']").first }
|
485
|
+
let(:reset_button) { subject.find("//button[@type='reset']").first }
|
453
486
|
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
487
|
+
context "a select element's selection has been changed" do
|
488
|
+
before do
|
489
|
+
animal_select.value.should == "Capybara"
|
490
|
+
monkey_option.select_option
|
491
|
+
end
|
492
|
+
|
493
|
+
it "returns the new selection" do
|
494
|
+
animal_select.value.should == "Monkey"
|
495
|
+
end
|
496
|
+
|
497
|
+
it "does not modify the selected attribute of a new selection" do
|
498
|
+
monkey_option['selected'].should be_empty
|
499
|
+
end
|
500
|
+
|
501
|
+
it "returns the old value when a reset button is clicked" do
|
502
|
+
reset_button.click
|
503
|
+
|
504
|
+
animal_select.value.should == "Capybara"
|
505
|
+
end
|
458
506
|
end
|
459
507
|
|
460
|
-
|
461
|
-
|
508
|
+
context "a multi-select element's option has been unselected" do
|
509
|
+
before do
|
510
|
+
toppings_select.value.should include("Apple", "Banana", "Cherry")
|
462
511
|
|
463
|
-
|
464
|
-
|
512
|
+
apple_option.unselect_option
|
513
|
+
end
|
514
|
+
|
515
|
+
it "does not return the deselected option" do
|
516
|
+
toppings_select.value.should_not include("Apple")
|
517
|
+
end
|
518
|
+
|
519
|
+
it "returns the deselected option when a reset button is clicked" do
|
520
|
+
reset_button.click
|
521
|
+
|
522
|
+
toppings_select.value.should include("Apple", "Banana", "Cherry")
|
523
|
+
end
|
465
524
|
end
|
466
525
|
|
467
526
|
it "reselects an option in a multi-select" do
|
data/spec/spec_helper.rb
CHANGED
@@ -23,3 +23,17 @@ $webkit_browser = Capybara::Driver::Webkit::Browser.new(:socket_class => TCPSock
|
|
23
23
|
Capybara.register_driver :reusable_webkit do |app|
|
24
24
|
Capybara::Driver::Webkit.new(app, :browser => $webkit_browser)
|
25
25
|
end
|
26
|
+
|
27
|
+
def with_env_vars(vars)
|
28
|
+
old_env_variables = {}
|
29
|
+
vars.each do |key, value|
|
30
|
+
old_env_variables[key] = ENV[key]
|
31
|
+
ENV[key] = value
|
32
|
+
end
|
33
|
+
|
34
|
+
yield
|
35
|
+
|
36
|
+
old_env_variables.each do |key, value|
|
37
|
+
ENV[key] = value
|
38
|
+
end
|
39
|
+
end
|
data/src/CommandFactory.cpp
CHANGED
data/src/CurrentUrl.cpp
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
#include "CurrentUrl.h"
|
2
|
+
#include "WebPage.h"
|
3
|
+
|
4
|
+
CurrentUrl::CurrentUrl(WebPage *page, QObject *parent) : Command(page, parent) {
|
5
|
+
}
|
6
|
+
|
7
|
+
/*
|
8
|
+
* This CurrentUrl command attempts to produce a current_url value consistent
|
9
|
+
* with that returned by the Selenium WebDriver Capybara driver.
|
10
|
+
*
|
11
|
+
* It does not currently return the correct value in the case of an iframe whose
|
12
|
+
* source URL results in a redirect because the loading of the iframe does not
|
13
|
+
* generate a history item. This is most likely a rare case and is consistent
|
14
|
+
* with the current behavior of the capybara-webkit driver.
|
15
|
+
*
|
16
|
+
* The following two values are *not* affected by Javascript pushState.
|
17
|
+
*
|
18
|
+
* QWebFrame->url()
|
19
|
+
* QWebHistoryItem.originalUrl()
|
20
|
+
*
|
21
|
+
* The following two values *are* affected by Javascript pushState.
|
22
|
+
*
|
23
|
+
* QWebFrame->requestedUrl()
|
24
|
+
* QWebHistoryItem.url()
|
25
|
+
*
|
26
|
+
* In the cases that we have access to both the QWebFrame values and the
|
27
|
+
* correct history item for that frame, we can compare the values and determine
|
28
|
+
* if a redirect occurred and if pushState was used. The table below describes
|
29
|
+
* the various combinations of URL values that are possible.
|
30
|
+
*
|
31
|
+
* O -> originally requested URL
|
32
|
+
* R -> URL after redirection
|
33
|
+
* P -> URL set by pushState
|
34
|
+
* * -> denotes the desired URL value from the frame
|
35
|
+
*
|
36
|
+
* frame history
|
37
|
+
* case url requestedUrl url originalUrl
|
38
|
+
* -----------------------------------------------------------------
|
39
|
+
* regular load O O* O O
|
40
|
+
*
|
41
|
+
* redirect w/o R* O R O
|
42
|
+
* pushState
|
43
|
+
*
|
44
|
+
* pushState O P* P O
|
45
|
+
* only
|
46
|
+
*
|
47
|
+
* redirect w/ R P* P O
|
48
|
+
* pushState
|
49
|
+
*
|
50
|
+
* Based on the above information, we only need to check for the case of a
|
51
|
+
* redirect w/o pushState, in which case QWebFrame->url() will have the correct
|
52
|
+
* current_url value. In all other cases QWebFrame->requestedUrl() is correct.
|
53
|
+
*/
|
54
|
+
void CurrentUrl::start(QStringList &arguments) {
|
55
|
+
Q_UNUSED(arguments);
|
56
|
+
|
57
|
+
QUrl humanUrl = wasRedirectedAndNotModifiedByJavascript() ?
|
58
|
+
page()->currentFrame()->url() : page()->currentFrame()->requestedUrl();
|
59
|
+
QByteArray encodedBytes = humanUrl.toEncoded();
|
60
|
+
QString urlString = QString(encodedBytes);
|
61
|
+
emit finished(new Response(true, urlString));
|
62
|
+
}
|
63
|
+
|
64
|
+
bool CurrentUrl::wasRegularLoad() {
|
65
|
+
return page()->currentFrame()->url() == page()->currentFrame()->requestedUrl();
|
66
|
+
}
|
67
|
+
|
68
|
+
bool CurrentUrl::wasRedirectedAndNotModifiedByJavascript() {
|
69
|
+
return !wasRegularLoad() && page()->currentFrame()->url() == page()->history()->currentItem().url();
|
70
|
+
}
|
71
|
+
|
data/src/CurrentUrl.h
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#include "Command.h"
|
2
|
+
|
3
|
+
class WebPage;
|
4
|
+
|
5
|
+
class CurrentUrl : public Command {
|
6
|
+
Q_OBJECT
|
7
|
+
|
8
|
+
public:
|
9
|
+
CurrentUrl(WebPage *page, QObject *parent = 0);
|
10
|
+
virtual void start(QStringList &arguments);
|
11
|
+
|
12
|
+
private:
|
13
|
+
bool wasRegularLoad();
|
14
|
+
bool wasRedirectedAndNotModifiedByJavascript();
|
15
|
+
};
|
16
|
+
|
data/src/Reset.cpp
CHANGED
@@ -16,6 +16,13 @@ void Reset::start(QStringList &arguments) {
|
|
16
16
|
page()->setUserAgent(NULL);
|
17
17
|
page()->resetResponseHeaders();
|
18
18
|
page()->resetConsoleMessages();
|
19
|
+
resetHistory();
|
19
20
|
emit finished(new Response(true));
|
20
21
|
}
|
21
22
|
|
23
|
+
void Reset::resetHistory() {
|
24
|
+
// Clearing the history preserves the current history item, so set it to blank first.
|
25
|
+
page()->currentFrame()->setUrl(QUrl("about:blank"));
|
26
|
+
page()->history()->clear();
|
27
|
+
}
|
28
|
+
|
data/src/Reset.h
CHANGED
data/src/capybara.js
CHANGED
@@ -196,13 +196,11 @@ Capybara = {
|
|
196
196
|
|
197
197
|
selectOption: function(index) {
|
198
198
|
this.nodes[index].selected = true;
|
199
|
-
this.nodes[index].setAttribute("selected", "selected");
|
200
199
|
this.trigger(index, "change");
|
201
200
|
},
|
202
201
|
|
203
202
|
unselectOption: function(index) {
|
204
203
|
this.nodes[index].selected = false;
|
205
|
-
this.nodes[index].removeAttribute("selected");
|
206
204
|
this.trigger(index, "change");
|
207
205
|
},
|
208
206
|
|
data/src/find_command.h
CHANGED
data/src/webkit_server.pro
CHANGED
@@ -2,6 +2,7 @@ TEMPLATE = app
|
|
2
2
|
TARGET = webkit_server
|
3
3
|
DESTDIR = .
|
4
4
|
HEADERS = \
|
5
|
+
CurrentUrl.h \
|
5
6
|
RequestedUrl.h \
|
6
7
|
ConsoleMessages.h \
|
7
8
|
WebPage.h \
|
@@ -35,6 +36,7 @@ HEADERS = \
|
|
35
36
|
SetProxy.h \
|
36
37
|
|
37
38
|
SOURCES = \
|
39
|
+
CurrentUrl.cpp \
|
38
40
|
RequestedUrl.cpp \
|
39
41
|
ConsoleMessages.cpp \
|
40
42
|
main.cpp \
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capybara-webkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,11 +13,11 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2012-02-
|
16
|
+
date: 2012-02-17 00:00:00.000000000Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: capybara
|
20
|
-
requirement: &
|
20
|
+
requirement: &2157249340 !ruby/object:Gem::Requirement
|
21
21
|
none: false
|
22
22
|
requirements:
|
23
23
|
- - ! '>='
|
@@ -28,10 +28,10 @@ dependencies:
|
|
28
28
|
version: '1.2'
|
29
29
|
type: :runtime
|
30
30
|
prerelease: false
|
31
|
-
version_requirements: *
|
31
|
+
version_requirements: *2157249340
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: json
|
34
|
-
requirement: &
|
34
|
+
requirement: &2157247960 !ruby/object:Gem::Requirement
|
35
35
|
none: false
|
36
36
|
requirements:
|
37
37
|
- - ! '>='
|
@@ -39,10 +39,10 @@ dependencies:
|
|
39
39
|
version: '0'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
|
-
version_requirements: *
|
42
|
+
version_requirements: *2157247960
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rspec
|
45
|
-
requirement: &
|
45
|
+
requirement: &2157240260 !ruby/object:Gem::Requirement
|
46
46
|
none: false
|
47
47
|
requirements:
|
48
48
|
- - ~>
|
@@ -50,10 +50,10 @@ dependencies:
|
|
50
50
|
version: 2.6.0
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
|
-
version_requirements: *
|
53
|
+
version_requirements: *2157240260
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: sinatra
|
56
|
-
requirement: &
|
56
|
+
requirement: &2157239520 !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
59
|
- - ! '>='
|
@@ -61,10 +61,10 @@ dependencies:
|
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
|
-
version_requirements: *
|
64
|
+
version_requirements: *2157239520
|
65
65
|
- !ruby/object:Gem::Dependency
|
66
66
|
name: mini_magick
|
67
|
-
requirement: &
|
67
|
+
requirement: &2157238560 !ruby/object:Gem::Requirement
|
68
68
|
none: false
|
69
69
|
requirements:
|
70
70
|
- - ! '>='
|
@@ -72,10 +72,10 @@ dependencies:
|
|
72
72
|
version: '0'
|
73
73
|
type: :development
|
74
74
|
prerelease: false
|
75
|
-
version_requirements: *
|
75
|
+
version_requirements: *2157238560
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: rake
|
78
|
-
requirement: &
|
78
|
+
requirement: &2157237520 !ruby/object:Gem::Requirement
|
79
79
|
none: false
|
80
80
|
requirements:
|
81
81
|
- - ! '>='
|
@@ -83,10 +83,10 @@ dependencies:
|
|
83
83
|
version: '0'
|
84
84
|
type: :development
|
85
85
|
prerelease: false
|
86
|
-
version_requirements: *
|
86
|
+
version_requirements: *2157237520
|
87
87
|
- !ruby/object:Gem::Dependency
|
88
88
|
name: appraisal
|
89
|
-
requirement: &
|
89
|
+
requirement: &2157236860 !ruby/object:Gem::Requirement
|
90
90
|
none: false
|
91
91
|
requirements:
|
92
92
|
- - ~>
|
@@ -94,7 +94,7 @@ dependencies:
|
|
94
94
|
version: 0.4.0
|
95
95
|
type: :development
|
96
96
|
prerelease: false
|
97
|
-
version_requirements: *
|
97
|
+
version_requirements: *2157236860
|
98
98
|
description:
|
99
99
|
email: support@thoughtbot.com
|
100
100
|
executables: []
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- lib/capybara/webkit/matchers.rb
|
132
132
|
- lib/capybara_webkit_builder.rb
|
133
133
|
- spec/browser_spec.rb
|
134
|
+
- spec/capybara_webkit_builder_spec.rb
|
134
135
|
- spec/cookie_jar_spec.rb
|
135
136
|
- spec/driver_rendering_spec.rb
|
136
137
|
- spec/driver_spec.rb
|
@@ -151,6 +152,8 @@ files:
|
|
151
152
|
- src/Connection.h
|
152
153
|
- src/ConsoleMessages.cpp
|
153
154
|
- src/ConsoleMessages.h
|
155
|
+
- src/CurrentUrl.cpp
|
156
|
+
- src/CurrentUrl.h
|
154
157
|
- src/Evaluate.cpp
|
155
158
|
- src/Evaluate.h
|
156
159
|
- src/Execute.cpp
|
@@ -234,6 +237,7 @@ specification_version: 3
|
|
234
237
|
summary: Headless Webkit driver for Capybara
|
235
238
|
test_files:
|
236
239
|
- spec/browser_spec.rb
|
240
|
+
- spec/capybara_webkit_builder_spec.rb
|
237
241
|
- spec/cookie_jar_spec.rb
|
238
242
|
- spec/driver_rendering_spec.rb
|
239
243
|
- spec/driver_spec.rb
|