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 +5 -5
- data/lib/capybara/ui/capybara.rb +0 -1
- data/lib/capybara/ui/checkpoint.rb +0 -5
- data/lib/capybara/ui/matchers.rb +26 -6
- data/lib/capybara/ui/rspec.rb +3 -0
- data/lib/capybara/ui/version.rb +1 -1
- data/lib/capybara/ui/widgets.rb +1 -1
- data/lib/capybara/ui/widgets/cucumber_methods.rb +2 -10
- data/lib/capybara/ui/widgets/field_group.rb +1 -1
- data/lib/capybara/ui/widgets/list.rb +3 -1
- data/lib/capybara/ui/widgets/list_item.rb +2 -2
- data/lib/capybara/ui/widgets/string_value.rb +7 -1
- data/lib/capybara/ui/widgets/widget/node_filter.rb +10 -6
- metadata +70 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 566be4cd822be8a8a26f04c7158994d224e36c8d47310c13c4197c3673628510
|
4
|
+
data.tar.gz: 64cdb5bb0c58acce07a3ed901d1f119b2723abe336aacf54f587e58169c990d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef9ae00b13c0dc0de05ee6fce7866fe69468a5abb63426e3bc15c34f0f3ed93722fb4c2317ed7fe4461e9759d2d8200f64fc2343e89fc443c16e94a40ebd20a3
|
7
|
+
data.tar.gz: c03f740d4457a54f8e29a31aa9d2552073e99641b2de1c4f38044298c9e9510b0bc7a261256f8148596d055b4c32600ea7fb3a4d12c09060b2b5e5bc3880e440
|
data/lib/capybara/ui/capybara.rb
CHANGED
@@ -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
|
|
data/lib/capybara/ui/matchers.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/capybara/ui/version.rb
CHANGED
data/lib/capybara/ui/widgets.rb
CHANGED
@@ -2,7 +2,7 @@ module Capybara
|
|
2
2
|
module UI
|
3
3
|
module CucumberMethods
|
4
4
|
begin
|
5
|
-
require 'cucumber/
|
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 =
|
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
|
@@ -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::
|
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::
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
46
|
+
return selector, defaults.merge(selector.pop)
|
43
47
|
else
|
44
|
-
selector
|
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.
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
69
|
+
version: '3.8'
|
56
70
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
71
|
+
name: selenium-webdriver
|
58
72
|
requirement: !ruby/object:Gem::Requirement
|
59
73
|
requirements:
|
60
|
-
- - "
|
74
|
+
- - ">="
|
61
75
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
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:
|
83
|
+
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
85
|
+
name: webdrivers
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
73
87
|
requirements:
|
74
|
-
- - "
|
88
|
+
- - ">="
|
75
89
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
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:
|
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:
|
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:
|
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:
|
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:
|
195
|
+
version: 6.1.0
|
154
196
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
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
|
-
-
|
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
|
-
|
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
|