cucumber-rails 1.1.1 → 1.2.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 (42) hide show
  1. data/.gitignore +1 -0
  2. data/History.md +8 -1
  3. data/Rakefile +4 -2
  4. data/cucumber-rails.gemspec +17 -17
  5. data/features/allow_rescue.feature +1 -1
  6. data/features/capybara_javascript_drivers.feature +1 -1
  7. data/features/choose_javascript_database_strategy.feature +63 -0
  8. data/features/database_cleaner.feature +1 -1
  9. data/features/emulate_javascript.feature +2 -2
  10. data/features/field_with_errors.feature +2 -2
  11. data/features/fixing_bundler_pre.feature +1 -1
  12. data/features/inspect_query_string.feature +1 -1
  13. data/features/install_cucumber_rails.feature +1 -1
  14. data/features/multiple_databases.feature +1 -1
  15. data/features/no_database.feature +1 -1
  16. data/features/rerun_profile.feature +1 -1
  17. data/features/rest_api.feature +1 -1
  18. data/features/routing.feature +1 -1
  19. data/features/step_definitions/cucumber_rails_steps.rb +52 -398
  20. data/features/support/bundler_pre_support.rb +28 -0
  21. data/features/support/env.rb +1 -4
  22. data/features/support/fixtures/bundler-1.0.21.gem +0 -0
  23. data/features/support/fixtures/bundler-1.1.rc.gem +0 -0
  24. data/{lib/generators/cucumber/install/templates/step_definitions/web_steps.rb.erb → features/support/legacy_web_steps_support.rb} +69 -14
  25. data/lib/cucumber/rails.rb +1 -1
  26. data/lib/cucumber/rails/database.rb +67 -0
  27. data/lib/cucumber/rails/hooks/active_record.rb +2 -12
  28. data/lib/generators/cucumber/install/USAGE +0 -3
  29. data/lib/generators/cucumber/install/templates/support/_rails_each_run.rb.erb +6 -1
  30. metadata +79 -88
  31. data/Gemfile.lock +0 -202
  32. data/features/test_unit.feature +0 -45
  33. data/lib/cucumber/web/tableish.rb +0 -119
  34. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_cs.rb.erb +0 -127
  35. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_da.rb.erb +0 -105
  36. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_de.rb.erb +0 -127
  37. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_es.rb.erb +0 -127
  38. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_ja.rb.erb +0 -140
  39. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_ko.rb.erb +0 -142
  40. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_no.rb.erb +0 -105
  41. data/lib/generators/cucumber/install/templates/step_definitions/web_steps_pt-BR.rb.erb +0 -132
  42. data/spec/cucumber/web/tableish_spec.rb +0 -239
data/Gemfile.lock DELETED
@@ -1,202 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cucumber-rails (1.1.1)
5
- capybara (>= 1.1.1)
6
- cucumber (>= 1.1.0)
7
- nokogiri (>= 1.5.0)
8
-
9
- GEM
10
- remote: http://rubygems.org/
11
- specs:
12
- actionmailer (3.1.0)
13
- actionpack (= 3.1.0)
14
- mail (~> 2.3.0)
15
- actionpack (3.1.0)
16
- activemodel (= 3.1.0)
17
- activesupport (= 3.1.0)
18
- builder (~> 3.0.0)
19
- erubis (~> 2.7.0)
20
- i18n (~> 0.6)
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)
29
- builder (~> 3.0.0)
30
- i18n (~> 0.6)
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)
40
- multi_json (~> 1.0)
41
- ammeter (0.1.2)
42
- activesupport (~> 3)
43
- railties (~> 3)
44
- rspec (~> 2)
45
- rspec-rails (~> 2)
46
- ansi (1.3.0)
47
- arel (2.2.1)
48
- aruba (0.4.6)
49
- bcat (>= 0.6.1)
50
- childprocess (>= 0.2.0)
51
- cucumber (>= 1.0.2)
52
- rdiscount (>= 1.6.8)
53
- rspec (>= 2.6.0)
54
- bcat (0.6.2)
55
- rack (~> 1.0)
56
- bcrypt-ruby (3.0.1)
57
- bson (1.4.0)
58
- bson_ext (1.4.0)
59
- builder (3.0.0)
60
- capybara (1.1.1)
61
- mime-types (>= 1.16)
62
- nokogiri (>= 1.3.3)
63
- rack (>= 1.0.0)
64
- rack-test (>= 0.5.4)
65
- selenium-webdriver (~> 2.0)
66
- xpath (~> 0.1.4)
67
- childprocess (0.2.2)
68
- ffi (~> 1.0.6)
69
- coffee-script (2.2.0)
70
- coffee-script-source
71
- execjs
72
- coffee-script-source (1.1.2)
73
- cucumber (1.1.0)
74
- builder (>= 2.1.2)
75
- diff-lcs (>= 1.1.2)
76
- gherkin (~> 2.5.0)
77
- json (>= 1.4.6)
78
- term-ansicolor (>= 1.0.6)
79
- database_cleaner (0.6.7)
80
- diff-lcs (1.1.3)
81
- erubis (2.7.0)
82
- execjs (1.2.9)
83
- multi_json (~> 1.0)
84
- factory_girl (2.1.2)
85
- activesupport
86
- ffi (1.0.9)
87
- gherkin (2.5.1)
88
- json (>= 1.4.6)
89
- hike (1.2.1)
90
- i18n (0.6.0)
91
- jquery-rails (1.0.14)
92
- railties (~> 3.0)
93
- thor (~> 0.14)
94
- json (1.6.1)
95
- json_pure (1.6.1)
96
- mail (2.3.0)
97
- i18n (>= 0.4.0)
98
- mime-types (~> 1.16)
99
- treetop (~> 1.4.8)
100
- mime-types (1.16)
101
- mongo (1.4.0)
102
- bson (= 1.4.0)
103
- mongoid (2.2.2)
104
- activemodel (~> 3.0)
105
- mongo (~> 1.3)
106
- tzinfo (~> 0.3.22)
107
- multi_json (1.0.3)
108
- nokogiri (1.5.0)
109
- polyglot (0.3.2)
110
- rack (1.3.4)
111
- rack-cache (1.0.3)
112
- rack (>= 0.4)
113
- rack-mount (0.8.3)
114
- rack (>= 1.0.0)
115
- rack-ssl (1.3.2)
116
- rack
117
- rack-test (0.6.1)
118
- rack (>= 1.0)
119
- rails (3.1.0)
120
- actionmailer (= 3.1.0)
121
- actionpack (= 3.1.0)
122
- activerecord (= 3.1.0)
123
- activeresource (= 3.1.0)
124
- activesupport (= 3.1.0)
125
- bundler (~> 1.0)
126
- railties (= 3.1.0)
127
- railties (3.1.0)
128
- actionpack (= 3.1.0)
129
- activesupport (= 3.1.0)
130
- rack-ssl (~> 1.3.2)
131
- rake (>= 0.8.7)
132
- rdoc (~> 3.4)
133
- thor (~> 0.14.6)
134
- rake (0.9.2)
135
- rdiscount (1.6.8)
136
- rdoc (3.9.4)
137
- rspec (2.6.0)
138
- rspec-core (~> 2.6.0)
139
- rspec-expectations (~> 2.6.0)
140
- rspec-mocks (~> 2.6.0)
141
- rspec-core (2.6.4)
142
- rspec-expectations (2.6.0)
143
- diff-lcs (~> 1.1.2)
144
- rspec-mocks (2.6.0)
145
- rspec-rails (2.6.1)
146
- actionpack (~> 3.0)
147
- activesupport (~> 3.0)
148
- railties (~> 3.0)
149
- rspec (~> 2.6.0)
150
- rubyzip (0.9.4)
151
- sass (3.1.8)
152
- selenium-webdriver (2.7.0)
153
- childprocess (>= 0.2.1)
154
- ffi (>= 1.0.7)
155
- json_pure
156
- rubyzip
157
- sprockets (2.0.1)
158
- hike (~> 1.2)
159
- rack (~> 1.0)
160
- tilt (~> 1.1, != 1.3.0)
161
- sqlite3 (1.3.4)
162
- term-ansicolor (1.0.6)
163
- thor (0.14.6)
164
- tilt (1.3.3)
165
- treetop (1.4.10)
166
- polyglot
167
- polyglot (>= 0.3.1)
168
- turn (0.8.2)
169
- ansi (>= 1.2.2)
170
- tzinfo (0.3.30)
171
- uglifier (1.0.3)
172
- execjs (>= 0.3.0)
173
- multi_json (>= 1.0.2)
174
- xpath (0.1.4)
175
- nokogiri (~> 1.3)
176
- yard (0.7.2)
177
-
178
- PLATFORMS
179
- ruby
180
-
181
- DEPENDENCIES
182
- ammeter (>= 0.1.2)
183
- aruba (>= 0.4.6)
184
- bcat (~> 0.6.2)
185
- bson_ext (>= 1.3.1)
186
- bundler (>= 1.0.18)
187
- coffee-script (>= 2.2.0)
188
- cucumber-rails!
189
- database_cleaner (>= 0.6.7)
190
- factory_girl (>= 2.1.0)
191
- jquery-rails (>= 1.0.14)
192
- mongoid (>= 2.2.2)
193
- rails (>= 3.1.0)
194
- rake (>= 0.9.2)
195
- rdiscount (~> 1.6.8)
196
- rspec (>= 2.6.0)
197
- rspec-rails (>= 2.6.1)
198
- sass (>= 3.1.7)
199
- sqlite3 (>= 1.3.4)
200
- turn (>= 0.8.2)
201
- uglifier (>= 1.0.3)
202
- yard (~> 0.7.2)
@@ -1,45 +0,0 @@
1
- Feature: Run with Test::Unit
2
-
3
- Scenario: Delete a widget
4
- Given I have created a new Rails 3 app "widgets" with cucumber-rails support
5
- And I overwrite "Gemfile" with:
6
- """
7
- gem 'rails'
8
- gem 'sqlite3'
9
- gem "cucumber-rails", :group => :test, :path => "../../.."
10
- gem "capybara", :group => :test
11
- gem "database_cleaner", :group => :test
12
- gem 'factory_girl', :group => :test
13
-
14
- """
15
- And I successfully run `rails generate scaffold widget name:string`
16
- And I write to "features/f.feature" with:
17
- """
18
- Feature: Widget inventory
19
- Scenario: Delete a widget
20
- Given there is a widget named "wrench"
21
- When I go to the widgets page
22
- Then I should see "wrench"
23
- """
24
- And I write to "features/step_definitions/s.rb" with:
25
- """
26
- Given /^there is a widget named "([^"]*)"$/ do |name|
27
- FactoryGirl.create(:widget, :name => name)
28
- end
29
- """
30
- And I write to "features/support/factories.rb" with:
31
- """
32
- FactoryGirl.define do
33
- factory :widget do
34
- name 'testwidget'
35
- end
36
- end
37
- """
38
- When I run `bundle exec rake db:migrate`
39
- And I run `bundle exec rake cucumber`
40
- Then it should pass with:
41
- """
42
- 1 scenario (1 passed)
43
- 3 steps (3 passed)
44
- """
45
-
@@ -1,119 +0,0 @@
1
- require 'nokogiri'
2
-
3
- module Cucumber
4
- module Web
5
- module Tableish
6
- # This method returns an Array of Array of String, using CSS3 selectors.
7
- # This is particularly handy when using Cucumber's Table#diff! method.
8
- #
9
- # The +row_selector+ argument must be a String, and picks out all the rows
10
- # from the web page's DOM. If the number of cells in each row differs, it
11
- # will be constrained by (or padded with) the number of cells in the first row
12
- #
13
- # The +column_selectors+ argument must be a String or a Proc, picking out
14
- # cells from each row. If you pass a Proc, it will be yielded an instance
15
- # of Nokogiri::HTML::Element.
16
- #
17
- # == Example with a table
18
- #
19
- # <table id="tools">
20
- # <tr>
21
- # <th>tool</th>
22
- # <th>dude</th>
23
- # </tr>
24
- # <tr>
25
- # <td>webrat</td>
26
- # <td>bryan</td>
27
- # </tr>
28
- # <tr>
29
- # <td>cucumber</td>
30
- # <td>aslak</td>
31
- # </tr>
32
- # </table>
33
- #
34
- # t = tableish('table#tools tr', 'td,th')
35
- #
36
- # == Example with a dl
37
- #
38
- # <dl id="tools">
39
- # <dt>webrat</dt>
40
- # <dd>bryan</dd>
41
- # <dt>cucumber</dt>
42
- # <dd>aslak</dd>
43
- # </dl>
44
- #
45
- # t = tableish('dl#tools dt', lambda{|dt| [dt, dt.next.next]})
46
- #
47
- def tableish(row_selector, column_selectors)
48
- html = defined?(Capybara) ? body : response_body
49
- _tableish(html, row_selector, column_selectors)
50
- end
51
-
52
- def _tableish(html, row_selector, column_selectors) #:nodoc
53
- STDERR.puts("#{caller[1]}: #tableish is deprecated and may be removed in the next major version. Use Capybara::Node::Finders instead.")
54
- doc = Nokogiri::HTML(html)
55
- spans = nil
56
- max_cols = 0
57
-
58
- # Parse the table.
59
- rows = doc.search(row_selector).map do |row|
60
- cells = case(column_selectors)
61
- when String
62
- row.search(column_selectors)
63
- when Proc
64
- column_selectors.call(row)
65
- end
66
-
67
- # TODO: max_cols should be sum of colspans
68
- max_cols = [max_cols, cells.length].max
69
-
70
- spans ||= Array.new(max_cols, 1)
71
-
72
- cell_index = 0
73
-
74
- cells = (0...spans.length).inject([]) do |array, n|
75
- span = spans[n]
76
-
77
- cell = if span > 1
78
- row_span, col_span = 1, 1
79
- nil
80
- else
81
- cell = cells[cell_index]
82
-
83
- row_span, col_span = _parse_spans(cell)
84
-
85
- if col_span > 1
86
- ((n + 1)...(n + col_span)).each do |m|
87
- spans[m] = row_span + 1
88
- end
89
- end
90
-
91
- cell_index +=1
92
- cell
93
- end
94
-
95
- spans[n] = row_span > 1 ? row_span : ([span - 1, 1].max)
96
-
97
- array << case cell
98
- when String then cell.strip
99
- when nil then ''
100
- else cell.text.strip
101
- end
102
-
103
- array
104
- end
105
-
106
- cells
107
- end
108
- end
109
-
110
- def _parse_spans(cell)
111
- cell.is_a?(Nokogiri::XML::Node) ?
112
- [cell.attributes['rowspan'].to_s.to_i || 1, cell.attributes['colspan'].to_s.to_i || 1] :
113
- [1, 1]
114
- end
115
- end
116
- end
117
- end
118
-
119
- World(Cucumber::Web::Tableish)
@@ -1,127 +0,0 @@
1
- # encoding: utf-8
2
- <%= embed_file('support/web_steps_warning.txt') %>
3
-
4
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
5
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
6
-
7
- # Single-line step scoper
8
- When /^(.*) uvnitř ([^:]+)$/ do |step, parent|
9
- with_scope(parent) { When step }
10
- end
11
-
12
- # Multi-line step scoper
13
- When /^(.*) uvnitř ([^:]+):$/ do |step, parent, table_or_string|
14
- with_scope(parent) { When "#{step}:", table_or_string }
15
- end
16
-
17
- Given /^jsem na (.+)$/ do |page_name|
18
- Given %{I am on #{page_name}}
19
- end
20
-
21
- When /^jdu na (.+)$/ do |page_name|
22
- When %{I go to #{page_name}}
23
- end
24
-
25
- When /^stisknu tlačítko "([^"]*)"$/ do |button|
26
- When %{I press "#{button}"}
27
- end
28
-
29
- When /^kliknu na "([^"]*)"$/ do |link|
30
- When %{I follow "#{link}"}
31
- end
32
-
33
- When /^vyplním pole "([^"]*)" hodnotou "([^"]*)"$/ do |field, value|
34
- When %{I fill in "#{field}" with "#{value}"}
35
- end
36
-
37
- When /^vyplním "([^"]*)" do pole "([^"]*)"$/ do |value, field|
38
- When %{I fill in "#{value}" for "#{field}"}
39
- end
40
-
41
- When /^vyplním následující:$/ do |fields|
42
- When %{I fill in the following:}, fields
43
- end
44
-
45
- When /^vyberu "([^"]*)" z "([^"]*)"$/ do |value, field|
46
- When %{I select "#{value}" from "#{field}"}
47
- end
48
-
49
- When /^vyberu "([^"]*)" jako datum a čas$/ do |time|
50
- When %{I select "#{time}" as the date and time}
51
- end
52
-
53
- When /^vyberu "([^"]*)" jako "([^"]*)" datum a čas$/ do |datetime, datetime_label|
54
- When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
55
- end
56
-
57
- When /^vyberu "([^"]*)" jako čas$/ do |time|
58
- When %{I select "#{time}" as the time}
59
- end
60
-
61
- When /^vyberu "([^"]*)" jako "([^"]*)" čas$/ do |time, time_label|
62
- When %{I select "#{time}" as the "#{time_label}" time}
63
- end
64
-
65
- When /^vyberu cd jako datum$/ do |date|
66
- When %{I select "#{date}" as the date}
67
- end
68
-
69
- When /^vyberu "([^"]*)" jako "([^"]*)" datum$/ do |date, date_label|
70
- When %{I select "#{date}" as the "#{date_label}" date}
71
- end
72
-
73
- When /^zaškrtnu "([^"]*)"$/ do |field|
74
- When %{I check "#{field}"}
75
- end
76
-
77
- When /^vyškrtnu "([^"]*)"$/ do |field|
78
- When %{I uncheck "#{field}"}
79
- end
80
-
81
- When /^vyberu "([^"]*)"$/ do |field|
82
- When %{I choose "#{field}"}
83
- end
84
-
85
- When /^připojím soubor "([^"]*)" do pole "([^"]*)"$/ do |path, field|
86
- When %{I attach the file "#{path}" to "#{field}"}
87
- end
88
-
89
- Then /^(?:|také )bych měl vidět "([^"]*)"$/ do |text|
90
- Then %{I should see "#{text}"}
91
- end
92
-
93
- Then /^(?:|také )bych měl vidět \/([^\/]*)\/$/ do |regexp|
94
- Then %{I should see /#{regexp}/}
95
- end
96
-
97
- Then /^(?:|také )bych neměl vidět "([^"]*)"$/ do |text|
98
- Then %{I should not see "#{text}"}
99
- end
100
-
101
- Then /^(?:|také )bych neměl vidět \/([^\/]*)\/$/ do |regexp|
102
- Then %{I should not see /#{regexp}/}
103
- end
104
-
105
- Then /^pole "([^"]*)" by mělo obsahovat "([^"]*)"$/ do |field, value|
106
- Then %{the "#{field}" field should contain "#{value}"}
107
- end
108
-
109
- Then /^pole "([^"]*)" by nemělo obsahovat "([^"]*)"$/ do |field, value|
110
- Then %{the "#{field}" field should not contain "#{value}"}
111
- end
112
-
113
- Then /^pole "([^"]*)" by mělo být zaškrtnuté$/ do |label|
114
- Then %{the "#{label}" checkbox should be checked}
115
- end
116
-
117
- Then /^pole "([^"]*)" by nemělo být zaškrtnuté$/ do |label|
118
- Then %{the "#{label}" checkbox should not be checked}
119
- end
120
-
121
- Then /^(?:|také )bych měl být na (.+)$/ do |page_name|
122
- Then %{I should be on #{page_name}}
123
- end
124
-
125
- Then /^(?:|také )mi ukaž stránku$/ do
126
- Then %{show me the page}
127
- end