cucumber-rails 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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