cucumber-rails 0.2.2 → 0.2.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/History.txt +8 -0
- data/VERSION +1 -1
- data/cucumber-rails.gemspec +2 -2
- data/generators/cucumber/templates/step_definitions/capybara_steps.rb.erb +4 -2
- data/generators/cucumber/templates/step_definitions/webrat_steps.rb.erb +4 -2
- data/lib/cucumber/rails/action_controller.rb +36 -9
- data/lib/cucumber/rails/world.rb +12 -3
- data/lib/cucumber/web/tableish.rb +5 -1
- data/spec/cucumber/web/tableish_spec.rb +31 -0
- metadata +2 -2
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
== 0.2.3 2010-01-03
|
2
|
+
|
3
|
+
=== New Features
|
4
|
+
* The #tableish Proc can return Strings as well as Nokogiri nodes now. (Aslak Hellesøy)
|
5
|
+
|
6
|
+
=== Bugfixes
|
7
|
+
* Handle all types of URIs in "I should be on ..." steps. (#5 Andrew D. Smith)
|
8
|
+
|
1
9
|
== 0.2.2 2009-12-21
|
2
10
|
|
3
11
|
=== Bugfixes
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
data/cucumber-rails.gemspec
CHANGED
@@ -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.
|
8
|
+
s.version = "0.2.3"
|
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{
|
12
|
+
s.date = %q{2010-01-03}
|
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 = [
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<%= embed_file('support/edit_warning.txt') %>
|
2
2
|
|
3
|
+
require 'uri'
|
3
4
|
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
|
4
5
|
|
5
6
|
module WithinHelpers
|
@@ -173,10 +174,11 @@ Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should not be checked$/ do
|
|
173
174
|
end
|
174
175
|
|
175
176
|
Then /^(?:|I )should be on (.+)$/ do |page_name|
|
177
|
+
current_path = URI.parse(current_url).select(:path, :query).compact.join('?')
|
176
178
|
if defined?(Spec::Rails::Matchers)
|
177
|
-
|
179
|
+
current_path.should == path_to(page_name)
|
178
180
|
else
|
179
|
-
assert_equal path_to(page_name),
|
181
|
+
assert_equal path_to(page_name), current_path
|
180
182
|
end
|
181
183
|
end
|
182
184
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<%= embed_file('support/edit_warning.txt') %>
|
2
2
|
|
3
|
+
require 'uri'
|
3
4
|
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
|
4
5
|
|
5
6
|
# Commonly used webrat steps
|
@@ -242,10 +243,11 @@ Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
|
|
242
243
|
end
|
243
244
|
|
244
245
|
Then /^(?:|I )should be on (.+)$/ do |page_name|
|
246
|
+
current_path = URI.parse(current_url).select(:path, :query).compact.join('?')
|
245
247
|
if defined?(Spec::Rails::Matchers)
|
246
|
-
|
248
|
+
current_path.should == path_to(page_name)
|
247
249
|
else
|
248
|
-
assert_equal path_to(page_name),
|
250
|
+
assert_equal path_to(page_name), current_path
|
249
251
|
end
|
250
252
|
end
|
251
253
|
|
@@ -1,13 +1,40 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
if Rails.version.to_f >= 3.0
|
2
|
+
module ActionController #:nodoc:
|
3
|
+
module AllowRescueException
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
include ActiveSupport::Rescuable
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
private
|
8
|
+
def process_action(*args)
|
9
|
+
if ActionController::Base.allow_rescue
|
10
|
+
super
|
11
|
+
else
|
12
|
+
begin
|
13
|
+
super
|
14
|
+
rescue Exception => exception
|
15
|
+
raise(exception)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
ActionController::Base.class_eval do
|
23
|
+
cattr_accessor :allow_rescue
|
24
|
+
include ActionController::AllowRescueException
|
25
|
+
end
|
26
|
+
else
|
27
|
+
ActionController::Base.class_eval do
|
28
|
+
cattr_accessor :allow_rescue
|
29
|
+
|
30
|
+
alias_method :rescue_action_without_bypass, :rescue_action
|
31
|
+
|
32
|
+
def rescue_action(exception)
|
33
|
+
if ActionController::Base.allow_rescue
|
34
|
+
rescue_action_without_bypass(exception)
|
35
|
+
else
|
36
|
+
raise exception
|
37
|
+
end
|
11
38
|
end
|
12
39
|
end
|
13
40
|
end
|
data/lib/cucumber/rails/world.rb
CHANGED
@@ -1,14 +1,23 @@
|
|
1
1
|
if defined?(ActiveRecord::Base)
|
2
2
|
require 'test_help'
|
3
3
|
else
|
4
|
-
|
5
|
-
|
4
|
+
# I can't do rescue LoadError because in this files could be loaded
|
5
|
+
# from rails gem (ie. load actionpack 2.3.5 if rubygems are not disabled)
|
6
|
+
if Rails.version.to_f < 3.0
|
7
|
+
require 'action_controller/test_process'
|
8
|
+
require 'action_controller/integration'
|
9
|
+
else
|
10
|
+
require 'action_dispatch/testing/test_process'
|
11
|
+
require 'action_dispatch/testing/integration'
|
12
|
+
end
|
6
13
|
end
|
7
14
|
|
8
15
|
require 'cucumber/rails/test_unit'
|
9
16
|
require 'cucumber/rails/action_controller'
|
10
17
|
|
11
|
-
|
18
|
+
|
19
|
+
if (::Rails.respond_to?(:application) && !(::Rails.application.config.cache_classes)) ||
|
20
|
+
(!(::Rails.respond_to?(:application)) && ::Rails.respond_to?(:configuration) && !(::Rails.configuration.cache_classes))
|
12
21
|
warn "WARNING: You have set Rails' config.cache_classes to false (most likely in config/environments/cucumber.rb). This setting is known to break Cucumber's use_transactional_fixtures method. Set config.cache_classes to true if you want to use transactional fixtures. For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165."
|
13
22
|
end
|
14
23
|
|
@@ -123,6 +123,37 @@ module Cucumber
|
|
123
123
|
%w{aslak},
|
124
124
|
]
|
125
125
|
end
|
126
|
+
|
127
|
+
it "should do complex shit" do
|
128
|
+
html = <<-HTML
|
129
|
+
<form method="post" action="/invoices/10/approve" class="button-to">
|
130
|
+
<div>
|
131
|
+
<input id="approve_invoice_10" type="submit" value="Approve" />
|
132
|
+
<input name="authenticity_token" type="hidden" value="WxKGVy3Y5zcvFEiFe66D/odoc3CicfMdAup4vzQfiZ0=" />
|
133
|
+
<span>Hello World<span>
|
134
|
+
</div>
|
135
|
+
</form>
|
136
|
+
<form method="post" action="/invoices/10/delegate" class="button-to">
|
137
|
+
<div>
|
138
|
+
<input id="delegate_invoice_10" type="submit" value="Delegate" />
|
139
|
+
<input name="authenticity_token" type="hidden" value="WxKGVy3Y5zcvFEiFe66D/odoc3CicfMdAup4vzQfiZ0=" />
|
140
|
+
<span>Hi There<span>
|
141
|
+
</div>
|
142
|
+
</form>
|
143
|
+
HTML
|
144
|
+
|
145
|
+
selectors = lambda do |form|
|
146
|
+
[
|
147
|
+
form.css('div input:nth-child(1)').first.attributes['value'],
|
148
|
+
form.css('span').first.text.gsub(/\302\240/, ' ')
|
149
|
+
]
|
150
|
+
end
|
151
|
+
|
152
|
+
_tableish(html, 'form', selectors).should == [
|
153
|
+
['Approve', "Hello World"],
|
154
|
+
['Delegate', 'Hi There']
|
155
|
+
]
|
156
|
+
end
|
126
157
|
end
|
127
158
|
end
|
128
159
|
end
|
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.
|
4
|
+
version: 0.2.3
|
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:
|
14
|
+
date: 2010-01-03 00:00:00 +01:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|