capybara-webkit 1.8.0 → 1.9.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.
- checksums.yaml +4 -4
- data/NEWS.md +6 -0
- data/README.md +0 -9
- data/gemfiles/2.4.gemfile +1 -1
- data/gemfiles/2.5.gemfile +1 -1
- data/gemfiles/master.gemfile +2 -2
- data/lib/capybara/webkit/node.rb +15 -0
- data/lib/capybara/webkit/version.rb +1 -1
- data/spec/driver_spec.rb +12 -0
- data/spec/spec_helper.rb +4 -2
- data/src/capybara.js +27 -5
- data/src/webkit_server.pro +3 -0
- metadata +3 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60209d81bf188faa0999eaefc0ed131547e4bcc1
|
4
|
+
data.tar.gz: 69865244998cee40ed5a6a49225f6ae555962ecf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9287cdc79dc08a5c996d8cb7275bbf002e53589f68d009472f057ed66b17391e14d30ed5ff4264bc87f71c26aa2eb76ca1861e5ac25592c4e6715095a6f50b1
|
7
|
+
data.tar.gz: 0ce7df637af72ca80c176649c9e9ec456b0ebf6991f0f8e47edc33e81fced0b577ee351ce7cf7c5e016bebb7e39aab01189cf0f8fc35f4a55b562f7adcf39c1c
|
data/NEWS.md
CHANGED
data/README.md
CHANGED
@@ -190,15 +190,6 @@ Thank you, [contributors]!
|
|
190
190
|
[CONTRIBUTING]: CONTRIBUTING.md
|
191
191
|
[contributors]: https://github.com/thoughtbot/capybara-webkit/graphs/contributors
|
192
192
|
|
193
|
-
Need Help?
|
194
|
-
----------
|
195
|
-
|
196
|
-
We offer 1-on-1 coaching. We can help you install Qt, set up Capybara, get
|
197
|
-
started writing integration tests, and track down slow or erratic tests. [Get in
|
198
|
-
touch].
|
199
|
-
|
200
|
-
[Get in touch]: http://coaching.thoughtbot.com/rails/?utm_source=github
|
201
|
-
|
202
193
|
License
|
203
194
|
-------
|
204
195
|
|
data/gemfiles/2.4.gemfile
CHANGED
data/gemfiles/2.5.gemfile
CHANGED
data/gemfiles/master.gemfile
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
6
|
-
gem "
|
5
|
+
gem "mime-types", "< 3.0", :platforms=>[:ruby_19, :jruby_19]
|
6
|
+
gem "capybara", :github=>"jnicklas/capybara"
|
7
7
|
|
8
8
|
gemspec :path=>"../"
|
data/lib/capybara/webkit/node.rb
CHANGED
@@ -47,6 +47,21 @@ module Capybara::Webkit
|
|
47
47
|
invoke "set", *[value].flatten
|
48
48
|
end
|
49
49
|
|
50
|
+
def send_keys(*keys)
|
51
|
+
invoke("sendKeys", keys.map { |key|
|
52
|
+
case key
|
53
|
+
when :space
|
54
|
+
" "
|
55
|
+
when :enter
|
56
|
+
"\r"
|
57
|
+
when String
|
58
|
+
key.to_s
|
59
|
+
else
|
60
|
+
raise Capybara::NotSupportedByDriverError.new
|
61
|
+
end
|
62
|
+
}.join)
|
63
|
+
end
|
64
|
+
|
50
65
|
def select_option
|
51
66
|
invoke "selectOption"
|
52
67
|
end
|
data/spec/driver_spec.rb
CHANGED
@@ -1526,6 +1526,7 @@ describe Capybara::Webkit::Driver do
|
|
1526
1526
|
#hover { max-width: 30em; }
|
1527
1527
|
#hover span { line-height: 1.5; }
|
1528
1528
|
#hover span:hover + .hidden { display: block; }
|
1529
|
+
#circle_hover:hover + .hidden { display: block; }
|
1529
1530
|
.hidden { display: none; }
|
1530
1531
|
</style>
|
1531
1532
|
</head>
|
@@ -1537,6 +1538,10 @@ describe Capybara::Webkit::Driver do
|
|
1537
1538
|
<span>This really long paragraph has a lot of text and will wrap. This sentence ensures that we have four lines of text.</span>
|
1538
1539
|
<div class="hidden">Text that only shows on hover.</div>
|
1539
1540
|
</div>
|
1541
|
+
<svg height="200" width="300">
|
1542
|
+
<circle id="circle_hover" cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
|
1543
|
+
<text class="hidden" y="110"> Sibling that only shows when circle is hovered over.</text>
|
1544
|
+
</svg>
|
1540
1545
|
<form action="/" method="GET">
|
1541
1546
|
<select id="change_select" name="change_select">
|
1542
1547
|
<option value="1" id="option-1" selected="selected">one</option>
|
@@ -1574,6 +1579,13 @@ describe Capybara::Webkit::Driver do
|
|
1574
1579
|
driver.find_css("#hover").first.visible_text.should =~ /Text that only shows on hover/
|
1575
1580
|
end
|
1576
1581
|
|
1582
|
+
it "hovers an svg element" do
|
1583
|
+
# visible_text does not work for SVG elements. It returns all the text.
|
1584
|
+
driver.find_css("text").first.should_not be_visible
|
1585
|
+
driver.find_css("#circle_hover").first.hover
|
1586
|
+
driver.find_css("text").first.should be_visible
|
1587
|
+
end
|
1588
|
+
|
1577
1589
|
it "hovers an element off the screen" do
|
1578
1590
|
driver.resize_window(200, 200)
|
1579
1591
|
driver.evaluate_script(<<-JS)
|
data/spec/spec_helper.rb
CHANGED
@@ -49,9 +49,11 @@ RSpec.configure do |c|
|
|
49
49
|
|
50
50
|
# We can't support outerWidth and outerHeight without a visible window.
|
51
51
|
# We focus the next window instead of failing when closing windows.
|
52
|
-
# Node #send_keys is not yet implemented.
|
53
52
|
c.filter_run_excluding :full_description => lambda { |description, metadata|
|
54
|
-
description
|
53
|
+
(description !~ /Capybara::Session webkit node #send_keys should send a string of keys to an element/) && (
|
54
|
+
description =~ /Capybara::Session webkit Capybara::Window #(size|resize_to|maximize|close.*no_such_window_error|send_keys)/ ||
|
55
|
+
description =~ /Capybara::Session webkit node #send_keys/
|
56
|
+
)
|
55
57
|
}
|
56
58
|
end
|
57
59
|
|
data/src/capybara.js
CHANGED
@@ -184,13 +184,20 @@ Capybara = {
|
|
184
184
|
},
|
185
185
|
|
186
186
|
clickPosition: function(node) {
|
187
|
-
|
188
|
-
|
187
|
+
if(node.namespaceURI == 'http://www.w3.org/2000/svg') {
|
188
|
+
var rect = node.getBoundingClientRect();
|
189
189
|
|
190
|
-
for (var i = 0; i < rects.length; i++) {
|
191
|
-
rect = rects[i];
|
192
190
|
if (rect.width > 0 && rect.height > 0)
|
193
191
|
return CapybaraInvocation.clickPosition(node, rect.left, rect.top, rect.width, rect.height);
|
192
|
+
} else {
|
193
|
+
var rects = node.getClientRects();
|
194
|
+
var rect;
|
195
|
+
|
196
|
+
for (var i = 0; i < rects.length; i++) {
|
197
|
+
rect = rects[i];
|
198
|
+
if (rect.width > 0 && rect.height > 0)
|
199
|
+
return CapybaraInvocation.clickPosition(node, rect.left, rect.top, rect.width, rect.height);
|
200
|
+
}
|
194
201
|
}
|
195
202
|
|
196
203
|
var visible = this.isNodeVisible(node);
|
@@ -269,6 +276,20 @@ Capybara = {
|
|
269
276
|
return true;
|
270
277
|
},
|
271
278
|
|
279
|
+
sendKeys: function (index, keys) {
|
280
|
+
var strindex, length;
|
281
|
+
|
282
|
+
length = keys.length;
|
283
|
+
|
284
|
+
if (length) {
|
285
|
+
this.focus(index);
|
286
|
+
}
|
287
|
+
|
288
|
+
for (strindex = 0; strindex < length; strindex++) {
|
289
|
+
CapybaraInvocation.keypress(keys[strindex]);
|
290
|
+
}
|
291
|
+
},
|
292
|
+
|
272
293
|
set: function (index, value) {
|
273
294
|
var length, maxLength, node, strindex, textTypes, type;
|
274
295
|
|
@@ -293,8 +314,9 @@ Capybara = {
|
|
293
314
|
CapybaraInvocation.keypress(value[strindex]);
|
294
315
|
}
|
295
316
|
|
296
|
-
if (value
|
317
|
+
if (value === "") {
|
297
318
|
this.trigger(index, "change");
|
319
|
+
}
|
298
320
|
}
|
299
321
|
} else if (type === "checkbox" || type === "radio") {
|
300
322
|
if (node.checked != (value === "true")) {
|
data/src/webkit_server.pro
CHANGED
@@ -176,6 +176,9 @@ SOURCES = \
|
|
176
176
|
RESOURCES = webkit_server.qrc
|
177
177
|
QT += network
|
178
178
|
greaterThan(QT_MAJOR_VERSION, 4) {
|
179
|
+
greaterThan(QT_MAJOR_VERSION, 5) | greaterThan(QT_MINOR_VERSION, 5) {
|
180
|
+
error(capybara-webkit does not support Qt versions greater than 5.5)
|
181
|
+
}
|
179
182
|
QT += webkitwidgets
|
180
183
|
} else {
|
181
184
|
QT += webkit
|
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: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thoughtbot
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2016-
|
16
|
+
date: 2016-03-30 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: capybara
|
@@ -400,21 +400,4 @@ rubygems_version: 2.4.5.1
|
|
400
400
|
signing_key:
|
401
401
|
specification_version: 4
|
402
402
|
summary: Headless Webkit driver for Capybara
|
403
|
-
test_files:
|
404
|
-
- spec/browser_spec.rb
|
405
|
-
- spec/capybara_webkit_builder_spec.rb
|
406
|
-
- spec/configuration_spec.rb
|
407
|
-
- spec/connection_spec.rb
|
408
|
-
- spec/cookie_jar_spec.rb
|
409
|
-
- spec/driver_rendering_spec.rb
|
410
|
-
- spec/driver_resize_window_spec.rb
|
411
|
-
- spec/driver_spec.rb
|
412
|
-
- spec/errors_spec.rb
|
413
|
-
- spec/integration/session_spec.rb
|
414
|
-
- spec/selenium_compatibility_spec.rb
|
415
|
-
- spec/self_signed_ssl_cert.rb
|
416
|
-
- spec/spec_helper.rb
|
417
|
-
- spec/support/app_runner.rb
|
418
|
-
- spec/support/matchers/include_response.rb
|
419
|
-
- spec/support/output_writer.rb
|
420
|
-
has_rdoc:
|
403
|
+
test_files: []
|