cucumber-rails 0.2.3 → 0.2.4

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.
@@ -1,3 +1,18 @@
1
+ == 0.2.4 2010-01-18
2
+
3
+ === New Features
4
+ * Added Spanish translation (Gabriel)
5
+
6
+ === Bugfixes
7
+ * Fixed some broken Webrat/Test::Unit step definitions. (Aslak Hellesøy)
8
+ * Better Javascript emulation with Capybara (#7 Thorbjørn Hermansen)
9
+ * Removed stray quote in i18n web_steps.rb (Gabriel)
10
+ * Update hooks to new boolean logic (#6 Jon Larkowski, Michael MacDonald)
11
+ * Fixed incompatibility with Rails 3 (Mutwin Kraus)
12
+ * Fixed broken "fill in the following" step for Capybara web_steps (Lenny Marks)
13
+ * Capybara web_steps.rb with_scope didn't work in nested steps (Lenny Marks)
14
+ * Fixed "should not see" steps in web_steps.rb to use the correct selector (Toni Tuominen)
15
+
1
16
  == 0.2.3 2010-01-03
2
17
 
3
18
  === New Features
@@ -1,7 +1,7 @@
1
1
  = cucumber-rails
2
2
 
3
3
  Extracted the Rails generators from the Cucumber gem, inspired by
4
- {this posting}[http://groups.google.com/group/cukes/browse_thread/thread/b9b8ff6301393c19"]
4
+ {this posting}[http://groups.google.com/group/cukes/browse_thread/thread/b9b8ff6301393c19]
5
5
  on the Cukes Mailing List.
6
6
 
7
7
  The goal is to provide i18n of the webrat_steps.rb plus some other useful
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ begin
9
9
  gemspec.authors = ["Dennis Blöte", "Aslak Hellesøy", "Rob Holland"]
10
10
  gemspec.homepage = "http://github.com/aslakhellesoy/cucumber-rails"
11
11
 
12
- gemspec.add_dependency 'cucumber', '>= 0.5.1'
12
+ gemspec.add_dependency 'cucumber', '>= 0.6.2'
13
13
  end
14
14
  Jeweler::GemcutterTasks.new
15
15
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{cucumber-rails}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dennis Bl\303\266te", "Aslak Helles\303\270y", "Rob Holland"]
12
- s.date = %q{2010-01-03}
12
+ s.date = %q{2010-01-18}
13
13
  s.description = %q{Cucumber Generators and Runtime for Rails}
14
14
  s.email = %q{cukes@googlegroups.com}
15
15
  s.extra_rdoc_files = [
@@ -30,6 +30,7 @@ Gem::Specification.new do |s|
30
30
  "generators/cucumber/templates/step_definitions/capybara_steps.rb.erb",
31
31
  "generators/cucumber/templates/step_definitions/web_steps_cs.rb.erb",
32
32
  "generators/cucumber/templates/step_definitions/web_steps_de.rb.erb",
33
+ "generators/cucumber/templates/step_definitions/web_steps_es.rb.erb",
33
34
  "generators/cucumber/templates/step_definitions/web_steps_no.rb.erb",
34
35
  "generators/cucumber/templates/step_definitions/web_steps_pt-BR.rb.erb",
35
36
  "generators/cucumber/templates/step_definitions/webrat_steps.rb.erb",
@@ -72,12 +73,12 @@ Gem::Specification.new do |s|
72
73
  s.specification_version = 3
73
74
 
74
75
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
75
- s.add_runtime_dependency(%q<cucumber>, [">= 0.5.1"])
76
+ s.add_runtime_dependency(%q<cucumber>, [">= 0.6.2"])
76
77
  else
77
- s.add_dependency(%q<cucumber>, [">= 0.5.1"])
78
+ s.add_dependency(%q<cucumber>, [">= 0.6.2"])
78
79
  end
79
80
  else
80
- s.add_dependency(%q<cucumber>, [">= 0.5.1"])
81
+ s.add_dependency(%q<cucumber>, [">= 0.6.2"])
81
82
  end
82
83
  end
83
84
 
@@ -22,16 +22,16 @@ config.action_controller.allow_forgery_protection = false
22
22
  config.action_mailer.delivery_method = :test
23
23
 
24
24
  config.gem 'cucumber-rails', :lib => false, :version => '>=<%= version %>' unless File.directory?(File.join(Rails.root, 'vendor/plugins/cucumber-rails'))
25
- config.gem 'database_cleaner', :lib => false, :version => '>=0.2.3' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
25
+ config.gem 'database_cleaner', :lib => false, :version => '>=0.4.3' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
26
26
  <% if driver == :capybara -%>
27
- config.gem 'capybara', :lib => false, :version => '>=0.2.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/capybara'))
27
+ config.gem 'capybara', :lib => false, :version => '>=0.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/capybara'))
28
28
  <% else -%>
29
29
  config.gem 'webrat', :lib => false, :version => '>=0.6.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat'))
30
30
  <% end -%>
31
31
  <% if framework == :rspec -%>
32
- config.gem 'rspec', :lib => false, :version => '>=1.2.9' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec'))
33
- config.gem 'rspec-rails', :lib => false, :version => '>=1.2.9' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails'))
32
+ config.gem 'rspec', :lib => false, :version => '>=1.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec'))
33
+ config.gem 'rspec-rails', :lib => false, :version => '>=1.3.2' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec-rails'))
34
34
  <% end %>
35
35
  <% if spork? -%>
36
- config.gem 'spork', :lib => false, :version => '>=0.7.4' unless File.directory?(File.join(Rails.root, 'vendor/plugins/spork'))
36
+ config.gem 'spork', :lib => false, :version => '>=0.7.5' unless File.directory?(File.join(Rails.root, 'vendor/plugins/spork'))
37
37
  <% end %>
@@ -5,7 +5,7 @@ require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "pat
5
5
 
6
6
  module WithinHelpers
7
7
  def with_scope(locator)
8
- within(locator || 'html') { yield }
8
+ locator ? within(locator) { yield } : yield
9
9
  end
10
10
  end
11
11
  World(WithinHelpers)
@@ -53,7 +53,7 @@ end
53
53
  # TODO: Add support for checkbox, select og option
54
54
  # based on naming conventions.
55
55
  #
56
- When /^(?:|I )fill in the following(?: within "([^\"]*)"|)?:$/ do |fields, selector|
56
+ When /^(?:|I )fill in the following(?: within "([^\"]*)")?:$/ do |selector, fields|
57
57
  with_scope(selector) do
58
58
  fields.rows_hash.each do |name, value|
59
59
  When %{I fill in "#{name}" with "#{value}"}
@@ -115,9 +115,9 @@ end
115
115
  Then /^(?:|I )should not see "([^\"]*)"(?: within "([^\"]*)")?$/ do |text, selector|
116
116
  with_scope(selector) do
117
117
  if defined?(Spec::Rails::Matchers)
118
- page.should_not have_content(text)
118
+ page.should have_no_content(text)
119
119
  else
120
- assert_not page.has_content?(text)
120
+ assert page.has_no_content?(text)
121
121
  end
122
122
  end
123
123
  end
@@ -126,9 +126,9 @@ Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^\"]*)")?$/ do |regexp, s
126
126
  regexp = Regexp.new(regexp)
127
127
  with_scope(selector) do
128
128
  if defined?(Spec::Rails::Matchers)
129
- page.should_not have_xpath('//*', :text => regexp)
129
+ page.shoul have_not_xpath('//*', :text => regexp)
130
130
  else
131
- assert_not page.has_xpath?('//*', :text => regexp)
131
+ assert page.has_not_xpath?('//*', :text => regexp)
132
132
  end
133
133
  end
134
134
  end
@@ -184,4 +184,4 @@ end
184
184
 
185
185
  Then /^show me the page$/ do
186
186
  save_and_open_page
187
- end
187
+ end
@@ -44,7 +44,7 @@ When /^vyberu "([^\"]*)" jako datum a čas$/ do |time|
44
44
  end
45
45
 
46
46
  When /^vyberu "([^\"]*)" jako "([^\"]*)" datum a čas$/ do |datetime, datetime_label|
47
- When %{I select "#{detetime}" as the "#{datetime_label}" date and time}
47
+ When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
48
48
  end
49
49
 
50
50
  When /^vyberu "([^\"]*)" jako čas$/ do |time|
@@ -120,11 +120,11 @@ Then /^pole "([^\"]*)" by nemělo obsahovat "([^\"]*)"$/ do |field, value|
120
120
  end
121
121
 
122
122
  Then /^pole "([^\"]*)" by mělo být zaškrtnuté$/ do |label|
123
- Then %{the "#{label}" checkbox should be checked"}
123
+ Then %{the "#{label}" checkbox should be checked}
124
124
  end
125
125
 
126
126
  Then /^pole "([^\"]*)" by nemělo být zaškrtnuté$/ do |label|
127
- Then %{the "#{label}" checkbox should not be checked"}
127
+ Then %{the "#{label}" checkbox should not be checked}
128
128
  end
129
129
 
130
130
  Then /^(?:|také )bych měl být na (.+)$/ do |page_name|
@@ -133,4 +133,4 @@ end
133
133
 
134
134
  Then /^(?:|také )mi ukaž stránku$/ do
135
135
  Then %{show me the page}
136
- end
136
+ end
@@ -44,7 +44,7 @@ When /^(?:|ich )"([^\"]*)" als Datum und Uhrzeit auswähle$/ do |time|
44
44
  end
45
45
 
46
46
  When /^(?:|ich )"([^\"]*)" als "([^\"]*)" Datum und Uhrzeit auswähle$/ do |datetime, datetime_label|
47
- When %{I select "#{detetime}" as the "#{datetime_label}" date and time}
47
+ When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
48
48
  end
49
49
 
50
50
  When /^(?:|ich )"([^\"]*)" als Uhrzeit auswähle$/ do |time|
@@ -120,11 +120,11 @@ Then /^sollte das "([^\"]*)" Feld nicht "([^\"]*)" enthalten$/ do |field, value|
120
120
  end
121
121
 
122
122
  Then /^sollte die "([^\"]*)" Checkbox angehakt sein$/ do |label|
123
- Then %{the "#{label}" checkbox should be checked"}
123
+ Then %{the "#{label}" checkbox should be checked}
124
124
  end
125
125
 
126
126
  Then /^sollte die "([^\"]*)" Checkbox nicht angehakt sein$/ do |label|
127
- Then %{the "#{label}" checkbox should not be checked"}
127
+ Then %{the "#{label}" checkbox should not be checked}
128
128
  end
129
129
 
130
130
  Then /^(?:|ich sollte |sollte (?:|ich )?)auf (.+) sein$/ do |page_name|
@@ -133,4 +133,4 @@ end
133
133
 
134
134
  Then /^zeig mir die Seite$/ do
135
135
  Then %{show me the page}
136
- end
136
+ end
@@ -0,0 +1,136 @@
1
+ # encoding: utf-8
2
+ <%= embed_file('support/edit_warning.txt') %>
3
+
4
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
5
+
6
+ Dado /^que estoy en (.+)$/ do |page_name|
7
+ Given %{I am on #{page_name}}
8
+ end
9
+
10
+ Cuando /^voy a (.+)$/ do |page_name|
11
+ When %{I go to #{page_name}}
12
+ end
13
+
14
+ Cuando /^apreto "([^\"]*)"$/ do |button|
15
+ When %{I press "#{button}"}
16
+ end
17
+
18
+ Cuando /^clickeo "([^\"]*)"$/ do |link|
19
+ When %{I follow "#{link}"}
20
+ end
21
+
22
+ Cuando /^clickeo "([^\"]*)" dentro de "([^\"]*)"$/ do |link, parent|
23
+ When %{I follow "#{link}" within "#{parent}"}
24
+ end
25
+
26
+ Cuando /^completo "([^\"]*)" con "([^\"]*)"$/ do |field, value|
27
+ When %{I fill in "#{field}" with "#{value}"}
28
+ end
29
+
30
+ Cuando /^completo "([^\"]*)" para "([^\"]*)"$/ do |value, field|
31
+ When %{I fill in "#{value}" for "#{field}"}
32
+ end
33
+
34
+ Cuando /^completo lo siguiente:$/ do |fields|
35
+ When %{I fill in the following:}, fields
36
+ end
37
+
38
+ Cuando /^selecciono "([^\"]*)" de "([^\"]*)"$/ do |value, field|
39
+ When %{I select "#{value}" from "#{field}"}
40
+ end
41
+
42
+ Cuando /^selecciono "([^\"]*)" como la fecha y la hora$/ do |time|
43
+ When %{I select "#{time}" as the date and time}
44
+ end
45
+
46
+ Cuando /^selecciono "([^\"]*)" como la fecha y la hora "([^\"]*)"$/ do |datetime, datetime_label|
47
+ When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
48
+ end
49
+
50
+ Cuando /^selecciono "([^\"]*)" como la hora$/ do |time|
51
+ When %{I select "#{time}" as the time}
52
+ end
53
+
54
+ Cuando /^selecciono "([^\"]*)" como la hora "([^\"]*)"$/ do |time, time_label|
55
+ When %{I select "#{time}" as the "#{time_label}" time}
56
+ end
57
+
58
+ Cuando /^selecciono "([^\"]*)" como la fecha$/ do |date|
59
+ When %{I select "#{date}" as the date}
60
+ end
61
+
62
+ Cuando /^selecciono "([^\"]*)" como la fecha "([^\"]*)"$/ do |date, date_label|
63
+ When %{I select "#{date}" as the "#{date_label}" date}
64
+ end
65
+
66
+ Cuando /^marco "([^\"]*)"$/ do |field|
67
+ When %{I check "#{field}"}
68
+ end
69
+
70
+ Cuando /^desmarco "([^\"]*)"$/ do |field|
71
+ When %{I uncheck "#{field}"}
72
+ end
73
+
74
+ Cuando /^elijo "([^\"]*)"$/ do |field|
75
+ When %{I choose "#{field}"}
76
+ end
77
+
78
+ Cuando /^adjunto el archivo "([^\"]*)" a "([^\"]*)"$/ do |path, field|
79
+ When %{I attach the file "#{path}" to "#{field}"}
80
+ end
81
+
82
+ Entonces /^debería ver "([^\"]*)"$/ do |text|
83
+ Then %{I should see "#{text}"}
84
+ end
85
+
86
+ Entonces /^debería ver "([^\"]*)" dentro de "([^\"]*)"$/ do |text, selector|
87
+ Then %{I should see "#{text}" within "#{selector}"}
88
+ end
89
+
90
+ Entonces /^debería ver \/([^\/]*)\/$/ do |regexp|
91
+ Then %{I should see /#{regexp}/}
92
+ end
93
+
94
+ Entonces /^debería ver \/([^\/]*)\/ dentro de "([^\"]*)"$/ do |regexp, selector|
95
+ Then %{I should see /#{regexp}/ within "#{selector}"}
96
+ end
97
+
98
+ Entonces /^no debería ver "([^\"]*)"$/ do |text|
99
+ Then %{I should not see "#{text}"}
100
+ end
101
+
102
+ Entonces /^no debería ver "([^\"]*)" dentro de "([^\"]*)"$/ do |text, selector|
103
+ Then %{I should not see "#{text}" within "#{selector}"}
104
+ end
105
+
106
+ Entonces /^no debería ver \/([^\/]*)\/$/ do |regexp|
107
+ Then %{I should not see /#{regexp}/}
108
+ end
109
+
110
+ Entonces /^no debería ver \/([^\/]*)\/ dentro de "([^\"]*)"$/ do |regexp, selector|
111
+ Then %{I should not see /#{regexp}/ within "#{selector}"}
112
+ end
113
+
114
+ Entonces /^el campo "([^\"]*)" debería contener "([^\"]*)"$/ do |field, value|
115
+ Then %{the "#{field}" field should contain "#{value}"}
116
+ end
117
+
118
+ Entonces /^el campo "([^\"]*)" no debería contener "([^\"]*)"$/ do |field, value|
119
+ Then %{the "#{field}" field should not contain "#{value}"}
120
+ end
121
+
122
+ Entonces /^la checkbox "([^\"]*)" debería estar marcada$/ do |label|
123
+ Then %{the "#{label}" checkbox should be checked}
124
+ end
125
+
126
+ Entonces /^la checkbox "([^\"]*)" no debería estar marcada$/ do |label|
127
+ Then %{the "#{label}" checkbox should not be checked}
128
+ end
129
+
130
+ Entonces /^debería estar en (.+)$/ do |page_name|
131
+ Then %{I should be on #{page_name}}
132
+ end
133
+
134
+ Entonces /^mostrame la página$/ do
135
+ Then %{show me the page}
136
+ end
@@ -98,11 +98,11 @@ Så /^(?:skal ) "([^\"]*)" feltet (?:skal )ikke inneholde "([^\"]*)"$/ do |field
98
98
  end
99
99
 
100
100
  Så /^(?:skal ) "([^\"]*)" avkrysningsboksen (?:skal )være krysset av$/ do |label|
101
- Then %{the "#{label}" checkbox should be checked"}
101
+ Then %{the "#{label}" checkbox should be checked}
102
102
  end
103
103
 
104
104
  Så /^(?:skal ) "([^\"]*)" avkrysningsboksen (?:skal )ikke være krysset av$/ do |label|
105
- Then %{the "#{label}" checkbox should not be checked"}
105
+ Then %{the "#{label}" checkbox should not be checked}
106
106
  end
107
107
 
108
108
  Så /^(?:skal jeg|jeg skal) komme til (.+)$/ do |page_name|
@@ -44,7 +44,7 @@ Quando /^eu seleciono "([^\"]*)" como a data e a hora$/ do |time|
44
44
  end
45
45
 
46
46
  Quando /^eu seleciono "([^\"]*)" como a data e a hora "([^\"]*)"$/ do |datetime, datetime_label|
47
- When %{I select "#{detetime}" as the "#{datetime_label}" date and time}
47
+ When %{I select "#{datetime}" as the "#{datetime_label}" date and time}
48
48
  end
49
49
 
50
50
  Quando /^eu seleciono "([^\"]*)" como a hora$/ do |time|
@@ -124,11 +124,11 @@ Então /^o campo "([^\"]*)" não deve conter "([^\"]*)"$/ do |field, value|
124
124
  end
125
125
 
126
126
  Então /^o checkbox "([^\"]*)" deve estar marcado$/ do |label|
127
- Then %{the "#{label}" checkbox should be checked"}
127
+ Then %{the "#{label}" checkbox should be checked}
128
128
  end
129
129
 
130
130
  Então /^o checkbox "([^\"]*)" não deve estar marcado$/ do |label|
131
- Then %{the "#{label}" checkbox should not be checked"}
131
+ Then %{the "#{label}" checkbox should not be checked}
132
132
  end
133
133
 
134
134
  Então /^eu devo estar na (.+)$/ do |page_name|
@@ -137,4 +137,4 @@ end
137
137
 
138
138
  Então /^mostre-me a página$/ do
139
139
  Then %{show me the page}
140
- end
140
+ end
@@ -147,7 +147,8 @@ Then /^(?:|I )should see "([^\"]*)" within "([^\"]*)"$/ do |text, selector|
147
147
  if defined?(Spec::Rails::Matchers)
148
148
  content.should contain(text)
149
149
  else
150
- assert content.include?(text)
150
+ hc = Webrat::Matchers::HasContent.new(text)
151
+ assert hc.matches?(content), hc.failure_message
151
152
  end
152
153
  end
153
154
  end
@@ -157,7 +158,7 @@ Then /^(?:|I )should see \/([^\/]*)\/$/ do |regexp|
157
158
  if defined?(Spec::Rails::Matchers)
158
159
  response.should contain(regexp)
159
160
  else
160
- assert_contain regexp
161
+ assert_match(regexp, response_body)
161
162
  end
162
163
  end
163
164
 
@@ -167,7 +168,7 @@ Then /^(?:|I )should see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, selector|
167
168
  if defined?(Spec::Rails::Matchers)
168
169
  content.should contain(regexp)
169
170
  else
170
- assert content =~ regexp
171
+ assert_match(regexp, content)
171
172
  end
172
173
  end
173
174
  end
@@ -176,16 +177,17 @@ Then /^(?:|I )should not see "([^\"]*)"$/ do |text|
176
177
  if defined?(Spec::Rails::Matchers)
177
178
  response.should_not contain(text)
178
179
  else
179
- assert_not_contain text
180
+ assert_not_contain(text)
180
181
  end
181
182
  end
182
183
 
183
184
  Then /^(?:|I )should not see "([^\"]*)" within "([^\"]*)"$/ do |text, selector|
184
185
  within(selector) do |content|
185
186
  if defined?(Spec::Rails::Matchers)
186
- content.should_not contain(text)
187
+ content.should_not contain(text)
187
188
  else
188
- assert !content.include?(text)
189
+ hc = Webrat::Matchers::HasContent.new(text)
190
+ assert !hc.matches?(content), hc.negative_failure_message
189
191
  end
190
192
  end
191
193
  end
@@ -195,7 +197,7 @@ Then /^(?:|I )should not see \/([^\/]*)\/$/ do |regexp|
195
197
  if defined?(Spec::Rails::Matchers)
196
198
  response.should_not contain(regexp)
197
199
  else
198
- assert_not_contain regexp
200
+ assert_not_contain(regexp)
199
201
  end
200
202
  end
201
203
 
@@ -205,7 +207,7 @@ Then /^(?:|I )should not see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, select
205
207
  if defined?(Spec::Rails::Matchers)
206
208
  content.should_not contain(regexp)
207
209
  else
208
- assert content !~ regexp
210
+ assert_no_match(regexp, content)
209
211
  end
210
212
  end
211
213
  end
@@ -1,6 +1,5 @@
1
1
  require 'webrat'
2
2
  require 'webrat/core/matchers'
3
- require 'cucumber/webrat/element_locator' # Deprecated in favor of #tableish - remove this line if you don't use #element_at or #table_at
4
3
 
5
4
  Webrat.configure do |config|
6
5
  config.mode = :rails
@@ -7,11 +7,11 @@ Feature: Manage <%= plural_name %>
7
7
  Given I am on the new <%= singular_name %> page
8
8
  <% keyword = 'When' -%>
9
9
  <% named_args.each do |arg| -%>
10
- <% if arg.type == 'boolean' -%>
11
- <%= keyword %> I uncheck "<%= arg.name.humanize %>"
12
- <% else -%>
13
- <%= keyword %> I fill in "<%= arg.name.humanize %>" with "<%= arg.value(1) %>"
14
- <% end -%>
10
+ <% if arg.type == 'boolean' -%>
11
+ <%= keyword %> I uncheck "<%= arg.name.humanize %>"
12
+ <% else -%>
13
+ <%= keyword %> I fill in "<%= arg.name.humanize %>" with "<%= arg.value(1) %>"
14
+ <% end -%>
15
15
  <% keyword = 'And' -%>
16
16
  <% end -%>
17
17
  And I press "Create"
@@ -3,11 +3,11 @@ if defined?(ActiveRecord::Base)
3
3
  $__cucumber_global_use_txn = !!Cucumber::Rails::World.use_transactional_fixtures if $__cucumber_global_use_txn.nil?
4
4
  end
5
5
 
6
- Before('~@no-txn', '~@selenium', '~@culerity', '~@javascript') do
6
+ Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
7
7
  Cucumber::Rails::World.use_transactional_fixtures = $__cucumber_global_use_txn
8
8
  end
9
9
 
10
- Before('@no-txn', '@selenium', '@culerity', '@javascript') do
10
+ Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
11
11
  Cucumber::Rails::World.use_transactional_fixtures = false
12
12
  end
13
13
 
@@ -8,23 +8,37 @@ module Cucumber
8
8
  end
9
9
 
10
10
  def click_with_rails_javascript_emulation
11
- if tag_name == 'a' and node['onclick'] =~ /m\.setAttribute\('name', '_method'\)/
12
- method = node['onclick'].match(/m\.setAttribute\('value', '([^']*)'\)/)[1]
13
-
14
- js_form = node.document.create_element('form')
15
- js_form['action'] = self[:href]
16
- js_form['method'] = 'POST'
17
-
11
+ if link_with_onclick_from_rails?
12
+ Capybara::Driver::RackTest::Form.new(driver, js_form(self[:href], emulated_method)).submit(self)
13
+ else
14
+ click_without_rails_javascript_emulation
15
+ end
16
+ end
17
+
18
+
19
+ private
20
+ def js_form(action, emulated_method, method = 'POST')
21
+ js_form = node.document.create_element('form')
22
+ js_form['action'] = action
23
+ js_form['method'] = method
24
+
25
+ if emulated_method and emulated_method.downcase != method.downcase
18
26
  input = node.document.create_element('input')
19
27
  input['type'] = 'hidden'
20
28
  input['name'] = '_method'
21
- input['value'] = method
29
+ input['value'] = emulated_method
22
30
  js_form.add_child(input)
23
-
24
- Capybara::Driver::RackTest::Form.new(driver, js_form).submit(self)
25
- else
26
- click_without_rails_javascript_emulation
27
31
  end
32
+
33
+ js_form
34
+ end
35
+
36
+ def link_with_onclick_from_rails?
37
+ tag_name == 'a' and node['onclick'] =~ /var f = document\.createElement\('form'\); f\.style\.display = 'none';/
38
+ end
39
+
40
+ def emulated_method
41
+ node['onclick'][/m\.setAttribute\('value', '([^']*)'\)/, 1]
28
42
  end
29
43
  end
30
44
  end
@@ -44,4 +58,4 @@ After('@emulate_rails_javascript') do
44
58
  Capybara::Driver::RackTest::Node.class_eval do
45
59
  alias_method :click, :click_without_rails_javascript_emulation
46
60
  end
47
- end
61
+ end
@@ -1,3 +1,10 @@
1
+ unless defined?(Test)
2
+ begin
3
+ require 'spec/test/unit'
4
+ rescue LoadError => ignore_if_rspec_not_installed
5
+ end
6
+ end
7
+
1
8
  if defined?(ActiveRecord::Base)
2
9
  require 'test_help'
3
10
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Dennis Bl\xC3\xB6te"
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2010-01-03 00:00:00 +01:00
14
+ date: 2010-01-18 00:00:00 +01:00
15
15
  default_executable:
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
@@ -22,7 +22,7 @@ dependencies:
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.5.1
25
+ version: 0.6.2
26
26
  version:
27
27
  description: Cucumber Generators and Runtime for Rails
28
28
  email: cukes@googlegroups.com
@@ -47,6 +47,7 @@ files:
47
47
  - generators/cucumber/templates/step_definitions/capybara_steps.rb.erb
48
48
  - generators/cucumber/templates/step_definitions/web_steps_cs.rb.erb
49
49
  - generators/cucumber/templates/step_definitions/web_steps_de.rb.erb
50
+ - generators/cucumber/templates/step_definitions/web_steps_es.rb.erb
50
51
  - generators/cucumber/templates/step_definitions/web_steps_no.rb.erb
51
52
  - generators/cucumber/templates/step_definitions/web_steps_pt-BR.rb.erb
52
53
  - generators/cucumber/templates/step_definitions/webrat_steps.rb.erb