kelp 0.2.4 → 0.2.5
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 +15 -0
- data/History.md +6 -0
- data/README.md +18 -0
- data/examples/sinatra_app/views/form.erb +7 -0
- data/examples/sinatra_app/views/form2.erb +7 -0
- data/kelp.gemspec +2 -2
- data/lib/kelp/field.rb +2 -2
- data/lib/kelp/visibility.rb +1 -1
- data/spec/field_spec.rb +21 -0
- metadata +9 -25
checksums.yaml
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
!binary "U0hBMQ==":
|
|
3
|
+
metadata.gz: !binary |-
|
|
4
|
+
OTI0ZjAxY2UyZTQ4MGU3NDg0YWQ2Yjg2NDM0ZTgwYzk5MjBhMTIyNQ==
|
|
5
|
+
data.tar.gz: !binary |-
|
|
6
|
+
YmI3YjlmYWI0ZmI4NzQ3OTM1YzhhODkxMjQ3ZjBiZmNlNmQ1MmJjMg==
|
|
7
|
+
SHA512:
|
|
8
|
+
metadata.gz: !binary |-
|
|
9
|
+
ODdkOTYxMzMyMTExMjcyNDRhMWYzNDEwYjU0MzhlNjg4MmI0MjBmMTRmMGQw
|
|
10
|
+
ZWQ5ZWJjYjFkNDRkN2EyNDA4NTUxYTZiZWIzYWU3ZDNhOTI0NDAxZmY1NWQx
|
|
11
|
+
NmI1MzU2ZDdlZDUwMmZkMjkwNjI3MGIxYmE3ZjhiOGQ2MDliN2M=
|
|
12
|
+
data.tar.gz: !binary |-
|
|
13
|
+
M2YwNjZkZWJmODRlNDQzOGQxMTY0Nzk1YmY4NTNlNGEwODkxMjg3Mzk1ZDgw
|
|
14
|
+
Y2YxZWI5NzUxYWI0MjcxOWI0ZmNjYWY1NjMyMzYwMjI4MGM1YTQwNTg2NTNh
|
|
15
|
+
MzA0OGUxYjE1M2UzNzQxMzBjMmY1MmJjZjQxM2U0MGQ0NjRhYzI=
|
data/History.md
CHANGED
data/README.md
CHANGED
|
@@ -60,6 +60,24 @@ Then add the relevant modules to Cucumber's `World`:
|
|
|
60
60
|
|
|
61
61
|
World(Kelp::Visibility)
|
|
62
62
|
|
|
63
|
+
Or, to include all available helpers:
|
|
64
|
+
|
|
65
|
+
require 'kelp/attribute'
|
|
66
|
+
require 'kelp/checkbox'
|
|
67
|
+
require 'kelp/dropdown'
|
|
68
|
+
require 'kelp/field'
|
|
69
|
+
require 'kelp/navigation'
|
|
70
|
+
require 'kelp/scoping'
|
|
71
|
+
require 'kelp/visibility'
|
|
72
|
+
|
|
73
|
+
World(Kelp::Attribute)
|
|
74
|
+
World(Kelp::Checkbox)
|
|
75
|
+
World(Kelp::Dropdown)
|
|
76
|
+
World(Kelp::Field)
|
|
77
|
+
World(Kelp::Navigation)
|
|
78
|
+
World(Kelp::Scoping)
|
|
79
|
+
World(Kelp::Visibility)
|
|
80
|
+
|
|
63
81
|
Many of the provided helpers are designed to make it easier to do things you
|
|
64
82
|
might otherwise be tempted to do with nested step definitions. For example, if
|
|
65
83
|
you need to verify the presence of several text strings on a webpage, you might
|
|
@@ -96,6 +96,13 @@
|
|
|
96
96
|
</form>
|
|
97
97
|
</div>
|
|
98
98
|
|
|
99
|
+
<div id="ambiguous_on_name_and_id">
|
|
100
|
+
<form action="#" method="">
|
|
101
|
+
<p><label for="name_is_id">Name or ID</label></p>
|
|
102
|
+
<p><input id="name_is_id" name="name_is_id" type="text" /></p>
|
|
103
|
+
</form>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
99
106
|
</body>
|
|
100
107
|
</html>
|
|
101
108
|
|
|
@@ -122,6 +122,13 @@
|
|
|
122
122
|
</form>
|
|
123
123
|
</div>
|
|
124
124
|
|
|
125
|
+
<div id="ambiguous_on_name_and_id">
|
|
126
|
+
<form action="#" method="">
|
|
127
|
+
<p><label for="name_is_id">Name or ID</label></p>
|
|
128
|
+
<p><input id="name_is_id" name="name_is_id" type="text" /></p>
|
|
129
|
+
</form>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
125
132
|
</body>
|
|
126
133
|
</html>
|
|
127
134
|
|
data/kelp.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = "kelp"
|
|
3
|
-
s.version = "0.2.
|
|
3
|
+
s.version = "0.2.5"
|
|
4
4
|
s.summary = "Cucumber helper methods"
|
|
5
5
|
s.description = <<-EOS
|
|
6
6
|
Kelp is a collection of helper methods for Cucumber to ease the process of
|
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
s.homepage = "http://github.com/wapcaplet/kelp"
|
|
13
13
|
s.platform = Gem::Platform::RUBY
|
|
14
14
|
|
|
15
|
-
s.add_dependency 'capybara', '
|
|
15
|
+
s.add_dependency 'capybara', '>= 2.0'
|
|
16
16
|
|
|
17
17
|
s.add_development_dependency 'sinatra'
|
|
18
18
|
s.add_development_dependency 'rspec', '>= 2.2.0'
|
data/lib/kelp/field.rb
CHANGED
|
@@ -166,7 +166,7 @@ module Kelp
|
|
|
166
166
|
def field_should_be_empty(field, scope={})
|
|
167
167
|
in_scope(scope) do
|
|
168
168
|
_field = nice_find_field(field)
|
|
169
|
-
if !(_field.nil? || _field.value.nil? || _field.value == '')
|
|
169
|
+
if !(_field.nil? || _field.value.nil? || _field.value.strip == '')
|
|
170
170
|
raise Kelp::Unexpected,
|
|
171
171
|
"Expected field '#{field}' to be empty, but value is '#{_field.value}'"
|
|
172
172
|
end
|
|
@@ -265,7 +265,7 @@ module Kelp
|
|
|
265
265
|
field_values.each do |field, value|
|
|
266
266
|
_field = find_field(field)
|
|
267
267
|
# For nil/empty, check for nil field or nil value
|
|
268
|
-
if value.nil? or value.empty?
|
|
268
|
+
if value.nil? or value.strip.empty?
|
|
269
269
|
field_should_be_empty(field)
|
|
270
270
|
# If field is a dropdown
|
|
271
271
|
elsif _field.tag_name == 'select'
|
data/lib/kelp/visibility.rb
CHANGED
|
@@ -189,7 +189,7 @@ module Kelp
|
|
|
189
189
|
#
|
|
190
190
|
def should_not_see_button(button_text, scope={})
|
|
191
191
|
in_scope(scope) do
|
|
192
|
-
xpath = XPath::HTML.button(button_text)
|
|
192
|
+
xpath = XPath::HTML.button(button_text)[~ XPath.attr(:disabled)]
|
|
193
193
|
if page.has_xpath?(xpath)
|
|
194
194
|
raise Kelp::Unexpected, "Did not expect to see button '#{button_text}', but button exists."
|
|
195
195
|
end
|
data/spec/field_spec.rb
CHANGED
|
@@ -58,12 +58,20 @@ describe Kelp::Field, "field_should_contain" do
|
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
+
context "field with id == name" do
|
|
62
|
+
it "has the given value" do
|
|
63
|
+
fill_in "name_is_id", :with => "Foo"
|
|
64
|
+
field_should_contain "name_is_id", "Foo"
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
61
68
|
context "field with label" do
|
|
62
69
|
it "has the given value" do
|
|
63
70
|
fill_in "First name", :with => "Brian"
|
|
64
71
|
field_should_contain "First name", "Brian"
|
|
65
72
|
end
|
|
66
73
|
end
|
|
74
|
+
|
|
67
75
|
end
|
|
68
76
|
|
|
69
77
|
context "fails when" do
|
|
@@ -97,6 +105,13 @@ describe Kelp::Field, "field_should_contain" do
|
|
|
97
105
|
end
|
|
98
106
|
end
|
|
99
107
|
|
|
108
|
+
context "field with id == name" do
|
|
109
|
+
it "does not have the given value" do
|
|
110
|
+
lambda do
|
|
111
|
+
field_should_contain "name_is_id", "Stewie"
|
|
112
|
+
end.should raise_error(Kelp::Unexpected)
|
|
113
|
+
end
|
|
114
|
+
end
|
|
100
115
|
end
|
|
101
116
|
|
|
102
117
|
end
|
|
@@ -255,6 +270,11 @@ describe Kelp::Field, "fill_in_field" do
|
|
|
255
270
|
field_should_contain "Life story", "I was born."
|
|
256
271
|
end
|
|
257
272
|
|
|
273
|
+
it "filling a single field where name == id" do
|
|
274
|
+
fill_in_field "name_is_id", "Who"
|
|
275
|
+
field_should_contain "name_is_id", "Who"
|
|
276
|
+
end
|
|
277
|
+
|
|
258
278
|
it "checking a checkbox" do
|
|
259
279
|
fill_in_field "I like cheese", "checked"
|
|
260
280
|
checkbox_should_be_checked "I like cheese"
|
|
@@ -285,6 +305,7 @@ describe Kelp::Field, "fill_in_field" do
|
|
|
285
305
|
fill_in_field_within "#person_form", "First name", "Mel"
|
|
286
306
|
field_should_contain_within "#person_form", "First name", "Mel"
|
|
287
307
|
end
|
|
308
|
+
|
|
288
309
|
end
|
|
289
310
|
|
|
290
311
|
context "fails when" do
|
metadata
CHANGED
|
@@ -1,36 +1,32 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kelp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.2.5
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Eric Pierce
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2015-01-06 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: capybara
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- -
|
|
17
|
+
- - ! '>='
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 2.0
|
|
19
|
+
version: '2.0'
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- -
|
|
24
|
+
- - ! '>='
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: 2.0
|
|
26
|
+
version: '2.0'
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: sinatra
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
31
|
- - ! '>='
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
@@ -38,7 +34,6 @@ dependencies:
|
|
|
38
34
|
type: :development
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
38
|
- - ! '>='
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
@@ -46,7 +41,6 @@ dependencies:
|
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: rspec
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
45
|
- - ! '>='
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
@@ -54,7 +48,6 @@ dependencies:
|
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
52
|
- - ! '>='
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
@@ -62,7 +55,6 @@ dependencies:
|
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
|
63
56
|
name: rspec-rails
|
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
58
|
requirements:
|
|
67
59
|
- - ! '>='
|
|
68
60
|
- !ruby/object:Gem::Version
|
|
@@ -70,7 +62,6 @@ dependencies:
|
|
|
70
62
|
type: :development
|
|
71
63
|
prerelease: false
|
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
65
|
requirements:
|
|
75
66
|
- - ! '>='
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
@@ -78,7 +69,6 @@ dependencies:
|
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
|
79
70
|
name: simplecov
|
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
72
|
requirements:
|
|
83
73
|
- - ! '>='
|
|
84
74
|
- !ruby/object:Gem::Version
|
|
@@ -86,7 +76,6 @@ dependencies:
|
|
|
86
76
|
type: :development
|
|
87
77
|
prerelease: false
|
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
79
|
requirements:
|
|
91
80
|
- - ! '>='
|
|
92
81
|
- !ruby/object:Gem::Version
|
|
@@ -94,7 +83,6 @@ dependencies:
|
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
|
95
84
|
name: webrat
|
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
86
|
requirements:
|
|
99
87
|
- - ! '>='
|
|
100
88
|
- !ruby/object:Gem::Version
|
|
@@ -102,7 +90,6 @@ dependencies:
|
|
|
102
90
|
type: :development
|
|
103
91
|
prerelease: false
|
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
93
|
requirements:
|
|
107
94
|
- - ! '>='
|
|
108
95
|
- !ruby/object:Gem::Version
|
|
@@ -110,7 +97,6 @@ dependencies:
|
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
|
111
98
|
name: cucumber
|
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
100
|
requirements:
|
|
115
101
|
- - ! '>='
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
@@ -118,7 +104,6 @@ dependencies:
|
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
107
|
requirements:
|
|
123
108
|
- - ! '>='
|
|
124
109
|
- !ruby/object:Gem::Version
|
|
@@ -193,26 +178,25 @@ files:
|
|
|
193
178
|
- spec/xpath_spec.rb
|
|
194
179
|
homepage: http://github.com/wapcaplet/kelp
|
|
195
180
|
licenses: []
|
|
181
|
+
metadata: {}
|
|
196
182
|
post_install_message:
|
|
197
183
|
rdoc_options: []
|
|
198
184
|
require_paths:
|
|
199
185
|
- lib
|
|
200
186
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
201
|
-
none: false
|
|
202
187
|
requirements:
|
|
203
188
|
- - ! '>='
|
|
204
189
|
- !ruby/object:Gem::Version
|
|
205
190
|
version: '0'
|
|
206
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
|
-
none: false
|
|
208
192
|
requirements:
|
|
209
193
|
- - ! '>='
|
|
210
194
|
- !ruby/object:Gem::Version
|
|
211
195
|
version: '0'
|
|
212
196
|
requirements: []
|
|
213
197
|
rubyforge_project:
|
|
214
|
-
rubygems_version:
|
|
198
|
+
rubygems_version: 2.2.2
|
|
215
199
|
signing_key:
|
|
216
|
-
specification_version:
|
|
200
|
+
specification_version: 4
|
|
217
201
|
summary: Cucumber helper methods
|
|
218
202
|
test_files: []
|