cucumber-rails 1.0.2 → 1.0.3
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/.rvmrc +1 -1
- data/Gemfile.lock +90 -90
- data/History.md +10 -0
- data/LICENSE +1 -1
- data/README.md +3 -1
- data/cucumber-rails.gemspec +14 -15
- data/features/emulate_javascript.feature +54 -0
- data/features/field_with_errors.feature +70 -0
- data/features/{pseduo_class_selectors.feature → pseudo_class_selectors.feature} +0 -0
- data/features/select_dates.feature +43 -1
- data/lib/cucumber/rails/capybara/javascript_emulation.rb +30 -0
- data/lib/cucumber/rails/capybara/select_dates_and_times.rb +6 -6
- data/lib/generators/cucumber/feature/USAGE +1 -1
- data/lib/generators/cucumber/feature/feature_generator.rb +1 -2
- data/lib/generators/cucumber/install/templates/step_definitions/web_steps.rb.erb +44 -1
- metadata +176 -181
data/.rvmrc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
rvm
|
|
1
|
+
rvm gemset use cucumber
|
data/Gemfile.lock
CHANGED
|
@@ -1,93 +1,93 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
cucumber-rails (1.0.
|
|
5
|
-
capybara (>= 1.
|
|
6
|
-
cucumber (~> 1.0.
|
|
7
|
-
nokogiri (>= 1.
|
|
4
|
+
cucumber-rails (1.0.3)
|
|
5
|
+
capybara (>= 1.1.1)
|
|
6
|
+
cucumber (~> 1.0.4)
|
|
7
|
+
nokogiri (>= 1.5.0)
|
|
8
8
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: http://rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
-
actionmailer (3.1.0
|
|
13
|
-
actionpack (= 3.1.0
|
|
12
|
+
actionmailer (3.1.0)
|
|
13
|
+
actionpack (= 3.1.0)
|
|
14
14
|
mail (~> 2.3.0)
|
|
15
|
-
actionpack (3.1.0
|
|
16
|
-
activemodel (= 3.1.0
|
|
17
|
-
activesupport (= 3.1.0
|
|
15
|
+
actionpack (3.1.0)
|
|
16
|
+
activemodel (= 3.1.0)
|
|
17
|
+
activesupport (= 3.1.0)
|
|
18
18
|
builder (~> 3.0.0)
|
|
19
19
|
erubis (~> 2.7.0)
|
|
20
20
|
i18n (~> 0.6)
|
|
21
|
-
rack (~> 1.3.
|
|
22
|
-
rack-cache (~> 1.0.
|
|
23
|
-
rack-mount (~> 0.8.
|
|
24
|
-
rack-test (~> 0.6.
|
|
25
|
-
sprockets (~> 2.0.0
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
bcrypt-ruby (~> 2.1.4)
|
|
21
|
+
rack (~> 1.3.2)
|
|
22
|
+
rack-cache (~> 1.0.3)
|
|
23
|
+
rack-mount (~> 0.8.2)
|
|
24
|
+
rack-test (~> 0.6.1)
|
|
25
|
+
sprockets (~> 2.0.0)
|
|
26
|
+
activemodel (3.1.0)
|
|
27
|
+
activesupport (= 3.1.0)
|
|
28
|
+
bcrypt-ruby (~> 3.0.0)
|
|
30
29
|
builder (~> 3.0.0)
|
|
31
30
|
i18n (~> 0.6)
|
|
32
|
-
activerecord (3.1.0
|
|
33
|
-
activemodel (= 3.1.0
|
|
34
|
-
activesupport (= 3.1.0
|
|
35
|
-
arel (~> 2.
|
|
36
|
-
tzinfo (~> 0.3.
|
|
37
|
-
activeresource (3.1.0
|
|
38
|
-
activemodel (= 3.1.0
|
|
39
|
-
activesupport (= 3.1.0
|
|
40
|
-
activesupport (3.1.0
|
|
31
|
+
activerecord (3.1.0)
|
|
32
|
+
activemodel (= 3.1.0)
|
|
33
|
+
activesupport (= 3.1.0)
|
|
34
|
+
arel (~> 2.2.1)
|
|
35
|
+
tzinfo (~> 0.3.29)
|
|
36
|
+
activeresource (3.1.0)
|
|
37
|
+
activemodel (= 3.1.0)
|
|
38
|
+
activesupport (= 3.1.0)
|
|
39
|
+
activesupport (3.1.0)
|
|
41
40
|
multi_json (~> 1.0)
|
|
42
|
-
ansi (1.
|
|
43
|
-
arel (2.
|
|
44
|
-
aruba (0.4.
|
|
41
|
+
ansi (1.3.0)
|
|
42
|
+
arel (2.2.1)
|
|
43
|
+
aruba (0.4.6)
|
|
45
44
|
bcat (>= 0.6.1)
|
|
46
|
-
childprocess (>= 0.
|
|
47
|
-
cucumber (>= 0.
|
|
45
|
+
childprocess (>= 0.2.0)
|
|
46
|
+
cucumber (>= 1.0.2)
|
|
48
47
|
rdiscount (>= 1.6.8)
|
|
49
48
|
rspec (>= 2.6.0)
|
|
50
49
|
bcat (0.6.1)
|
|
51
50
|
rack (~> 1.0)
|
|
52
|
-
bcrypt-ruby (
|
|
51
|
+
bcrypt-ruby (3.0.0)
|
|
53
52
|
bson (1.3.1)
|
|
54
53
|
bson_ext (1.3.1)
|
|
55
54
|
builder (3.0.0)
|
|
56
|
-
capybara (1.
|
|
55
|
+
capybara (1.1.1)
|
|
57
56
|
mime-types (>= 1.16)
|
|
58
57
|
nokogiri (>= 1.3.3)
|
|
59
58
|
rack (>= 1.0.0)
|
|
60
59
|
rack-test (>= 0.5.4)
|
|
61
|
-
selenium-webdriver (~>
|
|
60
|
+
selenium-webdriver (~> 2.0)
|
|
62
61
|
xpath (~> 0.1.4)
|
|
63
|
-
childprocess (0.
|
|
62
|
+
childprocess (0.2.2)
|
|
64
63
|
ffi (~> 1.0.6)
|
|
65
64
|
coffee-script (2.2.0)
|
|
66
65
|
coffee-script-source
|
|
67
66
|
execjs
|
|
68
|
-
coffee-script-source (1.1.
|
|
69
|
-
cucumber (1.0.
|
|
67
|
+
coffee-script-source (1.1.2)
|
|
68
|
+
cucumber (1.0.4)
|
|
70
69
|
builder (>= 2.1.2)
|
|
71
70
|
diff-lcs (>= 1.1.2)
|
|
72
|
-
gherkin (~> 2.4.
|
|
71
|
+
gherkin (~> 2.4.18)
|
|
73
72
|
json (>= 1.4.6)
|
|
74
|
-
term-ansicolor (>= 1.0.
|
|
73
|
+
term-ansicolor (>= 1.0.6)
|
|
75
74
|
database_cleaner (0.6.7)
|
|
76
|
-
diff-lcs (1.1.
|
|
75
|
+
diff-lcs (1.1.3)
|
|
77
76
|
erubis (2.7.0)
|
|
78
|
-
execjs (1.2.
|
|
77
|
+
execjs (1.2.4)
|
|
79
78
|
multi_json (~> 1.0)
|
|
80
|
-
factory_girl (2.
|
|
79
|
+
factory_girl (2.1.0)
|
|
81
80
|
ffi (1.0.9)
|
|
82
|
-
gherkin (2.4.
|
|
81
|
+
gherkin (2.4.18)
|
|
83
82
|
json (>= 1.4.6)
|
|
84
|
-
hike (1.1
|
|
83
|
+
hike (1.2.1)
|
|
85
84
|
i18n (0.6.0)
|
|
86
|
-
jquery-rails (1.0.
|
|
85
|
+
jquery-rails (1.0.14)
|
|
87
86
|
railties (~> 3.0)
|
|
88
87
|
thor (~> 0.14)
|
|
89
|
-
json (1.5.
|
|
90
|
-
json_pure (1.5.
|
|
88
|
+
json (1.5.4)
|
|
89
|
+
json_pure (1.5.4)
|
|
90
|
+
spruz (~> 0.2.8)
|
|
91
91
|
mail (2.3.0)
|
|
92
92
|
i18n (>= 0.4.0)
|
|
93
93
|
mime-types (~> 1.16)
|
|
@@ -95,40 +95,40 @@ GEM
|
|
|
95
95
|
mime-types (1.16)
|
|
96
96
|
mongo (1.3.1)
|
|
97
97
|
bson (>= 1.3.1)
|
|
98
|
-
mongoid (2.0
|
|
98
|
+
mongoid (2.2.0)
|
|
99
99
|
activemodel (~> 3.0)
|
|
100
100
|
mongo (~> 1.3)
|
|
101
101
|
tzinfo (~> 0.3.22)
|
|
102
102
|
multi_json (1.0.3)
|
|
103
|
-
nokogiri (1.
|
|
104
|
-
polyglot (0.3.
|
|
105
|
-
rack (1.3.
|
|
106
|
-
rack-cache (1.0.
|
|
103
|
+
nokogiri (1.5.0)
|
|
104
|
+
polyglot (0.3.2)
|
|
105
|
+
rack (1.3.2)
|
|
106
|
+
rack-cache (1.0.3)
|
|
107
107
|
rack (>= 0.4)
|
|
108
|
-
rack-mount (0.8.
|
|
108
|
+
rack-mount (0.8.3)
|
|
109
109
|
rack (>= 1.0.0)
|
|
110
110
|
rack-ssl (1.3.2)
|
|
111
111
|
rack
|
|
112
|
-
rack-test (0.6.
|
|
112
|
+
rack-test (0.6.1)
|
|
113
113
|
rack (>= 1.0)
|
|
114
|
-
rails (3.1.0
|
|
115
|
-
actionmailer (= 3.1.0
|
|
116
|
-
actionpack (= 3.1.0
|
|
117
|
-
activerecord (= 3.1.0
|
|
118
|
-
activeresource (= 3.1.0
|
|
119
|
-
activesupport (= 3.1.0
|
|
114
|
+
rails (3.1.0)
|
|
115
|
+
actionmailer (= 3.1.0)
|
|
116
|
+
actionpack (= 3.1.0)
|
|
117
|
+
activerecord (= 3.1.0)
|
|
118
|
+
activeresource (= 3.1.0)
|
|
119
|
+
activesupport (= 3.1.0)
|
|
120
120
|
bundler (~> 1.0)
|
|
121
|
-
railties (= 3.1.0
|
|
122
|
-
railties (3.1.0
|
|
123
|
-
actionpack (= 3.1.0
|
|
124
|
-
activesupport (= 3.1.0
|
|
121
|
+
railties (= 3.1.0)
|
|
122
|
+
railties (3.1.0)
|
|
123
|
+
actionpack (= 3.1.0)
|
|
124
|
+
activesupport (= 3.1.0)
|
|
125
125
|
rack-ssl (~> 1.3.2)
|
|
126
126
|
rake (>= 0.8.7)
|
|
127
127
|
rdoc (~> 3.4)
|
|
128
128
|
thor (~> 0.14.6)
|
|
129
129
|
rake (0.9.2)
|
|
130
130
|
rdiscount (1.6.8)
|
|
131
|
-
rdoc (3.
|
|
131
|
+
rdoc (3.9.4)
|
|
132
132
|
rspec (2.6.0)
|
|
133
133
|
rspec-core (~> 2.6.0)
|
|
134
134
|
rspec-expectations (~> 2.6.0)
|
|
@@ -143,55 +143,55 @@ GEM
|
|
|
143
143
|
railties (~> 3.0)
|
|
144
144
|
rspec (~> 2.6.0)
|
|
145
145
|
rubyzip (0.9.4)
|
|
146
|
-
sass (3.1.
|
|
147
|
-
selenium-webdriver (
|
|
148
|
-
childprocess (>= 0.1
|
|
146
|
+
sass (3.1.7)
|
|
147
|
+
selenium-webdriver (2.5.0)
|
|
148
|
+
childprocess (>= 0.2.1)
|
|
149
149
|
ffi (>= 1.0.7)
|
|
150
150
|
json_pure
|
|
151
151
|
rubyzip
|
|
152
|
-
sprockets (2.0.0
|
|
153
|
-
hike (~> 1.
|
|
152
|
+
sprockets (2.0.0)
|
|
153
|
+
hike (~> 1.2)
|
|
154
154
|
rack (~> 1.0)
|
|
155
155
|
tilt (!= 1.3.0, ~> 1.1)
|
|
156
|
-
|
|
157
|
-
sqlite3
|
|
158
|
-
|
|
159
|
-
term-ansicolor (1.0.5)
|
|
156
|
+
spruz (0.2.13)
|
|
157
|
+
sqlite3 (1.3.4)
|
|
158
|
+
term-ansicolor (1.0.6)
|
|
160
159
|
thor (0.14.6)
|
|
161
|
-
tilt (1.3.
|
|
162
|
-
treetop (1.4.
|
|
160
|
+
tilt (1.3.3)
|
|
161
|
+
treetop (1.4.10)
|
|
162
|
+
polyglot
|
|
163
163
|
polyglot (>= 0.3.1)
|
|
164
164
|
turn (0.8.2)
|
|
165
165
|
ansi (>= 1.2.2)
|
|
166
|
-
tzinfo (0.3.
|
|
167
|
-
uglifier (1.0.
|
|
166
|
+
tzinfo (0.3.29)
|
|
167
|
+
uglifier (1.0.3)
|
|
168
168
|
execjs (>= 0.3.0)
|
|
169
169
|
multi_json (>= 1.0.2)
|
|
170
170
|
xpath (0.1.4)
|
|
171
171
|
nokogiri (~> 1.3)
|
|
172
|
-
yard (0.7.
|
|
172
|
+
yard (0.7.2)
|
|
173
173
|
|
|
174
174
|
PLATFORMS
|
|
175
175
|
ruby
|
|
176
176
|
|
|
177
177
|
DEPENDENCIES
|
|
178
|
-
aruba (>= 0.4.
|
|
178
|
+
aruba (>= 0.4.6)
|
|
179
179
|
bcat (= 0.6.1)
|
|
180
180
|
bson_ext (>= 1.3.1)
|
|
181
|
-
bundler (>= 1.0.
|
|
181
|
+
bundler (>= 1.0.18)
|
|
182
182
|
coffee-script (>= 2.2.0)
|
|
183
183
|
cucumber-rails!
|
|
184
184
|
database_cleaner (>= 0.6.7)
|
|
185
|
-
factory_girl (>= 2.
|
|
186
|
-
jquery-rails (>= 1.0.
|
|
187
|
-
mongoid (>= 2.0
|
|
188
|
-
rails (>= 3.1.0
|
|
185
|
+
factory_girl (>= 2.1.0)
|
|
186
|
+
jquery-rails (>= 1.0.14)
|
|
187
|
+
mongoid (>= 2.2.0)
|
|
188
|
+
rails (>= 3.1.0)
|
|
189
189
|
rake (>= 0.9.2)
|
|
190
190
|
rdiscount (= 1.6.8)
|
|
191
191
|
rspec (>= 2.6.0)
|
|
192
192
|
rspec-rails (>= 2.6.1)
|
|
193
|
-
sass (>= 3.1.
|
|
194
|
-
sqlite3
|
|
193
|
+
sass (>= 3.1.7)
|
|
194
|
+
sqlite3 (>= 1.3.4)
|
|
195
195
|
turn (>= 0.8.2)
|
|
196
|
-
uglifier (>= 1.0.
|
|
197
|
-
yard (= 0.7.
|
|
196
|
+
uglifier (>= 1.0.3)
|
|
197
|
+
yard (= 0.7.2)
|
data/History.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## [v1.0.3](https://github.com/cucumber/cucumber-rails/compare/v1.0.2...v1.0.3)
|
|
2
|
+
|
|
3
|
+
### Bugfixes
|
|
4
|
+
* sqlite3-ruby is now sqlite3 ([#158](https://github.com/cucumber/cucumber-rails/pull/158) Trung Le)
|
|
5
|
+
* Broken link in the USAGE file of the features generator ((#156)[https://github.com/cucumber/cucumber-rails/pull/156] Pablo Alonso García)
|
|
6
|
+
* Rails destroy cucumber:feature deletes the steps folder, even though it's not empty. ((#154)[https://github.com/cucumber/cucumber-rails/pull/154], (#111)[https://github.com/cucumber/cucumber-rails/issues/111] mblake)
|
|
7
|
+
* Adjust select_date, select_time xpaths so they work when scoped in the document ((#151)[https://github.com/cucumber/cucumber-rails/pull/151] Thomas Walpole)
|
|
8
|
+
* Extend javascript emulation to handle rails CSRF protection ((#164)[https://github.com/cucumber/cucumber-rails/pull/164] Jonathon M. Abbott)
|
|
9
|
+
* Add steps for finding fields with errors ((#162)[https://github.com/cucumber/cucumber-rails/pull/162] Mike Burns)
|
|
10
|
+
|
|
1
11
|
## [v1.0.2](https://github.com/cucumber/cucumber-rails/compare/v1.0.1...v1.0.2)
|
|
2
12
|
|
|
3
13
|
### Bugfixes
|
data/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2008,2009,2010 Aslak Hellesøy and the Cucumber Team.
|
|
3
|
+
Copyright (c) 2008,2009,2010,2011 Aslak Hellesøy and the Cucumber Team.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
6
|
a copy of this software and associated documentation files (the
|
data/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Cucumber-Rails
|
|
2
2
|
|
|
3
|
-
Cucumber-Rails brings Cucumber to
|
|
3
|
+
Cucumber-Rails brings Cucumber to Rails 3.x. For Rails 2x support, see the [Cucumber Wiki](https://github.com/cucumber/cucumber/wiki/Ruby-on-Rails).
|
|
4
|
+
|
|
5
|
+
Cucumber-Rails contains 2 generators - one
|
|
4
6
|
for bootstrapping your Rails app for Cucumber, and a second one for generating features.
|
|
5
7
|
|
|
6
8
|
Cucumber-Rails also contains Cucumber Step Definitions that wrap Capybara,
|
data/cucumber-rails.gemspec
CHANGED
|
@@ -3,38 +3,37 @@ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = 'cucumber-rails'
|
|
6
|
-
s.version = '1.0.
|
|
6
|
+
s.version = '1.0.3'
|
|
7
7
|
s.authors = ["Aslak Hellesøy", "Dennis Blöte", "Rob Holland"]
|
|
8
8
|
s.description = "Cucumber Generators and Runtime for Rails"
|
|
9
9
|
s.summary = "#{s.name}-#{s.version}"
|
|
10
10
|
s.email = 'cukes@googlegroups.com'
|
|
11
11
|
s.homepage = "http://cukes.info"
|
|
12
12
|
|
|
13
|
-
s.
|
|
14
|
-
s.
|
|
15
|
-
s.
|
|
16
|
-
s.add_development_dependency('rails', '>= 3.1.0
|
|
13
|
+
s.add_runtime_dependency('cucumber', '~> 1.0.4')
|
|
14
|
+
s.add_runtime_dependency('nokogiri', '>= 1.5.0')
|
|
15
|
+
s.add_runtime_dependency('capybara', '>= 1.1.1')
|
|
16
|
+
s.add_development_dependency('rails', '>= 3.1.0')
|
|
17
17
|
s.add_development_dependency('rake', '>= 0.9.2')
|
|
18
|
-
s.add_development_dependency('bundler', '>= 1.0.
|
|
19
|
-
s.add_development_dependency('aruba', '>= 0.4.
|
|
20
|
-
s.add_development_dependency('sqlite3
|
|
18
|
+
s.add_development_dependency('bundler', '>= 1.0.18')
|
|
19
|
+
s.add_development_dependency('aruba', '>= 0.4.6')
|
|
20
|
+
s.add_development_dependency('sqlite3', '>= 1.3.4')
|
|
21
21
|
s.add_development_dependency('rspec', '>= 2.6.0')
|
|
22
22
|
s.add_development_dependency('rspec-rails', '>= 2.6.1')
|
|
23
|
-
s.add_development_dependency('factory_girl', '>= 2.
|
|
23
|
+
s.add_development_dependency('factory_girl', '>= 2.1.0')
|
|
24
24
|
s.add_development_dependency('database_cleaner', '>= 0.6.7')
|
|
25
|
-
s.add_development_dependency('mongoid', '>= 2.0
|
|
25
|
+
s.add_development_dependency('mongoid', '>= 2.2.0')
|
|
26
26
|
s.add_development_dependency('bson_ext', '>= 1.3.1')
|
|
27
|
-
# s.add_development_dependency('akephalos', '>= 0.2.5')
|
|
28
27
|
|
|
29
28
|
# Various Stuff that Rails 3.1 puts inside apps.
|
|
30
29
|
s.add_development_dependency('turn', '>= 0.8.2')
|
|
31
|
-
s.add_development_dependency('sass', '>= 3.1.
|
|
30
|
+
s.add_development_dependency('sass', '>= 3.1.7')
|
|
32
31
|
s.add_development_dependency('coffee-script', '>= 2.2.0')
|
|
33
|
-
s.add_development_dependency('uglifier', '>= 1.0.
|
|
34
|
-
s.add_development_dependency('jquery-rails', '>= 1.0.
|
|
32
|
+
s.add_development_dependency('uglifier', '>= 1.0.3')
|
|
33
|
+
s.add_development_dependency('jquery-rails', '>= 1.0.14')
|
|
35
34
|
|
|
36
35
|
# For Documentation:
|
|
37
|
-
s.add_development_dependency('yard', '= 0.7.
|
|
36
|
+
s.add_development_dependency('yard', '= 0.7.2')
|
|
38
37
|
s.add_development_dependency('rdiscount', '= 1.6.8')
|
|
39
38
|
s.add_development_dependency('bcat', '= 0.6.1')
|
|
40
39
|
|
|
@@ -32,3 +32,57 @@ Feature: Emulate Javascript
|
|
|
32
32
|
3 steps (3 passed)
|
|
33
33
|
"""
|
|
34
34
|
|
|
35
|
+
Scenario: Pass on the CSRF token
|
|
36
|
+
Given I have created a new Rails 3 app "widgets" with cucumber-rails support
|
|
37
|
+
And I successfully run `rails generate scaffold widget name:string`
|
|
38
|
+
And I successfully run `sed -i -e 's/forgery_protection *= false/forgery_protection = true/' config/environments/test.rb`
|
|
39
|
+
And I successfully run `rails generate controller session establish`
|
|
40
|
+
And I write to "app/controllers/session_controller.rb" with:
|
|
41
|
+
"""
|
|
42
|
+
class SessionController < ApplicationController
|
|
43
|
+
def establish
|
|
44
|
+
session[:verified] = true
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
And I write to "app/controllers/application_controller.rb" with:
|
|
49
|
+
"""
|
|
50
|
+
class ApplicationController < ActionController::Base
|
|
51
|
+
protect_from_forgery
|
|
52
|
+
before_filter :except => :establish do
|
|
53
|
+
render :text => "denied", :status => :forbidden and return false unless session[:verified]
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
"""
|
|
57
|
+
And I write to "features/f.feature" with:
|
|
58
|
+
"""
|
|
59
|
+
Feature: Widget inventory
|
|
60
|
+
Scenario: Delete a widget
|
|
61
|
+
Given there is a widget named "wrench"
|
|
62
|
+
When I go to the session establish page
|
|
63
|
+
And I go to the widgets page
|
|
64
|
+
Then I should see "wrench"
|
|
65
|
+
When I follow "Destroy"
|
|
66
|
+
Then I should not see "denied"
|
|
67
|
+
And I should be on the widgets page
|
|
68
|
+
And I should not see "wrench"
|
|
69
|
+
"""
|
|
70
|
+
And I write to "features/step_definitions/s.rb" with:
|
|
71
|
+
"""
|
|
72
|
+
Given /^there is a widget named "([^"]*)"$/ do |name|
|
|
73
|
+
Factory(:widget, :name => name)
|
|
74
|
+
end
|
|
75
|
+
"""
|
|
76
|
+
And I write to "features/support/factories.rb" with:
|
|
77
|
+
"""
|
|
78
|
+
Factory.define :widget do |f|
|
|
79
|
+
f.name 'testwidget'
|
|
80
|
+
end
|
|
81
|
+
"""
|
|
82
|
+
When I run `bundle exec rake db:migrate`
|
|
83
|
+
And I run `bundle exec rake cucumber`
|
|
84
|
+
Then it should pass with:
|
|
85
|
+
"""
|
|
86
|
+
1 scenario (1 passed)
|
|
87
|
+
8 steps (8 passed)
|
|
88
|
+
"""
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
Feature: Detecting a field has errors on it
|
|
2
|
+
|
|
3
|
+
Scenario: A form with some fields with errors
|
|
4
|
+
Given I have created a new Rails 3 app "enemies" with cucumber-rails support
|
|
5
|
+
And I successfully run `rails generate scaffold enemy name:string nickname:string`
|
|
6
|
+
And I write to "app/models/enemy.rb" with:
|
|
7
|
+
"""
|
|
8
|
+
class Enemy < ActiveRecord::Base
|
|
9
|
+
validates_presence_of :name
|
|
10
|
+
end
|
|
11
|
+
"""
|
|
12
|
+
And I write to "features/f.feature" with:
|
|
13
|
+
"""
|
|
14
|
+
Feature: Enemy form
|
|
15
|
+
Scenario: Making an enemy
|
|
16
|
+
Given I am on the new enemy page
|
|
17
|
+
And I press "Create Enemy"
|
|
18
|
+
Then the "Name" field should have the error "can't be blank"
|
|
19
|
+
And the "Nickname" field should have no error
|
|
20
|
+
"""
|
|
21
|
+
When I run `bundle exec rake db:migrate`
|
|
22
|
+
And I run `bundle exec rake cucumber`
|
|
23
|
+
Then it should pass with:
|
|
24
|
+
"""
|
|
25
|
+
1 scenario (1 passed)
|
|
26
|
+
4 steps (4 passed)
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
Scenario: A formtastic form with some fields with errors
|
|
30
|
+
Given I have created a new Rails 3 app "enemies" with cucumber-rails support
|
|
31
|
+
And I append to "Gemfile" with:
|
|
32
|
+
"""
|
|
33
|
+
gem "formtastic"
|
|
34
|
+
"""
|
|
35
|
+
And I successfully run `bundle`
|
|
36
|
+
And I successfully run `rails generate scaffold enemy name:string nickname:string`
|
|
37
|
+
And I write to "app/models/enemy.rb" with:
|
|
38
|
+
"""
|
|
39
|
+
class Enemy < ActiveRecord::Base
|
|
40
|
+
validates_presence_of :name
|
|
41
|
+
end
|
|
42
|
+
"""
|
|
43
|
+
And I write to "features/f.feature" with:
|
|
44
|
+
"""
|
|
45
|
+
Feature: Enemy form
|
|
46
|
+
Scenario: Making an enemy
|
|
47
|
+
Given I am on the new enemy page
|
|
48
|
+
And I press "Create Enemy"
|
|
49
|
+
Then the "Name" field should have the error "can't be blank"
|
|
50
|
+
And the "Nickname" field should have no error
|
|
51
|
+
"""
|
|
52
|
+
And I write to "app/views/enemies/new.html.erb" with:
|
|
53
|
+
"""
|
|
54
|
+
<%= semantic_form_for(@enemy) do |form| %>
|
|
55
|
+
<%= form.inputs do %>
|
|
56
|
+
<%= form.input :name %>
|
|
57
|
+
<%= form.input :nickname %>
|
|
58
|
+
<% end %>
|
|
59
|
+
<%= form.buttons do %>
|
|
60
|
+
<%= form.commit_button %>
|
|
61
|
+
<% end %>
|
|
62
|
+
<% end %>
|
|
63
|
+
"""
|
|
64
|
+
When I run `bundle exec rake db:migrate`
|
|
65
|
+
And I run `bundle exec rake cucumber`
|
|
66
|
+
Then it should pass with:
|
|
67
|
+
"""
|
|
68
|
+
1 scenario (1 passed)
|
|
69
|
+
4 steps (4 passed)
|
|
70
|
+
"""
|
|
File without changes
|
|
@@ -96,4 +96,46 @@ Feature: Select dates
|
|
|
96
96
|
"""
|
|
97
97
|
1 scenario (1 passed)
|
|
98
98
|
6 steps (6 passed)
|
|
99
|
-
"""
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
Scenario: Select correct date when scoped
|
|
102
|
+
Given I successfully run `bundle exec rails g scaffold appointment name:string when:date`
|
|
103
|
+
And I write to "features/create_appointment.feature" with:
|
|
104
|
+
"""
|
|
105
|
+
Feature: Create appointments
|
|
106
|
+
Scenario: Constitution on May 17
|
|
107
|
+
Given I am on the new appointment page
|
|
108
|
+
And I fill in "Norway's constitution" for "Name"
|
|
109
|
+
And I select "2009-02-20" as the "When" date
|
|
110
|
+
And I select "2009-03-20" as the "When" date within "#extra"
|
|
111
|
+
And I press "Create Appointment"
|
|
112
|
+
Then I should see "Norway's constitution"
|
|
113
|
+
And I should see "2009-02-20"
|
|
114
|
+
"""
|
|
115
|
+
And I write to "app/views/appointments/_form.html.erb" with:
|
|
116
|
+
"""
|
|
117
|
+
<%= form_for(@appointment) do |f| %>
|
|
118
|
+
<div class="field">
|
|
119
|
+
<%= f.label :name %><br />
|
|
120
|
+
<%= f.text_field :name %>
|
|
121
|
+
</div>
|
|
122
|
+
<div class="field">
|
|
123
|
+
<%= f.label :when, :for => "appointment_when_1i" %><br />
|
|
124
|
+
<%= f.date_select :when %>
|
|
125
|
+
</div>
|
|
126
|
+
<div class="actions">
|
|
127
|
+
<%= f.submit %>
|
|
128
|
+
</div>
|
|
129
|
+
<% end %>
|
|
130
|
+
<div id="extra">
|
|
131
|
+
<%= label_tag 'extra_when_1i', 'When' %>
|
|
132
|
+
<%= date_select "extra", "when" %>
|
|
133
|
+
</div>
|
|
134
|
+
"""
|
|
135
|
+
When I run `bundle exec rake db:migrate`
|
|
136
|
+
And I run `bundle exec rake cucumber`
|
|
137
|
+
Then it should pass with:
|
|
138
|
+
"""
|
|
139
|
+
1 scenario (1 passed)
|
|
140
|
+
7 steps (7 passed)
|
|
141
|
+
"""
|
|
@@ -19,6 +19,26 @@ module Cucumber
|
|
|
19
19
|
|
|
20
20
|
private
|
|
21
21
|
|
|
22
|
+
def csrf?
|
|
23
|
+
csrf_param_node && csrf_token_node
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def csrf_param_node
|
|
27
|
+
element_node.document.at_xpath("//meta[@name='csrf-param']")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def csrf_param
|
|
31
|
+
csrf_param_node['content']
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def csrf_token_node
|
|
35
|
+
element_node.document.at_xpath("//meta[@name='csrf-token']")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def csrf_token
|
|
39
|
+
csrf_token_node['content']
|
|
40
|
+
end
|
|
41
|
+
|
|
22
42
|
def js_form(document, action, emulated_method, method = 'POST')
|
|
23
43
|
js_form = document.create_element('form')
|
|
24
44
|
js_form['action'] = action
|
|
@@ -31,6 +51,16 @@ module Cucumber
|
|
|
31
51
|
input['value'] = emulated_method
|
|
32
52
|
js_form.add_child(input)
|
|
33
53
|
end
|
|
54
|
+
|
|
55
|
+
# rails will wipe the session if the CSRF token is not sent
|
|
56
|
+
# with non-GET requests
|
|
57
|
+
if csrf? && emulated_method.downcase != "get"
|
|
58
|
+
input = document.create_element('input')
|
|
59
|
+
input['type'] = 'hidden'
|
|
60
|
+
input['name'] = csrf_param
|
|
61
|
+
input['value'] = csrf_token
|
|
62
|
+
js_form.add_child(input)
|
|
63
|
+
end
|
|
34
64
|
|
|
35
65
|
js_form
|
|
36
66
|
end
|
|
@@ -6,17 +6,17 @@ module Cucumber
|
|
|
6
6
|
date = Date.parse(options[:with])
|
|
7
7
|
base_dom_id = get_base_dom_id_from_label_tag(field)
|
|
8
8
|
|
|
9
|
-
find(:xpath, "
|
|
10
|
-
find(:xpath, "
|
|
11
|
-
find(:xpath, "
|
|
9
|
+
find(:xpath, ".//select[@id='#{base_dom_id}_1i']").select(date.year.to_s)
|
|
10
|
+
find(:xpath, ".//select[@id='#{base_dom_id}_2i']").select(I18n.l date, :format => '%B')
|
|
11
|
+
find(:xpath, ".//select[@id='#{base_dom_id}_3i']").select(date.day.to_s)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def select_time(field, options = {})
|
|
15
15
|
time = Time.zone.parse(options[:with])
|
|
16
16
|
base_dom_id = get_base_dom_id_from_label_tag(field)
|
|
17
17
|
|
|
18
|
-
find(:xpath, "
|
|
19
|
-
find(:xpath, "
|
|
18
|
+
find(:xpath, ".//select[@id='#{base_dom_id}_4i']").select(time.hour.to_s.rjust(2, '0'))
|
|
19
|
+
find(:xpath, ".//select[@id='#{base_dom_id}_5i']").select(time.min.to_s.rjust(2, '0'))
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def select_datetime(field, options = {})
|
|
@@ -28,7 +28,7 @@ module Cucumber
|
|
|
28
28
|
|
|
29
29
|
# @example "event_starts_at_"
|
|
30
30
|
def get_base_dom_id_from_label_tag(field)
|
|
31
|
-
find(:xpath, "
|
|
31
|
+
find(:xpath, ".//label[contains(., '#{field}')]")['for'].gsub(/(_[1-5]i)$/, '')
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Description:
|
|
2
2
|
Generates a skeleton for a new feature. Both a simple .feature file and
|
|
3
3
|
a steps.rb file is generated. This generator should be used with moderation.
|
|
4
|
-
See
|
|
4
|
+
See https://github.com/cucumber/cucumber/wiki/Feature-Coupled-Steps-(Antipattern)
|
|
5
5
|
for details about the dangers involved.
|
|
6
6
|
|
|
7
7
|
This generator can take an optional list of attribute pairs similar to Rails'
|
|
@@ -13,7 +13,6 @@ module Cucumber
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def generate
|
|
16
|
-
empty_directory 'features/step_definitions'
|
|
17
16
|
template 'feature.erb', "features/manage_#{plural_name}.feature"
|
|
18
17
|
template 'steps.erb', "features/step_definitions/#{singular_name}_steps.rb"
|
|
19
18
|
gsub_file 'features/support/paths.rb', /'\/'/mi do |match|
|
|
@@ -25,4 +24,4 @@ module Cucumber
|
|
|
25
24
|
"#{$0} cucumber:feature ModelName [field:type, field:type]"
|
|
26
25
|
end
|
|
27
26
|
end
|
|
28
|
-
end
|
|
27
|
+
end
|
|
@@ -54,7 +54,7 @@ end
|
|
|
54
54
|
# | Note | Nice guy |
|
|
55
55
|
# | Wants Email? | |
|
|
56
56
|
#
|
|
57
|
-
# TODO: Add support for checkbox, select
|
|
57
|
+
# TODO: Add support for checkbox, select or option
|
|
58
58
|
# based on naming conventions.
|
|
59
59
|
#
|
|
60
60
|
When /^(?:|I )fill in the following:$/ do |fields|
|
|
@@ -143,6 +143,49 @@ Then /^the "([^"]*)" field(?: within (.*))? should not contain "([^"]*)"$/ do |f
|
|
|
143
143
|
end
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
+
Then /^the "([^"]*)" field should have the error "([^"]*)"$/ do |field, error_message|
|
|
147
|
+
element = find_field(field)
|
|
148
|
+
classes = element.find(:xpath, '..')[:class].split(' ')
|
|
149
|
+
|
|
150
|
+
form_for_input = element.find(:xpath, 'ancestor::form[1]')
|
|
151
|
+
using_formtastic = form_for_input[:class].include?('formtastic')
|
|
152
|
+
error_class = using_formtastic ? 'error' : 'field_with_errors'
|
|
153
|
+
|
|
154
|
+
if classes.respond_to? :should
|
|
155
|
+
classes.should include(error_class)
|
|
156
|
+
else
|
|
157
|
+
assert classes.include?(error_class)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
if page.respond_to?(:should)
|
|
161
|
+
if using_formtastic
|
|
162
|
+
error_paragraph = element.find(:xpath, '../*[@class="inline-errors"][1]')
|
|
163
|
+
error_paragraph.should have_content(error_message)
|
|
164
|
+
else
|
|
165
|
+
page.should have_content("#{field.titlecase} #{error_message}")
|
|
166
|
+
end
|
|
167
|
+
else
|
|
168
|
+
if using_formtastic
|
|
169
|
+
error_paragraph = element.find(:xpath, '../*[@class="inline-errors"][1]')
|
|
170
|
+
assert error_paragraph.has_content?(error_message)
|
|
171
|
+
else
|
|
172
|
+
assert page.has_content?("#{field.titlecase} #{error_message}")
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
Then /^the "([^"]*)" field should have no error$/ do |field|
|
|
178
|
+
element = find_field(field)
|
|
179
|
+
classes = element.find(:xpath, '..')[:class].split(' ')
|
|
180
|
+
if classes.respond_to? :should
|
|
181
|
+
classes.should_not include('field_with_errors')
|
|
182
|
+
classes.should_not include('error')
|
|
183
|
+
else
|
|
184
|
+
assert !classes.include?('field_with_errors')
|
|
185
|
+
assert !classes.include?('error')
|
|
186
|
+
end
|
|
187
|
+
end
|
|
188
|
+
|
|
146
189
|
Then /^the "([^"]*)" checkbox(?: within (.*))? should be checked$/ do |label, parent|
|
|
147
190
|
with_scope(parent) do
|
|
148
191
|
field_checked = find_field(label)['checked']
|
metadata
CHANGED
|
@@ -1,270 +1,266 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cucumber-rails
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.3
|
|
4
5
|
prerelease:
|
|
5
|
-
version: 1.0.2
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
8
|
-
-
|
|
9
|
-
-
|
|
7
|
+
authors:
|
|
8
|
+
- Aslak Hellesøy
|
|
9
|
+
- Dennis Blöte
|
|
10
10
|
- Rob Holland
|
|
11
11
|
autorequire:
|
|
12
12
|
bindir: bin
|
|
13
13
|
cert_chain: []
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
+
date: 2011-09-11 00:00:00.000000000Z
|
|
15
|
+
dependencies:
|
|
16
|
+
- !ruby/object:Gem::Dependency
|
|
18
17
|
name: cucumber
|
|
19
|
-
requirement: &
|
|
18
|
+
requirement: &2151850700 !ruby/object:Gem::Requirement
|
|
20
19
|
none: false
|
|
21
|
-
requirements:
|
|
20
|
+
requirements:
|
|
22
21
|
- - ~>
|
|
23
|
-
- !ruby/object:Gem::Version
|
|
24
|
-
version: 1.0.
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: 1.0.4
|
|
25
24
|
type: :runtime
|
|
26
25
|
prerelease: false
|
|
27
|
-
version_requirements: *
|
|
28
|
-
- !ruby/object:Gem::Dependency
|
|
26
|
+
version_requirements: *2151850700
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
29
28
|
name: nokogiri
|
|
30
|
-
requirement: &
|
|
29
|
+
requirement: &2151848220 !ruby/object:Gem::Requirement
|
|
31
30
|
none: false
|
|
32
|
-
requirements:
|
|
33
|
-
- -
|
|
34
|
-
- !ruby/object:Gem::Version
|
|
35
|
-
version: 1.
|
|
31
|
+
requirements:
|
|
32
|
+
- - ! '>='
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: 1.5.0
|
|
36
35
|
type: :runtime
|
|
37
36
|
prerelease: false
|
|
38
|
-
version_requirements: *
|
|
39
|
-
- !ruby/object:Gem::Dependency
|
|
37
|
+
version_requirements: *2151848220
|
|
38
|
+
- !ruby/object:Gem::Dependency
|
|
40
39
|
name: capybara
|
|
41
|
-
requirement: &
|
|
40
|
+
requirement: &2151846400 !ruby/object:Gem::Requirement
|
|
42
41
|
none: false
|
|
43
|
-
requirements:
|
|
44
|
-
- -
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: 1.
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: 1.1.1
|
|
47
46
|
type: :runtime
|
|
48
47
|
prerelease: false
|
|
49
|
-
version_requirements: *
|
|
50
|
-
- !ruby/object:Gem::Dependency
|
|
48
|
+
version_requirements: *2151846400
|
|
49
|
+
- !ruby/object:Gem::Dependency
|
|
51
50
|
name: rails
|
|
52
|
-
requirement: &
|
|
51
|
+
requirement: &2151844080 !ruby/object:Gem::Requirement
|
|
53
52
|
none: false
|
|
54
|
-
requirements:
|
|
55
|
-
- -
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
version: 3.1.0
|
|
53
|
+
requirements:
|
|
54
|
+
- - ! '>='
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: 3.1.0
|
|
58
57
|
type: :development
|
|
59
58
|
prerelease: false
|
|
60
|
-
version_requirements: *
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
59
|
+
version_requirements: *2151844080
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
62
61
|
name: rake
|
|
63
|
-
requirement: &
|
|
62
|
+
requirement: &2151842620 !ruby/object:Gem::Requirement
|
|
64
63
|
none: false
|
|
65
|
-
requirements:
|
|
66
|
-
- -
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
64
|
+
requirements:
|
|
65
|
+
- - ! '>='
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
68
67
|
version: 0.9.2
|
|
69
68
|
type: :development
|
|
70
69
|
prerelease: false
|
|
71
|
-
version_requirements: *
|
|
72
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
+
version_requirements: *2151842620
|
|
71
|
+
- !ruby/object:Gem::Dependency
|
|
73
72
|
name: bundler
|
|
74
|
-
requirement: &
|
|
73
|
+
requirement: &2151841480 !ruby/object:Gem::Requirement
|
|
75
74
|
none: false
|
|
76
|
-
requirements:
|
|
77
|
-
- -
|
|
78
|
-
- !ruby/object:Gem::Version
|
|
79
|
-
version: 1.0.
|
|
75
|
+
requirements:
|
|
76
|
+
- - ! '>='
|
|
77
|
+
- !ruby/object:Gem::Version
|
|
78
|
+
version: 1.0.18
|
|
80
79
|
type: :development
|
|
81
80
|
prerelease: false
|
|
82
|
-
version_requirements: *
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
81
|
+
version_requirements: *2151841480
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
84
83
|
name: aruba
|
|
85
|
-
requirement: &
|
|
84
|
+
requirement: &2151840620 !ruby/object:Gem::Requirement
|
|
86
85
|
none: false
|
|
87
|
-
requirements:
|
|
88
|
-
- -
|
|
89
|
-
- !ruby/object:Gem::Version
|
|
90
|
-
version: 0.4.
|
|
86
|
+
requirements:
|
|
87
|
+
- - ! '>='
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.4.6
|
|
91
90
|
type: :development
|
|
92
91
|
prerelease: false
|
|
93
|
-
version_requirements: *
|
|
94
|
-
- !ruby/object:Gem::Dependency
|
|
95
|
-
name: sqlite3
|
|
96
|
-
requirement: &
|
|
92
|
+
version_requirements: *2151840620
|
|
93
|
+
- !ruby/object:Gem::Dependency
|
|
94
|
+
name: sqlite3
|
|
95
|
+
requirement: &2151839400 !ruby/object:Gem::Requirement
|
|
97
96
|
none: false
|
|
98
|
-
requirements:
|
|
99
|
-
- -
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: 1.3.
|
|
97
|
+
requirements:
|
|
98
|
+
- - ! '>='
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: 1.3.4
|
|
102
101
|
type: :development
|
|
103
102
|
prerelease: false
|
|
104
|
-
version_requirements: *
|
|
105
|
-
- !ruby/object:Gem::Dependency
|
|
103
|
+
version_requirements: *2151839400
|
|
104
|
+
- !ruby/object:Gem::Dependency
|
|
106
105
|
name: rspec
|
|
107
|
-
requirement: &
|
|
106
|
+
requirement: &2151838600 !ruby/object:Gem::Requirement
|
|
108
107
|
none: false
|
|
109
|
-
requirements:
|
|
110
|
-
- -
|
|
111
|
-
- !ruby/object:Gem::Version
|
|
108
|
+
requirements:
|
|
109
|
+
- - ! '>='
|
|
110
|
+
- !ruby/object:Gem::Version
|
|
112
111
|
version: 2.6.0
|
|
113
112
|
type: :development
|
|
114
113
|
prerelease: false
|
|
115
|
-
version_requirements: *
|
|
116
|
-
- !ruby/object:Gem::Dependency
|
|
114
|
+
version_requirements: *2151838600
|
|
115
|
+
- !ruby/object:Gem::Dependency
|
|
117
116
|
name: rspec-rails
|
|
118
|
-
requirement: &
|
|
117
|
+
requirement: &2151837880 !ruby/object:Gem::Requirement
|
|
119
118
|
none: false
|
|
120
|
-
requirements:
|
|
121
|
-
- -
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
119
|
+
requirements:
|
|
120
|
+
- - ! '>='
|
|
121
|
+
- !ruby/object:Gem::Version
|
|
123
122
|
version: 2.6.1
|
|
124
123
|
type: :development
|
|
125
124
|
prerelease: false
|
|
126
|
-
version_requirements: *
|
|
127
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
+
version_requirements: *2151837880
|
|
126
|
+
- !ruby/object:Gem::Dependency
|
|
128
127
|
name: factory_girl
|
|
129
|
-
requirement: &
|
|
128
|
+
requirement: &2151836780 !ruby/object:Gem::Requirement
|
|
130
129
|
none: false
|
|
131
|
-
requirements:
|
|
132
|
-
- -
|
|
133
|
-
- !ruby/object:Gem::Version
|
|
134
|
-
version: 2.
|
|
130
|
+
requirements:
|
|
131
|
+
- - ! '>='
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: 2.1.0
|
|
135
134
|
type: :development
|
|
136
135
|
prerelease: false
|
|
137
|
-
version_requirements: *
|
|
138
|
-
- !ruby/object:Gem::Dependency
|
|
136
|
+
version_requirements: *2151836780
|
|
137
|
+
- !ruby/object:Gem::Dependency
|
|
139
138
|
name: database_cleaner
|
|
140
|
-
requirement: &
|
|
139
|
+
requirement: &2151835760 !ruby/object:Gem::Requirement
|
|
141
140
|
none: false
|
|
142
|
-
requirements:
|
|
143
|
-
- -
|
|
144
|
-
- !ruby/object:Gem::Version
|
|
141
|
+
requirements:
|
|
142
|
+
- - ! '>='
|
|
143
|
+
- !ruby/object:Gem::Version
|
|
145
144
|
version: 0.6.7
|
|
146
145
|
type: :development
|
|
147
146
|
prerelease: false
|
|
148
|
-
version_requirements: *
|
|
149
|
-
- !ruby/object:Gem::Dependency
|
|
147
|
+
version_requirements: *2151835760
|
|
148
|
+
- !ruby/object:Gem::Dependency
|
|
150
149
|
name: mongoid
|
|
151
|
-
requirement: &
|
|
150
|
+
requirement: &2151834580 !ruby/object:Gem::Requirement
|
|
152
151
|
none: false
|
|
153
|
-
requirements:
|
|
154
|
-
- -
|
|
155
|
-
- !ruby/object:Gem::Version
|
|
156
|
-
version: 2.0
|
|
152
|
+
requirements:
|
|
153
|
+
- - ! '>='
|
|
154
|
+
- !ruby/object:Gem::Version
|
|
155
|
+
version: 2.2.0
|
|
157
156
|
type: :development
|
|
158
157
|
prerelease: false
|
|
159
|
-
version_requirements: *
|
|
160
|
-
- !ruby/object:Gem::Dependency
|
|
158
|
+
version_requirements: *2151834580
|
|
159
|
+
- !ruby/object:Gem::Dependency
|
|
161
160
|
name: bson_ext
|
|
162
|
-
requirement: &
|
|
161
|
+
requirement: &2151833620 !ruby/object:Gem::Requirement
|
|
163
162
|
none: false
|
|
164
|
-
requirements:
|
|
165
|
-
- -
|
|
166
|
-
- !ruby/object:Gem::Version
|
|
163
|
+
requirements:
|
|
164
|
+
- - ! '>='
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
167
166
|
version: 1.3.1
|
|
168
167
|
type: :development
|
|
169
168
|
prerelease: false
|
|
170
|
-
version_requirements: *
|
|
171
|
-
- !ruby/object:Gem::Dependency
|
|
169
|
+
version_requirements: *2151833620
|
|
170
|
+
- !ruby/object:Gem::Dependency
|
|
172
171
|
name: turn
|
|
173
|
-
requirement: &
|
|
172
|
+
requirement: &2151832380 !ruby/object:Gem::Requirement
|
|
174
173
|
none: false
|
|
175
|
-
requirements:
|
|
176
|
-
- -
|
|
177
|
-
- !ruby/object:Gem::Version
|
|
174
|
+
requirements:
|
|
175
|
+
- - ! '>='
|
|
176
|
+
- !ruby/object:Gem::Version
|
|
178
177
|
version: 0.8.2
|
|
179
178
|
type: :development
|
|
180
179
|
prerelease: false
|
|
181
|
-
version_requirements: *
|
|
182
|
-
- !ruby/object:Gem::Dependency
|
|
180
|
+
version_requirements: *2151832380
|
|
181
|
+
- !ruby/object:Gem::Dependency
|
|
183
182
|
name: sass
|
|
184
|
-
requirement: &
|
|
183
|
+
requirement: &2151831520 !ruby/object:Gem::Requirement
|
|
185
184
|
none: false
|
|
186
|
-
requirements:
|
|
187
|
-
- -
|
|
188
|
-
- !ruby/object:Gem::Version
|
|
189
|
-
version: 3.1.
|
|
185
|
+
requirements:
|
|
186
|
+
- - ! '>='
|
|
187
|
+
- !ruby/object:Gem::Version
|
|
188
|
+
version: 3.1.7
|
|
190
189
|
type: :development
|
|
191
190
|
prerelease: false
|
|
192
|
-
version_requirements: *
|
|
193
|
-
- !ruby/object:Gem::Dependency
|
|
191
|
+
version_requirements: *2151831520
|
|
192
|
+
- !ruby/object:Gem::Dependency
|
|
194
193
|
name: coffee-script
|
|
195
|
-
requirement: &
|
|
194
|
+
requirement: &2151830520 !ruby/object:Gem::Requirement
|
|
196
195
|
none: false
|
|
197
|
-
requirements:
|
|
198
|
-
- -
|
|
199
|
-
- !ruby/object:Gem::Version
|
|
196
|
+
requirements:
|
|
197
|
+
- - ! '>='
|
|
198
|
+
- !ruby/object:Gem::Version
|
|
200
199
|
version: 2.2.0
|
|
201
200
|
type: :development
|
|
202
201
|
prerelease: false
|
|
203
|
-
version_requirements: *
|
|
204
|
-
- !ruby/object:Gem::Dependency
|
|
202
|
+
version_requirements: *2151830520
|
|
203
|
+
- !ruby/object:Gem::Dependency
|
|
205
204
|
name: uglifier
|
|
206
|
-
requirement: &
|
|
205
|
+
requirement: &2151829260 !ruby/object:Gem::Requirement
|
|
207
206
|
none: false
|
|
208
|
-
requirements:
|
|
209
|
-
- -
|
|
210
|
-
- !ruby/object:Gem::Version
|
|
211
|
-
version: 1.0.
|
|
207
|
+
requirements:
|
|
208
|
+
- - ! '>='
|
|
209
|
+
- !ruby/object:Gem::Version
|
|
210
|
+
version: 1.0.3
|
|
212
211
|
type: :development
|
|
213
212
|
prerelease: false
|
|
214
|
-
version_requirements: *
|
|
215
|
-
- !ruby/object:Gem::Dependency
|
|
213
|
+
version_requirements: *2151829260
|
|
214
|
+
- !ruby/object:Gem::Dependency
|
|
216
215
|
name: jquery-rails
|
|
217
|
-
requirement: &
|
|
216
|
+
requirement: &2151827860 !ruby/object:Gem::Requirement
|
|
218
217
|
none: false
|
|
219
|
-
requirements:
|
|
220
|
-
- -
|
|
221
|
-
- !ruby/object:Gem::Version
|
|
222
|
-
version: 1.0.
|
|
218
|
+
requirements:
|
|
219
|
+
- - ! '>='
|
|
220
|
+
- !ruby/object:Gem::Version
|
|
221
|
+
version: 1.0.14
|
|
223
222
|
type: :development
|
|
224
223
|
prerelease: false
|
|
225
|
-
version_requirements: *
|
|
226
|
-
- !ruby/object:Gem::Dependency
|
|
224
|
+
version_requirements: *2151827860
|
|
225
|
+
- !ruby/object:Gem::Dependency
|
|
227
226
|
name: yard
|
|
228
|
-
requirement: &
|
|
227
|
+
requirement: &2151827160 !ruby/object:Gem::Requirement
|
|
229
228
|
none: false
|
|
230
|
-
requirements:
|
|
231
|
-
- -
|
|
232
|
-
- !ruby/object:Gem::Version
|
|
233
|
-
version: 0.7.
|
|
229
|
+
requirements:
|
|
230
|
+
- - =
|
|
231
|
+
- !ruby/object:Gem::Version
|
|
232
|
+
version: 0.7.2
|
|
234
233
|
type: :development
|
|
235
234
|
prerelease: false
|
|
236
|
-
version_requirements: *
|
|
237
|
-
- !ruby/object:Gem::Dependency
|
|
235
|
+
version_requirements: *2151827160
|
|
236
|
+
- !ruby/object:Gem::Dependency
|
|
238
237
|
name: rdiscount
|
|
239
|
-
requirement: &
|
|
238
|
+
requirement: &2151825760 !ruby/object:Gem::Requirement
|
|
240
239
|
none: false
|
|
241
|
-
requirements:
|
|
242
|
-
- -
|
|
243
|
-
- !ruby/object:Gem::Version
|
|
240
|
+
requirements:
|
|
241
|
+
- - =
|
|
242
|
+
- !ruby/object:Gem::Version
|
|
244
243
|
version: 1.6.8
|
|
245
244
|
type: :development
|
|
246
245
|
prerelease: false
|
|
247
|
-
version_requirements: *
|
|
248
|
-
- !ruby/object:Gem::Dependency
|
|
246
|
+
version_requirements: *2151825760
|
|
247
|
+
- !ruby/object:Gem::Dependency
|
|
249
248
|
name: bcat
|
|
250
|
-
requirement: &
|
|
249
|
+
requirement: &2151825080 !ruby/object:Gem::Requirement
|
|
251
250
|
none: false
|
|
252
|
-
requirements:
|
|
253
|
-
- -
|
|
254
|
-
- !ruby/object:Gem::Version
|
|
251
|
+
requirements:
|
|
252
|
+
- - =
|
|
253
|
+
- !ruby/object:Gem::Version
|
|
255
254
|
version: 0.6.1
|
|
256
255
|
type: :development
|
|
257
256
|
prerelease: false
|
|
258
|
-
version_requirements: *
|
|
257
|
+
version_requirements: *2151825080
|
|
259
258
|
description: Cucumber Generators and Runtime for Rails
|
|
260
259
|
email: cukes@googlegroups.com
|
|
261
260
|
executables: []
|
|
262
|
-
|
|
263
261
|
extensions: []
|
|
264
|
-
|
|
265
262
|
extra_rdoc_files: []
|
|
266
|
-
|
|
267
|
-
files:
|
|
263
|
+
files:
|
|
268
264
|
- .gitignore
|
|
269
265
|
- .rspec
|
|
270
266
|
- .rvmrc
|
|
@@ -290,13 +286,14 @@ files:
|
|
|
290
286
|
- features/capybara_javascript_drivers.feature
|
|
291
287
|
- features/database_cleaner.feature
|
|
292
288
|
- features/emulate_javascript.feature
|
|
289
|
+
- features/field_with_errors.feature
|
|
293
290
|
- features/inspect_query_string.feature
|
|
294
291
|
- features/install_cucumber_rails.feature
|
|
295
292
|
- features/mongoid.feature
|
|
296
293
|
- features/multiple_databases.feature
|
|
297
294
|
- features/named_selectors.feature
|
|
298
295
|
- features/no_database.feature
|
|
299
|
-
- features/
|
|
296
|
+
- features/pseudo_class_selectors.feature
|
|
300
297
|
- features/rerun_profile.feature
|
|
301
298
|
- features/rest_api.feature
|
|
302
299
|
- features/routing.feature
|
|
@@ -350,49 +347,47 @@ files:
|
|
|
350
347
|
- spec/spec_helper.rb
|
|
351
348
|
homepage: http://cukes.info
|
|
352
349
|
licenses: []
|
|
353
|
-
|
|
354
350
|
post_install_message:
|
|
355
351
|
rdoc_options: []
|
|
356
|
-
|
|
357
|
-
require_paths:
|
|
352
|
+
require_paths:
|
|
358
353
|
- lib
|
|
359
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
354
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
360
355
|
none: false
|
|
361
|
-
requirements:
|
|
362
|
-
- -
|
|
363
|
-
- !ruby/object:Gem::Version
|
|
364
|
-
|
|
365
|
-
segments:
|
|
356
|
+
requirements:
|
|
357
|
+
- - ! '>='
|
|
358
|
+
- !ruby/object:Gem::Version
|
|
359
|
+
version: '0'
|
|
360
|
+
segments:
|
|
366
361
|
- 0
|
|
367
|
-
|
|
368
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
362
|
+
hash: -2324867846435926085
|
|
363
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
369
364
|
none: false
|
|
370
|
-
requirements:
|
|
371
|
-
- -
|
|
372
|
-
- !ruby/object:Gem::Version
|
|
373
|
-
|
|
374
|
-
segments:
|
|
365
|
+
requirements:
|
|
366
|
+
- - ! '>='
|
|
367
|
+
- !ruby/object:Gem::Version
|
|
368
|
+
version: '0'
|
|
369
|
+
segments:
|
|
375
370
|
- 0
|
|
376
|
-
|
|
371
|
+
hash: -2324867846435926085
|
|
377
372
|
requirements: []
|
|
378
|
-
|
|
379
373
|
rubyforge_project:
|
|
380
|
-
rubygems_version: 1.8.
|
|
374
|
+
rubygems_version: 1.8.6
|
|
381
375
|
signing_key:
|
|
382
376
|
specification_version: 3
|
|
383
|
-
summary: cucumber-rails-1.0.
|
|
384
|
-
test_files:
|
|
377
|
+
summary: cucumber-rails-1.0.3
|
|
378
|
+
test_files:
|
|
385
379
|
- features/allow_rescue.feature
|
|
386
380
|
- features/capybara_javascript_drivers.feature
|
|
387
381
|
- features/database_cleaner.feature
|
|
388
382
|
- features/emulate_javascript.feature
|
|
383
|
+
- features/field_with_errors.feature
|
|
389
384
|
- features/inspect_query_string.feature
|
|
390
385
|
- features/install_cucumber_rails.feature
|
|
391
386
|
- features/mongoid.feature
|
|
392
387
|
- features/multiple_databases.feature
|
|
393
388
|
- features/named_selectors.feature
|
|
394
389
|
- features/no_database.feature
|
|
395
|
-
- features/
|
|
390
|
+
- features/pseudo_class_selectors.feature
|
|
396
391
|
- features/rerun_profile.feature
|
|
397
392
|
- features/rest_api.feature
|
|
398
393
|
- features/routing.feature
|