kelp 0.2.1 → 0.2.2
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.
- data/.gitignore +1 -0
- data/kelp.gemspec +1 -1
- data/lib/generators/kelp/steps/USAGE +7 -0
- data/lib/generators/kelp/steps/steps_generator.rb +14 -0
- data/lib/generators/kelp/steps/templates/web_steps.rb +498 -0
- metadata +7 -5
- data/Gemfile.lock +0 -115
data/.gitignore
CHANGED
data/kelp.gemspec
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Kelp
|
4
|
+
class StepsGenerator < Rails::Generators::Base
|
5
|
+
def generate
|
6
|
+
copy_file 'web_steps.rb', 'features/step_definitions/web_steps.rb'
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.source_root
|
10
|
+
File.join(File.dirname(__FILE__), 'templates')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,498 @@
|
|
1
|
+
# web_steps.rb
|
2
|
+
#
|
3
|
+
# This file defines some generic step definitions that utilize the helper
|
4
|
+
# methods provided by Kelp. It is auto-generated by running:
|
5
|
+
#
|
6
|
+
# script/generate kelp
|
7
|
+
#
|
8
|
+
# from a Rails application. It's probably a good idea to avoid editing this
|
9
|
+
# file, since it may be overwritten by an upgraded kelp gem later. If you
|
10
|
+
# find any issues with these step definitions and think they can be improved,
|
11
|
+
# please create an issue on Github:
|
12
|
+
#
|
13
|
+
# http://github.com/wapcaplet/kelp/issues
|
14
|
+
#
|
15
|
+
|
16
|
+
require 'kelp'
|
17
|
+
World(Kelp::Attribute)
|
18
|
+
World(Kelp::Checkbox)
|
19
|
+
World(Kelp::Dropdown)
|
20
|
+
World(Kelp::Field)
|
21
|
+
World(Kelp::Helper)
|
22
|
+
World(Kelp::Navigation)
|
23
|
+
World(Kelp::Scoping)
|
24
|
+
World(Kelp::Visibility)
|
25
|
+
|
26
|
+
|
27
|
+
# Patterns shared by step definitions
|
28
|
+
I = /(?:|I )/
|
29
|
+
TEXT = /"([^\"]*)"/
|
30
|
+
PAGE = /"?([^\"]+)"?/
|
31
|
+
REGEX = /\/([^\/]*)\//
|
32
|
+
WITHIN = /(?: within "?([^\"]+)"?)?/
|
33
|
+
ELEMENT = /(?:field|checkbox|dropdown|button)/
|
34
|
+
|
35
|
+
|
36
|
+
# ==========================
|
37
|
+
# NAVIGATION
|
38
|
+
# ==========================
|
39
|
+
|
40
|
+
# Load a given page path directly. `page_name` may be an absolute path,
|
41
|
+
# or an expression that is translated to an absolute path by your `path_to`
|
42
|
+
# function.
|
43
|
+
#
|
44
|
+
# Examples:
|
45
|
+
#
|
46
|
+
# Given I am on the home page
|
47
|
+
# When I go to my account page
|
48
|
+
# And I go to "/logout"
|
49
|
+
#
|
50
|
+
Given /^#{I}(?:am on|go to) #{PAGE}$/ do |page_name|
|
51
|
+
go_to_page(page_name)
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
# Press a button on a webpage.
|
56
|
+
#
|
57
|
+
# Examples:
|
58
|
+
#
|
59
|
+
# When I press "Delete"
|
60
|
+
# And I press "Yes" within "#confirmation"
|
61
|
+
#
|
62
|
+
When /^#{I}press #{TEXT}#{WITHIN}$/ do |button, selector|
|
63
|
+
press(button, :within => selector)
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
# Click a link in a webpage.
|
68
|
+
#
|
69
|
+
# Examples:
|
70
|
+
#
|
71
|
+
# When I follow "List of stuff"
|
72
|
+
# And I follow "Next" within "navigation"
|
73
|
+
#
|
74
|
+
When /^#{I}follow #{TEXT}#{WITHIN}$/ do |link, selector|
|
75
|
+
follow(link, :within => selector)
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
# Click a link in a table row that contains the given text.
|
80
|
+
# This can be used to click the "Edit" link for a specific record.
|
81
|
+
#
|
82
|
+
# Examples:
|
83
|
+
#
|
84
|
+
# When I follow "Edit" next to "John"
|
85
|
+
#
|
86
|
+
When /^#{I}follow #{TEXT} next to #{TEXT}$/ do |link, next_to|
|
87
|
+
click_link_in_row(link, next_to)
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
# Verify that the current path name matches that of the given page.
|
92
|
+
#
|
93
|
+
Then /^#{I}should be on #{PAGE}$/ do |page_name|
|
94
|
+
should_be_on_page(page_name)
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
# Verify that the current URL has the given query parameters.
|
99
|
+
#
|
100
|
+
# Examples:
|
101
|
+
#
|
102
|
+
# Then I should have the following query string:
|
103
|
+
# | fruit | apple |
|
104
|
+
# | color | red |
|
105
|
+
#
|
106
|
+
Then /^#{I}should have the following query string:$/ do |expected_pairs|
|
107
|
+
should_have_query(expected_pairs.rows_hash)
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
# Save the current page as an HTML file, and open it in your preferred browser.
|
112
|
+
# Requires that you have the `launchy` gem installed.
|
113
|
+
Then /^show me the page$/ do
|
114
|
+
save_and_open_page
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
# ==========================
|
119
|
+
# VISIBILITY
|
120
|
+
# ==========================
|
121
|
+
|
122
|
+
|
123
|
+
# Verify that the given string is visible on the webpage.
|
124
|
+
#
|
125
|
+
# Examples:
|
126
|
+
#
|
127
|
+
# Then I should see "Favorite color"
|
128
|
+
# But I should not see "Least favorite color"
|
129
|
+
#
|
130
|
+
Then /^#{I}should see #{TEXT}#{WITHIN}$/ do |text, selector|
|
131
|
+
should_see(text, :within => selector)
|
132
|
+
end
|
133
|
+
|
134
|
+
Then /^#{I}should not see #{TEXT}#{WITHIN}$/ do |text, selector|
|
135
|
+
should_not_see(text, :within => selector)
|
136
|
+
end
|
137
|
+
|
138
|
+
|
139
|
+
# Verify that the given regular expression matches some part of the webpage.
|
140
|
+
#
|
141
|
+
# Examples:
|
142
|
+
#
|
143
|
+
# Then I should see /Favorite (color|food)/
|
144
|
+
#
|
145
|
+
Then /^#{I}should see #{REGEX}#{WITHIN}$/ do |regexp, selector|
|
146
|
+
should_see(Regexp.new(regexp), :within => selector)
|
147
|
+
end
|
148
|
+
|
149
|
+
Then /^#{I}should not see #{REGEX}#{WITHIN}$/ do |regexp, selector|
|
150
|
+
should_not_see(Regexp.new(regexp), :within => selector)
|
151
|
+
end
|
152
|
+
|
153
|
+
|
154
|
+
# Verify the presence or absence of multiple text strings in the page,
|
155
|
+
# or within a given context.
|
156
|
+
#
|
157
|
+
# With `should see`, fails if any of the strings are missing.
|
158
|
+
# With `should not see`, fails if any of the strings are present.
|
159
|
+
#
|
160
|
+
# `items` may be a Cucumber table, or a multi-line string. Examples:
|
161
|
+
#
|
162
|
+
# Then I should see the following:
|
163
|
+
# | Apple crumble |
|
164
|
+
# | Banana cream pie |
|
165
|
+
# | Cherry tart |
|
166
|
+
#
|
167
|
+
# Then I should see the following:
|
168
|
+
# """
|
169
|
+
# Bacon & Eggs
|
170
|
+
# Biscuits & Gravy
|
171
|
+
# Hash Browns
|
172
|
+
# """
|
173
|
+
#
|
174
|
+
Then /^#{I}should see(?: the following)?#{WITHIN}:$/ do |selector, items|
|
175
|
+
should_see listify(items), :within => selector
|
176
|
+
end
|
177
|
+
|
178
|
+
Then /^#{I}should not see(?: the following)?#{WITHIN}:$/ do |selector, items|
|
179
|
+
should_not_see listify(items), :within => selector
|
180
|
+
end
|
181
|
+
|
182
|
+
|
183
|
+
# Verify that one or more table rows containing the correct values exist (or do
|
184
|
+
# not exist). Rows do not need to match exactly, and fields do not need to be
|
185
|
+
# in the same order.
|
186
|
+
#
|
187
|
+
# Examples:
|
188
|
+
#
|
189
|
+
# Then I should see table rows containing:
|
190
|
+
# | Eric | Edit |
|
191
|
+
# | John | Edit |
|
192
|
+
# And I should not see a table row containing:
|
193
|
+
# | Eric | Delete |
|
194
|
+
#
|
195
|
+
Then /^#{I}should see (?:a table row|table rows)#{WITHIN} containing:$/ do |selector, rows|
|
196
|
+
rows.raw.each do |fields|
|
197
|
+
should_see_in_same_row(fields, :within => selector)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
Then /^#{I}should not see (?:a table row|table rows)#{WITHIN} containing:$/ do |selector, rows|
|
202
|
+
rows.raw.each do |fields|
|
203
|
+
should_not_see_in_same_row(fields, :within => selector)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
|
208
|
+
# Verify that expected text exists or does not exist in the same row as
|
209
|
+
# some text. This can be used to ensure the presence or absence of "Edit"
|
210
|
+
# or "Delete" links, or specific data associated with a row in a table.
|
211
|
+
#
|
212
|
+
# Examples:
|
213
|
+
#
|
214
|
+
# Then I should see "Edit" next to "John"
|
215
|
+
# And I should not see "Delete" next to "John"
|
216
|
+
#
|
217
|
+
Then /^#{I}should see #{TEXT} next to #{TEXT}#{WITHIN}$/ do |text, next_to, selector|
|
218
|
+
should_see_in_same_row([text, next_to], :within => selector)
|
219
|
+
end
|
220
|
+
|
221
|
+
Then /^#{I}should not see #{TEXT} next to #{TEXT}#{WITHIN}$/ do |text, next_to, selector|
|
222
|
+
should_not_see_in_same_row([text, next_to], :within => selector)
|
223
|
+
end
|
224
|
+
|
225
|
+
|
226
|
+
# Verify that several expected text strings exist or do not exist in the same
|
227
|
+
# row as some text. Prevents multiple "should see X next to Y" calls. Similar
|
228
|
+
# to "should see a row containing", but targeted toward a specific row.
|
229
|
+
#
|
230
|
+
# Examples:
|
231
|
+
#
|
232
|
+
# Then I should see the following next to "Terry":
|
233
|
+
# | Copy |
|
234
|
+
# | Edit |
|
235
|
+
# | Delete |
|
236
|
+
#
|
237
|
+
# Then I should see the following next to "John":
|
238
|
+
# """
|
239
|
+
# Copy
|
240
|
+
# Edit
|
241
|
+
# Delete
|
242
|
+
# """
|
243
|
+
#
|
244
|
+
Then /^#{I}should see the following next to #{TEXT}#{WITHIN}:$/ do |next_to, selector, items|
|
245
|
+
should_see_in_same_row(listify(items) + [next_to], :within => selector)
|
246
|
+
end
|
247
|
+
|
248
|
+
Then /^#{I}should not see the following next to #{TEXT}#{WITHIN}:$/ do |next_to, selector, items|
|
249
|
+
should_not_see_in_same_row(listify(items) + [next_to], :within => selector)
|
250
|
+
end
|
251
|
+
|
252
|
+
|
253
|
+
# Verify that a given button is or isn't visible on the webpage.
|
254
|
+
#
|
255
|
+
# Examples:
|
256
|
+
#
|
257
|
+
# Then I should see a "Save" button
|
258
|
+
# But I should not see a "Delete" button
|
259
|
+
#
|
260
|
+
Then /^#{I}should see an? #{TEXT} button#{WITHIN}$/ do |button, selector|
|
261
|
+
should_see_button(button, :within => selector)
|
262
|
+
end
|
263
|
+
|
264
|
+
Then /^#{I}should not see an? #{TEXT} button#{WITHIN}$/ do |button, selector|
|
265
|
+
should_not_see_button(button, :within => selector)
|
266
|
+
end
|
267
|
+
|
268
|
+
|
269
|
+
# ==========================
|
270
|
+
# FORMS
|
271
|
+
# ==========================
|
272
|
+
|
273
|
+
|
274
|
+
# Fill in a form field with a given value.
|
275
|
+
#
|
276
|
+
# Examples:
|
277
|
+
#
|
278
|
+
# When I fill in "Favorite color" with "Green"
|
279
|
+
#
|
280
|
+
When /^#{I}fill in #{TEXT} with #{TEXT}#{WITHIN}$/ do |field, value, selector|
|
281
|
+
fill_in_field(field, value, :within => selector)
|
282
|
+
end
|
283
|
+
|
284
|
+
|
285
|
+
# Fill in a form field with a given value.
|
286
|
+
#
|
287
|
+
# Examples:
|
288
|
+
#
|
289
|
+
# When I fill in "Green" for "Favorite color"
|
290
|
+
#
|
291
|
+
When /^#{I}fill in #{TEXT} for #{TEXT}#{WITHIN}$/ do |value, field, selector|
|
292
|
+
fill_in_field(field, value, :within => selector)
|
293
|
+
end
|
294
|
+
|
295
|
+
|
296
|
+
# Fill in multiple form fields from values in a table.
|
297
|
+
# The fields may be textboxes, dropdowns/listboxes, or checkboxes.
|
298
|
+
#
|
299
|
+
# Examples:
|
300
|
+
#
|
301
|
+
# When I fill in the following:
|
302
|
+
# | First name | Alton |
|
303
|
+
# | Last name | Brown |
|
304
|
+
# | Hair | blonde |
|
305
|
+
# | Has TV show | checked |
|
306
|
+
#
|
307
|
+
When /^#{I}fill in the following#{WITHIN}:$/ do |selector, fields|
|
308
|
+
fill_in_fields(fields.rows_hash, :within => selector)
|
309
|
+
end
|
310
|
+
|
311
|
+
|
312
|
+
# Select a value from a dropdown.
|
313
|
+
When /^#{I}select #{TEXT} from #{TEXT}$/ do |value, field|
|
314
|
+
select value, :from => field
|
315
|
+
end
|
316
|
+
|
317
|
+
|
318
|
+
# Check a checkbox.
|
319
|
+
When /^#{I}check #{TEXT}$/ do |field|
|
320
|
+
check field
|
321
|
+
end
|
322
|
+
|
323
|
+
|
324
|
+
# Uncheck a checkbox.
|
325
|
+
When /^#{I}uncheck #{TEXT}$/ do |field|
|
326
|
+
uncheck field
|
327
|
+
end
|
328
|
+
|
329
|
+
|
330
|
+
# Choose a given radio button.
|
331
|
+
When /^#{I}choose #{TEXT}$/ do |field|
|
332
|
+
choose field
|
333
|
+
end
|
334
|
+
|
335
|
+
|
336
|
+
# Verify that a given field is empty or nil.
|
337
|
+
#
|
338
|
+
# Examples:
|
339
|
+
#
|
340
|
+
# Then the "First name" field should be empty
|
341
|
+
#
|
342
|
+
Then /^the #{TEXT} field#{WITHIN} should be empty$/ do |field, selector|
|
343
|
+
field_should_be_empty(field, :within => selector)
|
344
|
+
end
|
345
|
+
|
346
|
+
|
347
|
+
# Verify that a text field in a form does or doesn't contain a value.
|
348
|
+
#
|
349
|
+
# Examples:
|
350
|
+
#
|
351
|
+
# Then the "Last name" field should contain "Brown"
|
352
|
+
# But the "First name" field should not contain "Leroy"
|
353
|
+
#
|
354
|
+
Then /^the #{TEXT} field#{WITHIN} should contain #{TEXT}$/ do |field, selector, value|
|
355
|
+
field_should_contain(field, value, :within => selector)
|
356
|
+
end
|
357
|
+
|
358
|
+
Then /^the #{TEXT} field#{WITHIN} should not contain #{TEXT}$/ do |field, selector, value|
|
359
|
+
field_should_not_contain(field, value, :within => selector)
|
360
|
+
end
|
361
|
+
|
362
|
+
|
363
|
+
# Verify that a dropdown has a given value selected. This verifies the visible
|
364
|
+
# value shown to the user, rather than the value attribute of the selected
|
365
|
+
# option element.
|
366
|
+
#
|
367
|
+
# Examples:
|
368
|
+
#
|
369
|
+
# Then the "Height" dropdown should equal "Average"
|
370
|
+
#
|
371
|
+
Then /^the #{TEXT} dropdown#{WITHIN} should equal #{TEXT}$/ do |dropdown, selector, value|
|
372
|
+
dropdown_should_equal(dropdown, value, :within => selector)
|
373
|
+
end
|
374
|
+
|
375
|
+
|
376
|
+
# Verify that a dropdown includes or doesn't include the given value.
|
377
|
+
#
|
378
|
+
# Examples:
|
379
|
+
#
|
380
|
+
# Then the "Height" dropdown should include "Tall"
|
381
|
+
#
|
382
|
+
Then /^the #{TEXT} dropdown#{WITHIN} should include #{TEXT}$/ do |dropdown, selector, value|
|
383
|
+
dropdown_should_include(dropdown, value, :within => selector)
|
384
|
+
end
|
385
|
+
|
386
|
+
Then /^the #{TEXT} dropdown#{WITHIN} should not include #{TEXT}$/ do |dropdown, selector, value|
|
387
|
+
dropdown_should_not_include(dropdown, value, :within => selector)
|
388
|
+
end
|
389
|
+
|
390
|
+
|
391
|
+
# Verify that a dropdown includes or doesn't include all values in the given
|
392
|
+
# table or multiline string.
|
393
|
+
#
|
394
|
+
# Examples:
|
395
|
+
#
|
396
|
+
# Then the "Height" dropdown should include:
|
397
|
+
# | Short |
|
398
|
+
# | Average |
|
399
|
+
# | Tall |
|
400
|
+
#
|
401
|
+
# Then the "Favorite Colors" dropdown should include:
|
402
|
+
# """
|
403
|
+
# Red
|
404
|
+
# Green
|
405
|
+
# Blue
|
406
|
+
# """
|
407
|
+
#
|
408
|
+
Then /^the #{TEXT} dropdown#{WITHIN} should include:$/ do |dropdown, selector, values|
|
409
|
+
dropdown_should_include(dropdown, listify(values), :within => selector)
|
410
|
+
end
|
411
|
+
|
412
|
+
Then /^the #{TEXT} dropdown#{WITHIN} should not include:$/ do |dropdown, selector, values|
|
413
|
+
dropdown_should_not_include(dropdown, listify(values), :within => selector)
|
414
|
+
end
|
415
|
+
|
416
|
+
|
417
|
+
# Verify multiple fields in a form, optionally restricted to a given selector.
|
418
|
+
# Fields may be text inputs or dropdowns.
|
419
|
+
#
|
420
|
+
# Examples:
|
421
|
+
#
|
422
|
+
# Then the fields should contain:
|
423
|
+
# | First name | Eric |
|
424
|
+
# | Last name | Pierce |
|
425
|
+
#
|
426
|
+
Then /^the fields#{WITHIN} should contain:$/ do |selector, fields|
|
427
|
+
fields_should_contain_within(selector, fields.rows_hash)
|
428
|
+
end
|
429
|
+
|
430
|
+
|
431
|
+
# Verify that a checkbox is checked or unchecked.
|
432
|
+
# "should not be checked" and "should be unchecked" are equivalent, and
|
433
|
+
# "should be checked" and "should not be unchecked" are equivalent.
|
434
|
+
#
|
435
|
+
# Examples:
|
436
|
+
#
|
437
|
+
# Then the "I like apples" checkbox should be checked
|
438
|
+
# And the "I like celery" checkbox should not be checked
|
439
|
+
#
|
440
|
+
Then /^the #{TEXT} checkbox#{WITHIN} should be (checked|unchecked)$/ do |checkbox, selector, state|
|
441
|
+
if state == 'checked'
|
442
|
+
checkbox_should_be_checked(checkbox, :within => selector)
|
443
|
+
else
|
444
|
+
checkbox_should_not_be_checked(checkbox, :within => selector)
|
445
|
+
end
|
446
|
+
end
|
447
|
+
|
448
|
+
Then /^the #{TEXT} checkbox#{WITHIN} should not be (checked|unchecked)$/ do |checkbox, selector, state|
|
449
|
+
if state == 'unchecked'
|
450
|
+
checkbox_should_be_checked(checkbox, :within => selector)
|
451
|
+
else
|
452
|
+
checkbox_should_not_be_checked(checkbox, :within => selector)
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
456
|
+
|
457
|
+
# Verify that a checkbox in a certain table row is checked or unchecked.
|
458
|
+
# "should not be checked" and "should be unchecked" are equivalent, and
|
459
|
+
# "should be checked" and "should not be unchecked" are equivalent.
|
460
|
+
#
|
461
|
+
# Examples:
|
462
|
+
#
|
463
|
+
# Then the "Like" checkbox next to "Apple" should be checked
|
464
|
+
# And the "Like" checkbox next to "Banana" should be unchecked
|
465
|
+
#
|
466
|
+
Then /^the #{TEXT} checkbox next to #{TEXT}#{WITHIN} should be (checked|unchecked)$/ do |checkbox, next_to, selector, state|
|
467
|
+
|
468
|
+
within(:xpath, xpath_row_containing(next_to)) do
|
469
|
+
if state == 'checked'
|
470
|
+
checkbox_should_be_checked(checkbox, :within => selector)
|
471
|
+
else
|
472
|
+
checkbox_should_not_be_checked(checkbox, :within => selector)
|
473
|
+
end
|
474
|
+
end
|
475
|
+
end
|
476
|
+
|
477
|
+
Then /^the #{TEXT} checkbox next to #{TEXT}#{WITHIN} should not be (checked|unchecked)$/ do |checkbox, next_to, selector, state|
|
478
|
+
|
479
|
+
within(:xpath, xpath_row_containing(next_to)) do
|
480
|
+
if state == 'unchecked'
|
481
|
+
checkbox_should_be_checked(checkbox, :within => selector)
|
482
|
+
else
|
483
|
+
checkbox_should_not_be_checked(checkbox, :within => selector)
|
484
|
+
end
|
485
|
+
end
|
486
|
+
end
|
487
|
+
|
488
|
+
|
489
|
+
# Attach the filename at the given path to the given form field.
|
490
|
+
#
|
491
|
+
# Examples:
|
492
|
+
#
|
493
|
+
# When I attach the file "tmp/my_data.csv" to "CSV file"
|
494
|
+
#
|
495
|
+
When /^#{I}attach the file #{TEXT} to #{TEXT}$/ do |path, field|
|
496
|
+
attach_file field, File.expand_path(path)
|
497
|
+
end
|
498
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kelp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 2
|
10
|
+
version: 0.2.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eric Pierce
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-07-01 00:00:00 -06:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -132,7 +132,6 @@ files:
|
|
132
132
|
- .gitignore
|
133
133
|
- .yardopts
|
134
134
|
- Gemfile
|
135
|
-
- Gemfile.lock
|
136
135
|
- History.md
|
137
136
|
- MIT-LICENSE
|
138
137
|
- README.md
|
@@ -161,6 +160,9 @@ files:
|
|
161
160
|
- features/step_definitions/app_steps.rb
|
162
161
|
- features/support/env.rb
|
163
162
|
- kelp.gemspec
|
163
|
+
- lib/generators/kelp/steps/USAGE
|
164
|
+
- lib/generators/kelp/steps/steps_generator.rb
|
165
|
+
- lib/generators/kelp/steps/templates/web_steps.rb
|
164
166
|
- lib/kelp.rb
|
165
167
|
- lib/kelp/attribute.rb
|
166
168
|
- lib/kelp/checkbox.rb
|
data/Gemfile.lock
DELETED
@@ -1,115 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
kelp (0.2.1)
|
5
|
-
capybara (>= 0.4.0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
abstract (1.0.0)
|
11
|
-
actionpack (3.0.3)
|
12
|
-
activemodel (= 3.0.3)
|
13
|
-
activesupport (= 3.0.3)
|
14
|
-
builder (~> 2.1.2)
|
15
|
-
erubis (~> 2.6.6)
|
16
|
-
i18n (~> 0.4)
|
17
|
-
rack (~> 1.2.1)
|
18
|
-
rack-mount (~> 0.6.13)
|
19
|
-
rack-test (~> 0.5.6)
|
20
|
-
tzinfo (~> 0.3.23)
|
21
|
-
activemodel (3.0.3)
|
22
|
-
activesupport (= 3.0.3)
|
23
|
-
builder (~> 2.1.2)
|
24
|
-
i18n (~> 0.4)
|
25
|
-
activesupport (3.0.3)
|
26
|
-
builder (2.1.2)
|
27
|
-
capybara (0.4.0)
|
28
|
-
celerity (>= 0.7.9)
|
29
|
-
culerity (>= 0.2.4)
|
30
|
-
mime-types (>= 1.16)
|
31
|
-
nokogiri (>= 1.3.3)
|
32
|
-
rack (>= 1.0.0)
|
33
|
-
rack-test (>= 0.5.4)
|
34
|
-
selenium-webdriver (>= 0.0.27)
|
35
|
-
xpath (~> 0.1.2)
|
36
|
-
celerity (0.8.5)
|
37
|
-
childprocess (0.1.4)
|
38
|
-
ffi (~> 0.6.3)
|
39
|
-
cucumber (0.10.2)
|
40
|
-
builder (>= 2.1.2)
|
41
|
-
diff-lcs (>= 1.1.2)
|
42
|
-
gherkin (>= 2.3.5)
|
43
|
-
json (>= 1.4.6)
|
44
|
-
term-ansicolor (>= 1.0.5)
|
45
|
-
culerity (0.2.12)
|
46
|
-
diff-lcs (1.1.2)
|
47
|
-
erubis (2.6.6)
|
48
|
-
abstract (>= 1.0.0)
|
49
|
-
ffi (0.6.3)
|
50
|
-
rake (>= 0.8.7)
|
51
|
-
gherkin (2.3.5)
|
52
|
-
json (>= 1.4.6)
|
53
|
-
i18n (0.5.0)
|
54
|
-
json (1.5.1)
|
55
|
-
json_pure (1.4.6)
|
56
|
-
mime-types (1.16)
|
57
|
-
nokogiri (1.4.4)
|
58
|
-
rack (1.2.1)
|
59
|
-
rack-mount (0.6.13)
|
60
|
-
rack (>= 1.0.0)
|
61
|
-
rack-test (0.5.6)
|
62
|
-
rack (>= 1.0)
|
63
|
-
railties (3.0.3)
|
64
|
-
actionpack (= 3.0.3)
|
65
|
-
activesupport (= 3.0.3)
|
66
|
-
rake (>= 0.8.7)
|
67
|
-
thor (~> 0.14.4)
|
68
|
-
rake (0.8.7)
|
69
|
-
rcov (0.9.9)
|
70
|
-
rspec (2.2.0)
|
71
|
-
rspec-core (~> 2.2)
|
72
|
-
rspec-expectations (~> 2.2)
|
73
|
-
rspec-mocks (~> 2.2)
|
74
|
-
rspec-core (2.2.1)
|
75
|
-
rspec-expectations (2.2.0)
|
76
|
-
diff-lcs (~> 1.1.2)
|
77
|
-
rspec-mocks (2.2.0)
|
78
|
-
rspec-rails (2.2.1)
|
79
|
-
actionpack (~> 3.0)
|
80
|
-
activesupport (~> 3.0)
|
81
|
-
railties (~> 3.0)
|
82
|
-
rspec (~> 2.2.0)
|
83
|
-
rubyzip (0.9.4)
|
84
|
-
selenium-webdriver (0.1.1)
|
85
|
-
childprocess (= 0.1.4)
|
86
|
-
ffi (~> 0.6.3)
|
87
|
-
json_pure
|
88
|
-
rubyzip
|
89
|
-
sinatra (1.1.0)
|
90
|
-
rack (~> 1.1)
|
91
|
-
tilt (~> 1.1)
|
92
|
-
term-ansicolor (1.0.5)
|
93
|
-
thor (0.14.6)
|
94
|
-
tilt (1.1)
|
95
|
-
tzinfo (0.3.23)
|
96
|
-
webrat (0.7.3)
|
97
|
-
nokogiri (>= 1.2.0)
|
98
|
-
rack (>= 1.0)
|
99
|
-
rack-test (>= 0.5.3)
|
100
|
-
xpath (0.1.2)
|
101
|
-
nokogiri (~> 1.3)
|
102
|
-
|
103
|
-
PLATFORMS
|
104
|
-
ruby
|
105
|
-
|
106
|
-
DEPENDENCIES
|
107
|
-
bundler (~> 1.0)
|
108
|
-
capybara (>= 0.4.0)
|
109
|
-
cucumber
|
110
|
-
kelp!
|
111
|
-
rcov
|
112
|
-
rspec (>= 2.2.0)
|
113
|
-
rspec-rails
|
114
|
-
sinatra
|
115
|
-
webrat
|