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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02ad3535fdad745cf9b7aac9b2da913420070788
4
- data.tar.gz: 2fa85fc80384cba0e272bf026158382946836cf7
3
+ metadata.gz: 60209d81bf188faa0999eaefc0ed131547e4bcc1
4
+ data.tar.gz: 69865244998cee40ed5a6a49225f6ae555962ecf
5
5
  SHA512:
6
- metadata.gz: 542d81525108392ad7e40e400f519b326543b791c2175f334a86d82efcdef8cfd085d2a4dacef87be243c6508de057eb3e4c53e78e23c7493db0cfbb51a6cbaf
7
- data.tar.gz: 610466612a11c0dd32b8d97b50f38a2d85473c9588abe11c76fc3fd6a3948d6bf23b3b32c948a6a2ce59229da2824a67308d7a3fc0858a44e5ba2d68f506cff2
6
+ metadata.gz: f9287cdc79dc08a5c996d8cb7275bbf002e53589f68d009472f057ed66b17391e14d30ed5ff4264bc87f71c26aa2eb76ca1861e5ac25592c4e6715095a6f50b1
7
+ data.tar.gz: 0ce7df637af72ca80c176649c9e9ec456b0ebf6991f0f8e47edc33e81fced0b577ee351ce7cf7c5e016bebb7e39aab01189cf0f8fc35f4a55b562f7adcf39c1c
data/NEWS.md CHANGED
@@ -1,3 +1,9 @@
1
+ New for 1.9.0:
2
+
3
+ * Raise error for Qt version greater than 5.5
4
+ * Fix hovering SVG elements
5
+ * Add basic send_keys implementation
6
+
1
7
  New for 1.8.0:
2
8
 
3
9
  * Allow Capybara 2.6
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
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ gem "mime-types", "< 3.0", :platforms=>[:ruby_19, :jruby_19]
5
6
  gem "capybara", "~> 2.4.0"
6
- gem "mime-types", "< 3.0", platforms: [:ruby_19, :jruby_19]
7
7
 
8
8
  gemspec :path=>"../"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
+ gem "mime-types", "< 3.0", :platforms=>[:ruby_19, :jruby_19]
5
6
  gem "capybara", "~> 2.5.0"
6
- gem "mime-types", "< 3.0", platforms: [:ruby_19, :jruby_19]
7
7
 
8
8
  gemspec :path=>"../"
@@ -2,7 +2,7 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "capybara", github: "jnicklas/capybara"
6
- gem "mime-types", "<3.0", platforms: [:ruby_19, :jruby_19]
5
+ gem "mime-types", "< 3.0", :platforms=>[:ruby_19, :jruby_19]
6
+ gem "capybara", :github=>"jnicklas/capybara"
7
7
 
8
8
  gemspec :path=>"../"
@@ -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
@@ -1,7 +1,7 @@
1
1
  module Capybara
2
2
  module Driver
3
3
  class Webkit
4
- VERSION = "1.8.0".freeze
4
+ VERSION = "1.9.0".freeze
5
5
  end
6
6
  end
7
7
  end
@@ -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)
@@ -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 =~ /Capybara::Session webkit Capybara::Window #(size|resize_to|maximize|close.*no_such_window_error|send_keys)/ || description =~ /Capybara::Session webkit node #send_keys/
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
 
@@ -184,13 +184,20 @@ Capybara = {
184
184
  },
185
185
 
186
186
  clickPosition: function(node) {
187
- var rects = node.getClientRects();
188
- var rect;
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")) {
@@ -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.8.0
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-01-22 00:00:00.000000000 Z
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: []