capybara-ui 1.0.0 → 1.3.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
- SHA1:
3
- metadata.gz: 8569e04fe7e820a732b875283667700db0021f11
4
- data.tar.gz: eab7f283b1ac93ceb0a1ff5db4d4319bf4f8b687
2
+ SHA256:
3
+ metadata.gz: 566be4cd822be8a8a26f04c7158994d224e36c8d47310c13c4197c3673628510
4
+ data.tar.gz: 64cdb5bb0c58acce07a3ed901d1f119b2723abe336aacf54f587e58169c990d6
5
5
  SHA512:
6
- metadata.gz: 703a2e188f63c0e896b1a9df815dad5df846bcb30882d6618168b207b2f19a6736f84ddfe3c2751ed2cd92f536355c0320e0ea53de0964c562aa0704ac9db33d
7
- data.tar.gz: cd41f9dd5368aba4585a365c321b399aa3c55c329990f68f66b4ebbd1181de4f98dc429c9d85f959176b559035db89e6003d8945ea4cfd0feeb8196d5d18a3cb
6
+ metadata.gz: ef9ae00b13c0dc0de05ee6fce7866fe69468a5abb63426e3bc15c34f0f3ed93722fb4c2317ed7fe4461e9759d2d8200f64fc2343e89fc443c16e94a40ebd20a3
7
+ data.tar.gz: c03f740d4457a54f8e29a31aa9d2552073e99641b2de1c4f38044298c9e9510b0bc7a261256f8148596d055b4c32600ea7fb3a4d12c09060b2b5e5bc3880e440
@@ -1,7 +1,6 @@
1
1
  Capybara.configure do |config|
2
2
  config.match = :one
3
3
  config.exact = true
4
- config.exact_options = true
5
4
  config.ignore_hidden_elements = true
6
5
  config.visible_text_only = true
7
6
  end
@@ -14,11 +14,6 @@ module Capybara
14
14
 
15
15
  self.rescuable_errors = [StandardError]
16
16
 
17
- if defined?(RSpec)
18
- require 'rspec/expectations'
19
- self.rescuable_errors << RSpec::Expectations::ExpectationNotMetError
20
- end
21
-
22
17
  class Timer
23
18
  class Frozen < StandardError; end
24
19
 
@@ -1,12 +1,20 @@
1
+ def permitted_rspec_version?
2
+ defined? RSpec && actual_rspec_expectations_version >= required_rspec_expectations_version
3
+ end
4
+
5
+ def actual_rspec_expectations_version
6
+ defined? RSpec && Gem::Version.new(RSpec::Expectations::Version::STRING)
7
+ end
8
+
9
+ def required_rspec_expectations_version
10
+ Gem::Version.new(Capybara::UI::OptionalDependencies::RSPEC_VERSION)
11
+ end
12
+
1
13
  begin
2
14
  require 'rspec/matchers'
3
- require 'rspec/version'
15
+ require 'rspec/expectations/version'
4
16
 
5
- unless Gem::Version.new(RSpec::Version::STRING) >= Gem::Version.new(Capybara::UI::OptionalDependencies::RSPEC_VERSION)
6
- raise LoadError,
7
- "requires RSpec version #{Capybara::UI::OptionalDependencies::RSPEC_VERSION} or later. " \
8
- "You have #{RSpec::Version::STRING}."
9
- end
17
+ raise LoadError unless permitted_rspec_version?
10
18
 
11
19
  RSpec::Matchers.define :see do |widget_name, *args|
12
20
  match do |role|
@@ -17,6 +25,10 @@ begin
17
25
  end
18
26
  end
19
27
 
28
+ failure_message do
29
+ "Could not find widget(#{widget_name}, args.join(', ')) on page."
30
+ end
31
+
20
32
  match_when_negated do |role|
21
33
  begin
22
34
  eventually { !role.see?(widget_name, *args) }
@@ -24,5 +36,13 @@ begin
24
36
  false
25
37
  end
26
38
  end
39
+
40
+ failure_message_when_negated do
41
+ "Unexpectedly found widget(#{widget_name}, args.join(', ')) on page."
42
+ end
27
43
  end
44
+
45
+ rescue LoadError
46
+ "RSpec Expectations version #{required_rspec_expectations_version} or later is required. " \
47
+ "You have #{actual_rspec_expectations_version}."
28
48
  end
@@ -0,0 +1,3 @@
1
+ require 'rspec/expectations'
2
+
3
+ Capybara::UI::Checkpoint.rescuable_errors << RSpec::Expectations::ExpectationNotMetError
@@ -1,5 +1,5 @@
1
1
  module Capybara
2
2
  module UI
3
- VERSION = '1.0.0'
3
+ VERSION = '1.3.0'
4
4
  end
5
5
  end
@@ -29,7 +29,7 @@ module Capybara
29
29
  def Decimal(*selector)
30
30
  Widget(selector) { |text|
31
31
  # ensure we can convert to float first
32
- Float(text) && BigDecimal.new(text)
32
+ Float(text) && BigDecimal(text)
33
33
  }
34
34
  end
35
35
  end
@@ -2,7 +2,7 @@ module Capybara
2
2
  module UI
3
3
  module CucumberMethods
4
4
  begin
5
- require 'cucumber/ast/table'
5
+ require 'cucumber/multiline_argument/data_table'
6
6
 
7
7
  # Compares this widget with the given Cucumber +table+.
8
8
  #
@@ -24,7 +24,7 @@ module Capybara
24
24
  to_table = self.to_table
25
25
 
26
26
  if ignore_case == true
27
- table = downcase_table(table)
27
+ table = Cucumber::MultilineArgument::DataTable.from(downcase_array(table.raw))
28
28
  to_table = downcase_array(to_table)
29
29
  end
30
30
 
@@ -33,10 +33,6 @@ module Capybara
33
33
 
34
34
  private
35
35
 
36
- def downcase_table(table)
37
- new_cucumber_table downcase_array(table.raw)
38
- end
39
-
40
36
  def downcase_array(array)
41
37
  array.map do |item|
42
38
  case item
@@ -63,10 +59,6 @@ module Capybara
63
59
  end
64
60
  end
65
61
 
66
- def new_cucumber_table(table)
67
- Cucumber::Ast::Table.new(table)
68
- end
69
-
70
62
  rescue LoadError
71
63
  # *crickets*
72
64
  end
@@ -313,7 +313,7 @@ module Capybara
313
313
  end
314
314
 
315
315
  # Converts the current field group into a table suitable for diff'ing
316
- # with Cucumber::Ast::Table.
316
+ # with Cucumber::MultilineArgument::DataTable.
317
317
  #
318
318
  # Field labels are determined by the widget name.
319
319
  #
@@ -195,7 +195,9 @@ module Capybara
195
195
  end
196
196
 
197
197
  def items
198
- item_filter.nodes(self).map { |node| item_for(node) }
198
+ Capybara.using_wait_time(0) do
199
+ item_filter.nodes(self).map { |node| item_for(node) }
200
+ end
199
201
  end
200
202
  end
201
203
  end
@@ -2,7 +2,7 @@ module Capybara
2
2
  module UI
3
3
  class ListItem < Widget
4
4
  # Returns this ListItem's contents formatted as a row, for comparison with a
5
- # Cucumber::Ast::Table. By default, it simply returns an array with a single
5
+ # Cucumber::MultilineArgument::DataTable. By default, it simply returns an array with a single
6
6
  # element--the widget's text.
7
7
  #
8
8
  # In general, this method will be called by List#to_table.
@@ -13,7 +13,7 @@ module Capybara
13
13
  # Usually, if the default return value isn't what you want, you'll probably
14
14
  # want to return a Hash where both keys and values are strings, so that you
15
15
  # don't need to worry about column order when you pass the table to
16
- # Cucumber::Ast::Table#diff!.
16
+ # Cucumber::MultilineArgument::DataTable#diff!.
17
17
  #
18
18
  # See List#to_table for more information.
19
19
  def to_row
@@ -2,7 +2,13 @@ module Capybara
2
2
  module UI
3
3
  class StringValue < String
4
4
  def to_date(format = nil)
5
- format ? Date.strptime(self, format) : super()
5
+ if format
6
+ Date.strptime(self, format)
7
+ elsif defined?(super)
8
+ super()
9
+ else
10
+ Date.parse(self)
11
+ end
6
12
  end
7
13
 
8
14
  def to_key
@@ -9,19 +9,23 @@ module Capybara
9
9
  end
10
10
 
11
11
  def node(parent_widget, *args)
12
- parent_widget.root.find(*capybara_selector(*args))
12
+ a, kw = capybara_selector(*args)
13
+ parent_widget.root.find(*a, **kw)
13
14
  end
14
15
 
15
16
  def node?(parent_widget, *args)
16
- parent_widget.root.has_selector?(*capybara_selector(*args))
17
+ a, kw = capybara_selector(*args)
18
+ parent_widget.root.has_selector?(*a, **kw)
17
19
  end
18
20
 
19
21
  def nodeless?(parent_widget, *args)
20
- parent_widget.root.has_no_selector?(*capybara_selector(*args))
22
+ a, kw = capybara_selector(*args)
23
+ parent_widget.root.has_no_selector?(*a, **kw)
21
24
  end
22
25
 
23
26
  def nodes(parent_widget, *args)
24
- parent_widget.root.all(*capybara_selector(*args))
27
+ a, kw = capybara_selector(*args)
28
+ parent_widget.root.all(*a, **kw)
25
29
  end
26
30
 
27
31
  private
@@ -39,9 +43,9 @@ module Capybara
39
43
  defaults = {:wait => 0}
40
44
 
41
45
  if Hash === selector.last
42
- selector + [defaults.merge(selector.pop)]
46
+ return selector, defaults.merge(selector.pop)
43
47
  else
44
- selector + [defaults]
48
+ return selector, defaults
45
49
  end
46
50
  end
47
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Leal
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-22 00:00:00.000000000 Z
12
+ date: 2021-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chronic
@@ -31,70 +31,98 @@ dependencies:
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.5'
34
+ version: '3.0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '2.5'
41
+ version: '3.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rexml
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: rspec-given
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
- - - "~>"
60
+ - - ">="
47
61
  - !ruby/object:Gem::Version
48
- version: 3.5.0
62
+ version: '3.8'
49
63
  type: :development
50
64
  prerelease: false
51
65
  version_requirements: !ruby/object:Gem::Requirement
52
66
  requirements:
53
- - - "~>"
67
+ - - ">="
54
68
  - !ruby/object:Gem::Version
55
- version: 3.5.0
69
+ version: '3.8'
56
70
  - !ruby/object:Gem::Dependency
57
- name: capybara-webkit
71
+ name: selenium-webdriver
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
- - - "~>"
74
+ - - ">="
61
75
  - !ruby/object:Gem::Version
62
- version: 1.7.0
76
+ version: '0'
63
77
  type: :development
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
- - - "~>"
81
+ - - ">="
68
82
  - !ruby/object:Gem::Version
69
- version: 1.7.0
83
+ version: '0'
70
84
  - !ruby/object:Gem::Dependency
71
- name: poltergeist
85
+ name: webdrivers
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
- - - "~>"
88
+ - - ">="
75
89
  - !ruby/object:Gem::Version
76
- version: 1.5.0
90
+ version: '0'
77
91
  type: :development
78
92
  prerelease: false
79
93
  version_requirements: !ruby/object:Gem::Requirement
80
94
  requirements:
81
- - - "~>"
95
+ - - ">="
82
96
  - !ruby/object:Gem::Version
83
- version: 1.5.0
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: cuprite
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
84
112
  - !ruby/object:Gem::Dependency
85
113
  name: cucumber
86
114
  requirement: !ruby/object:Gem::Requirement
87
115
  requirements:
88
- - - "~>"
116
+ - - ">="
89
117
  - !ruby/object:Gem::Version
90
- version: 1.3.0
118
+ version: '5.3'
91
119
  type: :development
92
120
  prerelease: false
93
121
  version_requirements: !ruby/object:Gem::Requirement
94
122
  requirements:
95
- - - "~>"
123
+ - - ">="
96
124
  - !ruby/object:Gem::Version
97
- version: 1.3.0
125
+ version: '5.3'
98
126
  - !ruby/object:Gem::Dependency
99
127
  name: pry
100
128
  requirement: !ruby/object:Gem::Requirement
@@ -123,6 +151,20 @@ dependencies:
123
151
  - - ">="
124
152
  - !ruby/object:Gem::Version
125
153
  version: '0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: puma
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
126
168
  - !ruby/object:Gem::Dependency
127
169
  name: sinatra
128
170
  requirement: !ruby/object:Gem::Requirement
@@ -143,16 +185,16 @@ dependencies:
143
185
  requirements:
144
186
  - - "~>"
145
187
  - !ruby/object:Gem::Version
146
- version: 4.0.0
188
+ version: 6.1.0
147
189
  type: :development
148
190
  prerelease: false
149
191
  version_requirements: !ruby/object:Gem::Requirement
150
192
  requirements:
151
193
  - - "~>"
152
194
  - !ruby/object:Gem::Version
153
- version: 4.0.0
195
+ version: 6.1.0
154
196
  - !ruby/object:Gem::Dependency
155
- name: codeclimate-test-reporter
197
+ name: simplecov
156
198
  requirement: !ruby/object:Gem::Requirement
157
199
  requirements:
158
200
  - - ">="
@@ -172,7 +214,7 @@ description: Capybara-UI (formerly called Dill) is a Capybara abstraction that m
172
214
  easier.
173
215
  email:
174
216
  - dleal@mojotech.com
175
- - ags@mojotech.com
217
+ - ops@mojotech.com
176
218
  executables: []
177
219
  extensions: []
178
220
  extra_rdoc_files: []
@@ -190,6 +232,7 @@ files:
190
232
  - lib/capybara/ui/rails.rb
191
233
  - lib/capybara/ui/rails/role.rb
192
234
  - lib/capybara/ui/role.rb
235
+ - lib/capybara/ui/rspec.rb
193
236
  - lib/capybara/ui/text_table.rb
194
237
  - lib/capybara/ui/text_table/cell_text.rb
195
238
  - lib/capybara/ui/text_table/mapping.rb
@@ -236,8 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
279
  - !ruby/object:Gem::Version
237
280
  version: '0'
238
281
  requirements: []
239
- rubyforge_project: "[none]"
240
- rubygems_version: 2.4.8
282
+ rubygems_version: 3.0.3
241
283
  signing_key:
242
284
  specification_version: 4
243
285
  summary: A set of helpers to ease integration testing