cucumber-rails 0.3.0 → 1.0.0

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.
Files changed (112) hide show
  1. data/.gitignore +1 -0
  2. data/.rspec +1 -0
  3. data/.rvmrc +1 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +194 -0
  6. data/History.txt +101 -1
  7. data/LICENSE +22 -0
  8. data/README.md +77 -0
  9. data/Rakefile +3 -19
  10. data/config/cucumber.yml +1 -0
  11. data/cucumber-rails.gemspec +37 -101
  12. data/dev_tasks/cucumber.rake +1 -1
  13. data/dev_tasks/rspec.rake +6 -11
  14. data/features/allow_rescue.feature +63 -0
  15. data/features/capybara_javascript_drivers.feature +87 -0
  16. data/features/database_cleaner.feature +44 -0
  17. data/features/emulate_javascript.feature +34 -0
  18. data/features/inspect_query_string.feature +37 -0
  19. data/features/install_cucumber_rails.feature +16 -0
  20. data/features/mongoid.feature +53 -0
  21. data/features/multiple_databases.feature +74 -0
  22. data/features/named_selectors.feature +33 -0
  23. data/features/no_database.feature +70 -0
  24. data/features/pseduo_class_selectors.feature +24 -0
  25. data/features/rerun_profile.feature +38 -0
  26. data/features/rest_api.feature +47 -0
  27. data/features/routing.feature +18 -0
  28. data/features/select_dates.feature +99 -0
  29. data/features/step_definitions/cucumber_rails_steps.rb +80 -6
  30. data/features/support/env.rb +8 -2
  31. data/features/test_unit.feature +43 -0
  32. data/lib/cucumber/rails/capybara/javascript_emulation.rb +83 -0
  33. data/lib/cucumber/rails/capybara/select_dates_and_times.rb +50 -0
  34. data/lib/cucumber/rails/capybara.rb +6 -0
  35. data/lib/cucumber/rails/hooks/active_record.rb +14 -0
  36. data/lib/cucumber/rails/hooks/allow_rescue.rb +8 -0
  37. data/lib/cucumber/rails/hooks/database_cleaner.rb +13 -0
  38. data/lib/cucumber/rails/hooks/mail.rb +5 -0
  39. data/lib/cucumber/rails/hooks.rb +4 -0
  40. data/lib/cucumber/rails/rspec.rb +4 -6
  41. data/lib/cucumber/rails/world.rb +13 -35
  42. data/lib/cucumber/rails.rb +8 -0
  43. data/lib/cucumber/rails3/action_controller.rb +12 -0
  44. data/lib/cucumber/rails3/active_record.rb +8 -0
  45. data/lib/cucumber/rails3/application.rb +17 -0
  46. data/lib/cucumber/rails3.rb +16 -0
  47. data/lib/cucumber/web/tableish.rb +50 -9
  48. data/lib/generators/cucumber/feature/feature_generator.rb +8 -17
  49. data/lib/generators/cucumber/feature/named_arg.rb +2 -0
  50. data/{templates/feature → lib/generators/cucumber/feature/templates}/feature.erb +10 -12
  51. data/{templates/feature → lib/generators/cucumber/feature/templates}/steps.erb +1 -1
  52. data/lib/generators/cucumber/install/USAGE +15 -0
  53. data/lib/generators/cucumber/install/install_generator.rb +88 -0
  54. data/lib/generators/cucumber/install/templates/config/cucumber.yml.erb +8 -0
  55. data/lib/generators/cucumber/install/templates/step_definitions/web_steps.rb.erb +192 -0
  56. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_cs.rb.erb +127 -0
  57. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_da.rb.erb +105 -0
  58. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_de.rb.erb +127 -0
  59. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_es.rb.erb +127 -0
  60. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_ja.rb.erb +140 -0
  61. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_ko.rb.erb +142 -0
  62. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_no.rb.erb +105 -0
  63. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_pt-BR.rb.erb +132 -0
  64. data/lib/generators/cucumber/install/templates/support/_rails_each_run.rb.erb +36 -0
  65. data/lib/generators/cucumber/install/templates/support/_rails_prefork.rb.erb +1 -0
  66. data/{templates/skeleton → lib/generators/cucumber/install/templates}/support/capybara.rb +0 -4
  67. data/{templates/skeleton → lib/generators/cucumber/install/templates}/support/paths.rb +11 -5
  68. data/{templates/skeleton → lib/generators/cucumber/install/templates}/support/rails.rb.erb +2 -2
  69. data/{templates/skeleton → lib/generators/cucumber/install/templates}/support/rails_spork.rb.erb +2 -2
  70. data/lib/generators/cucumber/install/templates/support/selectors.rb +39 -0
  71. data/lib/generators/cucumber/install/templates/support/web_steps_warning.txt +19 -0
  72. data/{templates/skeleton → lib/generators/cucumber/install/templates}/tasks/cucumber.rake.erb +18 -0
  73. data/spec/cucumber/web/tableish_spec.rb +83 -6
  74. data/spec/spec_helper.rb +1 -4
  75. metadata +299 -73
  76. data/HACKING.rdoc +0 -34
  77. data/README.rdoc +0 -64
  78. data/VERSION +0 -1
  79. data/features/rails2.feature +0 -56
  80. data/features/rails3.feature +0 -52
  81. data/features/support/matchers/files.rb +0 -17
  82. data/generators/cucumber/USAGE +0 -14
  83. data/generators/cucumber/cucumber_generator.rb +0 -89
  84. data/generators/cucumber/templates/step_definitions/web_steps_ja.rb.erb +0 -136
  85. data/generators/feature/USAGE +0 -12
  86. data/generators/feature/feature_generator.rb +0 -47
  87. data/lib/cucumber/rails/action_controller.rb +0 -65
  88. data/lib/cucumber/rails/active_record.rb +0 -34
  89. data/lib/cucumber/rails/capybara_javascript_emulation.rb +0 -72
  90. data/lib/cucumber/rails/test_unit.rb +0 -9
  91. data/lib/generators/cucumber/feature/feature_base.rb +0 -29
  92. data/lib/generators/cucumber/skeleton/USAGE +0 -21
  93. data/lib/generators/cucumber/skeleton/skeleton_base.rb +0 -202
  94. data/lib/generators/cucumber/skeleton/skeleton_generator.rb +0 -64
  95. data/rvm.yml +0 -22
  96. data/spec/generators/cucumber/skeleton/skeleton_base_spec.rb +0 -84
  97. data/spec/spec.opts +0 -2
  98. data/templates/skeleton/config/cucumber.yml.erb +0 -7
  99. data/templates/skeleton/environments/cucumber.rb.erb +0 -37
  100. data/templates/skeleton/step_definitions/capybara_steps.rb.erb +0 -197
  101. data/templates/skeleton/step_definitions/web_steps_cs.rb.erb +0 -136
  102. data/templates/skeleton/step_definitions/web_steps_da.rb.erb +0 -114
  103. data/templates/skeleton/step_definitions/web_steps_de.rb.erb +0 -136
  104. data/templates/skeleton/step_definitions/web_steps_es.rb.erb +0 -136
  105. data/templates/skeleton/step_definitions/web_steps_no.rb.erb +0 -114
  106. data/templates/skeleton/step_definitions/web_steps_pt-BR.rb.erb +0 -140
  107. data/templates/skeleton/step_definitions/webrat_steps.rb.erb +0 -268
  108. data/templates/skeleton/support/_rails_each_run.rb +0 -34
  109. data/templates/skeleton/support/_rails_prefork.rb.erb +0 -10
  110. data/templates/skeleton/support/webrat.rb +0 -8
  111. /data/{templates/skeleton → lib/generators/cucumber/install/templates}/script/cucumber +0 -0
  112. /data/{templates/skeleton → lib/generators/cucumber/install/templates}/support/edit_warning.txt +0 -0
data/.gitignore CHANGED
@@ -2,3 +2,4 @@ pkg
2
2
  doc
3
3
  tmp
4
4
  coverage
5
+ .bundle
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --format progress --colour
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm @cucumber --create
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,194 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ cucumber-rails (1.0.0)
5
+ capybara (>= 1.0.0)
6
+ cucumber (~> 1.0.0)
7
+ nokogiri (>= 1.4.4)
8
+ rack-test (>= 0.5.7)
9
+
10
+ GEM
11
+ remote: http://rubygems.org/
12
+ specs:
13
+ actionmailer (3.1.0.rc4)
14
+ actionpack (= 3.1.0.rc4)
15
+ mail (~> 2.3.0)
16
+ actionpack (3.1.0.rc4)
17
+ activemodel (= 3.1.0.rc4)
18
+ activesupport (= 3.1.0.rc4)
19
+ builder (~> 3.0.0)
20
+ erubis (~> 2.7.0)
21
+ i18n (~> 0.6)
22
+ rack (~> 1.3.0)
23
+ rack-cache (~> 1.0.1)
24
+ rack-mount (~> 0.8.1)
25
+ rack-test (~> 0.6.0)
26
+ sprockets (~> 2.0.0.beta.10)
27
+ tzinfo (~> 0.3.27)
28
+ activemodel (3.1.0.rc4)
29
+ activesupport (= 3.1.0.rc4)
30
+ bcrypt-ruby (~> 2.1.4)
31
+ builder (~> 3.0.0)
32
+ i18n (~> 0.6)
33
+ activerecord (3.1.0.rc4)
34
+ activemodel (= 3.1.0.rc4)
35
+ activesupport (= 3.1.0.rc4)
36
+ arel (~> 2.1.1)
37
+ tzinfo (~> 0.3.27)
38
+ activeresource (3.1.0.rc4)
39
+ activemodel (= 3.1.0.rc4)
40
+ activesupport (= 3.1.0.rc4)
41
+ activesupport (3.1.0.rc4)
42
+ multi_json (~> 1.0)
43
+ ansi (1.2.5)
44
+ arel (2.1.1)
45
+ aruba (0.4.2)
46
+ bcat (>= 0.6.1)
47
+ childprocess (>= 0.1.9)
48
+ cucumber (>= 0.10.7)
49
+ rdiscount (>= 1.6.8)
50
+ rspec (>= 2.6.0)
51
+ bcat (0.6.1)
52
+ rack (~> 1.0)
53
+ bcrypt-ruby (2.1.4)
54
+ bson (1.3.1)
55
+ bson_ext (1.3.1)
56
+ builder (3.0.0)
57
+ capybara (1.0.0)
58
+ mime-types (>= 1.16)
59
+ nokogiri (>= 1.3.3)
60
+ rack (>= 1.0.0)
61
+ rack-test (>= 0.5.4)
62
+ selenium-webdriver (~> 0.2.0)
63
+ xpath (~> 0.1.4)
64
+ childprocess (0.1.9)
65
+ ffi (~> 1.0.6)
66
+ coffee-script (2.2.0)
67
+ coffee-script-source
68
+ execjs
69
+ coffee-script-source (1.1.1)
70
+ cucumber (1.0.0)
71
+ builder (>= 2.1.2)
72
+ diff-lcs (>= 1.1.2)
73
+ gherkin (~> 2.4.1)
74
+ json (>= 1.4.6)
75
+ term-ansicolor (>= 1.0.5)
76
+ database_cleaner (0.6.7)
77
+ diff-lcs (1.1.2)
78
+ erubis (2.7.0)
79
+ execjs (1.2.0)
80
+ multi_json (~> 1.0)
81
+ factory_girl (2.0.0.beta2)
82
+ ffi (1.0.9)
83
+ gherkin (2.4.1)
84
+ json (>= 1.4.6)
85
+ hike (1.1.0)
86
+ i18n (0.6.0)
87
+ jquery-rails (1.0.11)
88
+ railties (~> 3.0)
89
+ thor (~> 0.14)
90
+ json (1.5.2)
91
+ json_pure (1.5.2)
92
+ mail (2.3.0)
93
+ i18n (>= 0.4.0)
94
+ mime-types (~> 1.16)
95
+ treetop (~> 1.4.8)
96
+ mime-types (1.16)
97
+ mongo (1.3.1)
98
+ bson (>= 1.3.1)
99
+ mongoid (2.0.2)
100
+ activemodel (~> 3.0)
101
+ mongo (~> 1.3)
102
+ tzinfo (~> 0.3.22)
103
+ multi_json (1.0.3)
104
+ nokogiri (1.4.6)
105
+ polyglot (0.3.1)
106
+ rack (1.3.0)
107
+ rack-cache (1.0.2)
108
+ rack (>= 0.4)
109
+ rack-mount (0.8.1)
110
+ rack (>= 1.0.0)
111
+ rack-ssl (1.3.2)
112
+ rack
113
+ rack-test (0.6.0)
114
+ rack (>= 1.0)
115
+ rails (3.1.0.rc4)
116
+ actionmailer (= 3.1.0.rc4)
117
+ actionpack (= 3.1.0.rc4)
118
+ activerecord (= 3.1.0.rc4)
119
+ activeresource (= 3.1.0.rc4)
120
+ activesupport (= 3.1.0.rc4)
121
+ bundler (~> 1.0)
122
+ railties (= 3.1.0.rc4)
123
+ railties (3.1.0.rc4)
124
+ actionpack (= 3.1.0.rc4)
125
+ activesupport (= 3.1.0.rc4)
126
+ rack-ssl (~> 1.3.2)
127
+ rake (>= 0.8.7)
128
+ rdoc (~> 3.4)
129
+ thor (~> 0.14.6)
130
+ rake (0.9.2)
131
+ rdiscount (1.6.8)
132
+ rdoc (3.6.1)
133
+ rspec (2.6.0)
134
+ rspec-core (~> 2.6.0)
135
+ rspec-expectations (~> 2.6.0)
136
+ rspec-mocks (~> 2.6.0)
137
+ rspec-core (2.6.4)
138
+ rspec-expectations (2.6.0)
139
+ diff-lcs (~> 1.1.2)
140
+ rspec-mocks (2.6.0)
141
+ rspec-rails (2.6.1)
142
+ actionpack (~> 3.0)
143
+ activesupport (~> 3.0)
144
+ railties (~> 3.0)
145
+ rspec (~> 2.6.0)
146
+ rubyzip (0.9.4)
147
+ sass (3.1.3)
148
+ selenium-webdriver (0.2.1)
149
+ childprocess (>= 0.1.7)
150
+ ffi (>= 1.0.7)
151
+ json_pure
152
+ rubyzip
153
+ sprockets (2.0.0.beta.10)
154
+ hike (~> 1.0)
155
+ rack (~> 1.0)
156
+ tilt (!= 1.3.0, ~> 1.1)
157
+ sqlite3 (1.3.3)
158
+ sqlite3-ruby (1.3.3)
159
+ sqlite3 (>= 1.3.3)
160
+ term-ansicolor (1.0.5)
161
+ thor (0.14.6)
162
+ tilt (1.3.2)
163
+ treetop (1.4.9)
164
+ polyglot (>= 0.3.1)
165
+ turn (0.8.2)
166
+ ansi (>= 1.2.2)
167
+ tzinfo (0.3.28)
168
+ uglifier (0.5.4)
169
+ execjs (>= 0.3.0)
170
+ multi_json (>= 1.0.2)
171
+ xpath (0.1.4)
172
+ nokogiri (~> 1.3)
173
+
174
+ PLATFORMS
175
+ ruby
176
+
177
+ DEPENDENCIES
178
+ aruba (>= 0.4.1)
179
+ bson_ext (>= 1.3.1)
180
+ bundler (>= 1.0.15)
181
+ coffee-script (>= 2.2.0)
182
+ cucumber-rails!
183
+ database_cleaner (>= 0.6.7)
184
+ factory_girl (>= 2.0.0.beta2)
185
+ jquery-rails (>= 1.0.9)
186
+ mongoid (>= 2.0.2)
187
+ rails (>= 3.1.0.rc4)
188
+ rake (>= 0.9.2)
189
+ rspec (>= 2.6.0)
190
+ rspec-rails (>= 2.6.1)
191
+ sass (>= 3.1.1)
192
+ sqlite3-ruby (>= 1.3.3)
193
+ turn (>= 0.8.2)
194
+ uglifier (>= 0.5.4)
data/History.txt CHANGED
@@ -1,4 +1,104 @@
1
- == 0.3.0
1
+ == 0.5.2 2011-06-07
2
+
3
+ === New Features
4
+ * Upgraded to Capybara 1.0.0.rc1 (Aslak Hellesøy)
5
+ * Add stats to generator (#144 Aslak Hellesøy)
6
+
7
+ == 0.5.1 2011-05-25
8
+
9
+ === Bugfixes
10
+ * Mixed DB access feature for @javascript drivers (#142 Alexander Mankuta)
11
+ * cucumber:feature and integers. not creating feature correctly (#30 John Ivanoff, Aslak Hellesøy)
12
+ * New project can't find capybara's "visit" (#143 Aslak Hellesøy)
13
+ * rails generate cucumber:install attempts double run (#140 Aslak Hellesøy)
14
+
15
+ == 0.5.0 2011-05-17
16
+
17
+ === Bugfixes
18
+ * undefined method `add_assertion' for nil:NilClass (#96, #97, #98 Aslak Hellesøy)
19
+ * Capybara name error from env.rb (#125 Aslak Hellesøy)
20
+ * Fixed date-localization bug (#138 Michael Opitz)
21
+
22
+ == 0.5.0.beta1 2011-05-08
23
+
24
+ === Removed features
25
+ * Dropped support for Rails 2 (Aslak Hellesøy)
26
+ * Dropped support for Webrat (Aslak Hellesøy)
27
+ * Removed database cleaner strategy overrides (#134 Daniel Morrison, Daniel Duvall)
28
+
29
+ === Improvements
30
+ * Upgrade to Capybara 1.0.0.beta1 or newer (#129, #130 Simon Menke, Klaus Hartl, Aslak Hellesøy)
31
+ * Generated paths.rb cleanup (#133 Tim Pope)
32
+ * Allow css pseudo-classes in scopers (#122 twalpole)
33
+
34
+ == 0.4.1 2011-04-05
35
+
36
+ === Bugfixes
37
+ * Fixed incorrect warning in generated files. (#115 Emanuele Vicentini)
38
+ * Fixed incorrect hooks for DatabaseCleaner (#113 Markus Bengts)
39
+ * Throw an error if the user forgot to add DatabaseCleaner to the Gemfile, allowing them to decide whether or not to use it. (#36 Aslak Hellesøy, Ryan Bigg)
40
+
41
+ == 0.4.0 2011-03-20
42
+
43
+ === New Features
44
+ * Add selectors helper (#63 Bodaniel Jeanes)
45
+ * Capybara date stepdefs (#66 Rob Holland)
46
+ * The World now includes Rack::Test::Methods, allowing get, post, put delete (Aslak Hellesøy)
47
+
48
+ === Bugfixes
49
+ * Allow setting rails root (#102, #103, Fabio Kreusch)
50
+ * Fix Date selection steps and helpers (#93, #99, #100, #101, #109 James Herdman, John Ferlito, twalpole, Geoff Drake, Ricky Robinson, Michael Fleet)
51
+ * Can not run cucumber-rails (0.4.0.beta.1) with cucumber (0.10.0) (#89 Aslak Hellesøy)
52
+ * Installing cucumber-rails without a database.yml fails (#61 Aslak Hellesøy)
53
+ * Fix #click_link compatibility with Capybara 0.4. (#54, #77, #78, #80 Aslak Hellesøy)
54
+ * Support for projects using other ORMs than ActiveRecord (or nothing at all). (#18, #22, #46, #85, #86, #87, #90 Aslak Hellesøy)
55
+ * @allow-rescue not working in rails 3 (#31 Joe Ferris, Aslak Hellesøy)
56
+ * Gem dependency on Nokogiri (for #tableish). (#53 Aslak Hellesøy)
57
+
58
+ === Removed Features
59
+ * Automatic detection of RSpec, Capybara and Webrat for install generator. Set gems explicitly in your Gemfile (Rails3) or environment.rb (Rails2)
60
+ * Then /^(?:|I )should see JSON:$/. Use #get and #last_response instead. See features/rails3.feature. (Aslak Hellesøy)
61
+ * Cucumber::Rails::World.use_transactional_fixtures. TODO: Explain what to do instead.
62
+ No more Cucumber::Rails::World.use_transactional_fixtures = false. Use DatabaseCleaner.strategy = :none instead
63
+
64
+ == 0.3.2 2010-06-06
65
+
66
+ == Changed features
67
+ * web_steps.rb uses "([^"]*)" instead of "([^\"]*)" (Aslak Hellesøy)
68
+ * Renamed cucumber:skeleton to cucumber:install (Rails 3 generator). (Aslak Hellesøy)
69
+ * Upgraded to be compatible with rspec 2.0.0.beta.10 (#35 Gabor Ratky, Pete Yandell)
70
+
71
+ == 0.3.1 2010-05-03
72
+
73
+ This release has a lot of bugfixes! The test suite (based on Aruba) verifies that Cucumber-Rails
74
+ now works with various combinations of:
75
+
76
+ * Cucumber 0.6.x/0.7.2
77
+ * Rails2/Rails3
78
+ * RSpec1/RSpec2/Test-Unit/Mini-Uint
79
+ * Webrat/CapyBara
80
+ * MRI 1.8.6/1.8.7/1.9.1
81
+
82
+ This one requires a special mention: The handy (but error prone) rerun functionality has moved to a
83
+ separate rerun profile, so all rerun.txt related issues should now be gone.
84
+
85
+ == New features
86
+ * New Capybara Step Definitions for Dates. (Rob Holland)
87
+ * Steps now recognise "Given I am on the users page" etc. (Solomon White)
88
+ * Relegate rerun to its own profile and rake task (Mike Sassak)
89
+ * Added new Then /^(?:|I )should see JSON:$/ step definition to Capybara - useful for REST. (Aslak Hellesøy)
90
+ * The #tableish method now understands tables with colspan and rowspan
91
+ * Support RSpec 2 (Johan Kiviniemi, Aslak Hellesøy, Rolf Bjaanes)
92
+ * Added @no-js-emulation, which turns off javascript emulation for delete links when not using browser testing. (Rob Holland, Aslak Hellesøy)
93
+ * Korean translation (Shim Taewon)
94
+
95
+ === Bugfixes
96
+ * No longer need to install the test-unit gem on 1.9.1 (Aslak Hellesøy)
97
+ * capybara rack-test field should contain step support for textarea (#28 Nicholas Rutherford)
98
+ * "Rspec is not missing constant Matchers!" error. (#27 David Chelimsky, Aslak Hellesøy)
99
+ * @culerity tag breaks Rails 3 RESTful helpers (#17 Aslak Hellesøy)
100
+
101
+ == 0.3.0 2010-02-25
2
102
 
3
103
  This is a major release since we're now supporting both Rails 3 and RSpec 2. Older versions
4
104
  (Rails 2 and RSpec 1) are still supported.
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2008,2009,2010 Aslak Hellesøy and the Cucumber Team.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,77 @@
1
+ # Cucumber-Rails
2
+
3
+ Cucumber-Rails brings Cucumber to Rails3. It contains 2 generators - one
4
+ for bootstrapping your Rails app for Cucumber, and a second one for generating features.
5
+
6
+ Cucumber-Rails also contains Cucumber Step Definitions that wrap Capybara,
7
+ giving you a head start for writing Cucumber features against your Rails app.
8
+
9
+ ## Installation
10
+
11
+ Before you can use the generator, add the gem to your project's Gemfile as follows:
12
+
13
+ group :test do
14
+ gem 'cucumber-rails'
15
+ # database_cleaner is not required, but highly recommended
16
+ gem 'database_cleaner'
17
+ end
18
+
19
+ Then install it by running:
20
+
21
+ bundle install
22
+
23
+ Learn about the various options:
24
+
25
+ rails generate cucumber:install --help
26
+
27
+ Finally, bootstrap your Rails app, for example:
28
+
29
+ rails generate cucumber:install
30
+
31
+ ## Generating a Cucumber feature
32
+
33
+ IMPORTANT: Only do this if you are new to Cucumber. We recommend you write your
34
+ Cucumber features by hand once you get the hang of it.
35
+
36
+ Example:
37
+
38
+ rails generate cucumber:feature post title:string body:text published:boolean
39
+ rails generate scaffold post title:string body:text published:boolean
40
+ rake db:migrate
41
+ rake cucumber
42
+
43
+ ## Running Cucumber
44
+
45
+ With Rake:
46
+
47
+ rake cucumber
48
+
49
+ Without Rake:
50
+
51
+ [bundle exec] cucumber
52
+
53
+ ## Bugs and feature requests
54
+
55
+ The *only* way to have a bug fixed or a new feature accepted is to describe it with a Cucumber feature. Let's say you think you have found a bug in the cucumber:install generator. Fork this project, clone it to your workstation and check out a branch with a descriptive name:
56
+
57
+ git clone git@github.com:you/cucumber-rails.git
58
+ git checkout -b bug-install-generator
59
+
60
+ Start by making sure you can run the existing features. Now, create a feature that demonstrates what's wrong. See the existing features for examples. When you have a failing feature that reproduces the bug, commit, push and send a pull request. Someone from the Cucumber-Rails team will review it and hopefully create a fix.
61
+
62
+ If you know how to fix the bug yourself, make a second commit (after committing the failing feature) before you send the pull request.
63
+
64
+ ### Setting up your environment
65
+
66
+ I strongly recommend rvm and ruby 1.9.2. When you have that, cd into your cucumber-rails repository and:
67
+
68
+ gem install bundler
69
+ bundle install
70
+
71
+ ### Running all features
72
+
73
+ With all dependencies installed, all features should pass:
74
+
75
+ rake cucumber
76
+
77
+ One of the features uses MongoDB, which needs to be running in order to make features/mongoid.feature to pass.
data/Rakefile CHANGED
@@ -1,23 +1,7 @@
1
1
  # encoding: utf-8
2
-
3
- begin
4
- require 'jeweler'
5
- Jeweler::Tasks.new do |gemspec|
6
- gemspec.name = "cucumber-rails"
7
- gemspec.summary = "Cucumber Generators and Runtime for Rails"
8
- gemspec.description = "Cucumber Generators and Runtime for Rails"
9
- gemspec.email = "cukes@googlegroups.com"
10
- gemspec.homepage = "http://cukes.info"
11
- gemspec.authors = ["Dennis Blöte", "Aslak Hellesøy", "Rob Holland"]
12
- gemspec.homepage = "http://github.com/aslakhellesoy/cucumber-rails"
13
-
14
- gemspec.add_dependency 'cucumber', '>= 0.6.2'
15
- gemspec.add_development_dependency 'aruba', '>= 0.1.5'
16
- end
17
- Jeweler::GemcutterTasks.new
18
- rescue LoadError
19
- puts "Jeweler not available. Install it with: sudo gem install jeweler"
20
- end
2
+ require 'rubygems'
3
+ require 'bundler/setup'
4
+ Bundler::GemHelper.install_tasks
21
5
 
22
6
  $:.unshift(File.dirname(__FILE__) + '/lib')
23
7
  Dir["#{File.dirname(__FILE__)}/dev_tasks/*.rake"].sort.each { |ext| load ext }
@@ -0,0 +1 @@
1
+ default: --tags ~@broken
@@ -1,108 +1,44 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
1
  # -*- encoding: utf-8 -*-
2
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
5
3
 
6
4
  Gem::Specification.new do |s|
7
- s.name = %q{cucumber-rails}
8
- s.version = "0.3.0"
5
+ s.name = 'cucumber-rails'
6
+ s.version = '1.0.0'
7
+ s.authors = ["Aslak Hellesøy", "Dennis Blöte", "Rob Holland"]
8
+ s.description = "Cucumber Generators and Runtime for Rails"
9
+ s.summary = "#{s.name}-#{s.version}"
10
+ s.email = 'cukes@googlegroups.com'
11
+ s.homepage = "http://cukes.info"
9
12
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Dennis Bl\303\266te", "Aslak Helles\303\270y", "Rob Holland"]
12
- s.date = %q{2010-02-26}
13
- s.description = %q{Cucumber Generators and Runtime for Rails}
14
- s.email = %q{cukes@googlegroups.com}
15
- s.extra_rdoc_files = [
16
- "README.rdoc"
17
- ]
18
- s.files = [
19
- ".gitignore",
20
- "HACKING.rdoc",
21
- "History.txt",
22
- "README.rdoc",
23
- "Rakefile",
24
- "VERSION",
25
- "config/.gitignore",
26
- "cucumber-rails.gemspec",
27
- "dev_tasks/cucumber.rake",
28
- "dev_tasks/rspec.rake",
29
- "features/rails2.feature",
30
- "features/rails3.feature",
31
- "features/step_definitions/cucumber_rails_steps.rb",
32
- "features/support/env.rb",
33
- "features/support/matchers/files.rb",
34
- "generators/cucumber/USAGE",
35
- "generators/cucumber/cucumber_generator.rb",
36
- "generators/cucumber/templates/step_definitions/web_steps_ja.rb.erb",
37
- "generators/feature/USAGE",
38
- "generators/feature/feature_generator.rb",
39
- "lib/cucumber/rails/action_controller.rb",
40
- "lib/cucumber/rails/active_record.rb",
41
- "lib/cucumber/rails/capybara_javascript_emulation.rb",
42
- "lib/cucumber/rails/rspec.rb",
43
- "lib/cucumber/rails/test_unit.rb",
44
- "lib/cucumber/rails/world.rb",
45
- "lib/cucumber/web/tableish.rb",
46
- "lib/generators/cucumber/feature/USAGE",
47
- "lib/generators/cucumber/feature/feature_base.rb",
48
- "lib/generators/cucumber/feature/feature_generator.rb",
49
- "lib/generators/cucumber/feature/named_arg.rb",
50
- "lib/generators/cucumber/skeleton/USAGE",
51
- "lib/generators/cucumber/skeleton/skeleton_base.rb",
52
- "lib/generators/cucumber/skeleton/skeleton_generator.rb",
53
- "rvm.yml",
54
- "spec/cucumber/web/tableish_spec.rb",
55
- "spec/generators/cucumber/skeleton/skeleton_base_spec.rb",
56
- "spec/spec.opts",
57
- "spec/spec_helper.rb",
58
- "templates/feature/feature.erb",
59
- "templates/feature/steps.erb",
60
- "templates/skeleton/config/cucumber.yml.erb",
61
- "templates/skeleton/environments/cucumber.rb.erb",
62
- "templates/skeleton/script/cucumber",
63
- "templates/skeleton/step_definitions/capybara_steps.rb.erb",
64
- "templates/skeleton/step_definitions/web_steps_cs.rb.erb",
65
- "templates/skeleton/step_definitions/web_steps_da.rb.erb",
66
- "templates/skeleton/step_definitions/web_steps_de.rb.erb",
67
- "templates/skeleton/step_definitions/web_steps_es.rb.erb",
68
- "templates/skeleton/step_definitions/web_steps_no.rb.erb",
69
- "templates/skeleton/step_definitions/web_steps_pt-BR.rb.erb",
70
- "templates/skeleton/step_definitions/webrat_steps.rb.erb",
71
- "templates/skeleton/support/_rails_each_run.rb",
72
- "templates/skeleton/support/_rails_prefork.rb.erb",
73
- "templates/skeleton/support/capybara.rb",
74
- "templates/skeleton/support/edit_warning.txt",
75
- "templates/skeleton/support/paths.rb",
76
- "templates/skeleton/support/rails.rb.erb",
77
- "templates/skeleton/support/rails_spork.rb.erb",
78
- "templates/skeleton/support/webrat.rb",
79
- "templates/skeleton/tasks/cucumber.rake.erb"
80
- ]
81
- s.homepage = %q{http://github.com/aslakhellesoy/cucumber-rails}
82
- s.rdoc_options = ["--charset=UTF-8"]
83
- s.require_paths = ["lib"]
84
- s.rubygems_version = %q{1.3.6}
85
- s.summary = %q{Cucumber Generators and Runtime for Rails}
86
- s.test_files = [
87
- "spec/cucumber/web/tableish_spec.rb",
88
- "spec/generators/cucumber/skeleton/skeleton_base_spec.rb",
89
- "spec/spec_helper.rb"
90
- ]
13
+ s.add_dependency('cucumber', '~> 1.0.0')
14
+ s.add_dependency('rack-test', '>= 0.5.7')
15
+ s.add_dependency('nokogiri', '>= 1.4.4')
16
+ s.add_dependency('capybara', '>= 1.0.0')
17
+ s.add_development_dependency('rails', '>= 3.1.0.rc4')
18
+ s.add_development_dependency('rake', '>= 0.9.2')
19
+ s.add_development_dependency('bundler', '>= 1.0.15')
20
+ s.add_development_dependency('aruba', '>= 0.4.1')
21
+ s.add_development_dependency('sqlite3-ruby', '>= 1.3.3')
22
+ s.add_development_dependency('rspec', '>= 2.6.0')
23
+ s.add_development_dependency('rspec-rails', '>= 2.6.1')
24
+ s.add_development_dependency('factory_girl', '>= 2.0.0.beta2')
25
+ s.add_development_dependency('database_cleaner', '>= 0.6.7')
26
+ s.add_development_dependency('mongoid', '>= 2.0.2')
27
+ s.add_development_dependency('bson_ext', '>= 1.3.1')
28
+ # s.add_development_dependency('akephalos', '>= 0.2.5')
91
29
 
92
- if s.respond_to? :specification_version then
93
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
94
- s.specification_version = 3
30
+ # Various Stuff that Rails 3.1 puts inside apps.
31
+ s.add_development_dependency('turn', '>= 0.8.2')
32
+ s.add_development_dependency('sass', '>= 3.1.1')
33
+ s.add_development_dependency('coffee-script', '>= 2.2.0')
34
+ s.add_development_dependency('uglifier', '>= 0.5.4')
35
+ s.add_development_dependency('jquery-rails', '>= 1.0.9')
95
36
 
96
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
97
- s.add_runtime_dependency(%q<cucumber>, [">= 0.6.2"])
98
- s.add_development_dependency(%q<aruba>, [">= 0.1.5"])
99
- else
100
- s.add_dependency(%q<cucumber>, [">= 0.6.2"])
101
- s.add_dependency(%q<aruba>, [">= 0.1.5"])
102
- end
103
- else
104
- s.add_dependency(%q<cucumber>, [">= 0.6.2"])
105
- s.add_dependency(%q<aruba>, [">= 0.1.5"])
106
- end
37
+ s.rubygems_version = ">= 1.6.1"
38
+ s.files = `git ls-files`.split("\n")
39
+ s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
40
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
41
+ s.extra_rdoc_files = ["LICENSE", "README.md", "History.txt"]
42
+ s.rdoc_options = ["--charset=UTF-8"]
43
+ s.require_path = "lib"
107
44
  end
108
-
@@ -1,5 +1,5 @@
1
1
  require 'cucumber/rake/task'
2
2
 
3
3
  Cucumber::Rake::Task.new do |t|
4
- t.rcov = true
4
+ t.rcov = false
5
5
  end
data/dev_tasks/rspec.rake CHANGED
@@ -1,13 +1,8 @@
1
- begin
2
- require 'spec/rake/spectask'
1
+ require 'rspec/core/rake_task'
3
2
 
4
- desc "Run RSpec"
5
- Spec::Rake::SpecTask.new do |t|
6
- t.spec_opts = %w{--color --diff --format profile}
7
- t.spec_files = FileList['spec/**/*_spec.rb']
8
- t.rcov = ENV['RCOV']
9
- t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/}
10
- end
11
- rescue LoadError
12
- task :spec
3
+ desc "Run RSpec"
4
+ RSpec::Core::RakeTask.new do |t|
5
+ t.rcov = ENV['RCOV']
6
+ t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/}
7
+ t.verbose = true
13
8
  end