capybara-webkit 1.8.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|