cucumber-rails 0.2.4 → 0.3.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.
- data/.gitignore +3 -2
- data/HACKING.rdoc +34 -0
- data/History.txt +29 -0
- data/README.rdoc +48 -22
- data/Rakefile +6 -1
- data/VERSION +1 -1
- data/config/.gitignore +1 -0
- data/cucumber-rails.gemspec +49 -25
- data/dev_tasks/cucumber.rake +5 -0
- data/{tasks → dev_tasks}/rspec.rake +0 -0
- data/features/rails2.feature +56 -0
- data/features/rails3.feature +52 -0
- data/features/step_definitions/cucumber_rails_steps.rb +7 -0
- data/features/support/env.rb +4 -0
- data/features/support/matchers/files.rb +17 -0
- data/generators/cucumber/cucumber_generator.rb +27 -134
- data/generators/cucumber/templates/step_definitions/web_steps_ja.rb.erb +136 -0
- data/generators/feature/feature_generator.rb +30 -24
- data/lib/cucumber/rails/capybara_javascript_emulation.rb +25 -14
- data/lib/cucumber/rails/rspec.rb +20 -7
- data/lib/cucumber/rails/world.rb +5 -1
- data/lib/cucumber/web/tableish.rb +67 -65
- data/lib/generators/cucumber/feature/USAGE +16 -0
- data/lib/generators/cucumber/feature/feature_base.rb +29 -0
- data/lib/generators/cucumber/feature/feature_generator.rb +37 -0
- data/lib/generators/cucumber/feature/named_arg.rb +17 -0
- data/lib/generators/cucumber/skeleton/USAGE +21 -0
- data/lib/generators/cucumber/skeleton/skeleton_base.rb +202 -0
- data/lib/generators/cucumber/skeleton/skeleton_generator.rb +64 -0
- data/rvm.yml +22 -0
- data/spec/cucumber/web/tableish_spec.rb +2 -0
- data/spec/generators/cucumber/skeleton/skeleton_base_spec.rb +84 -0
- data/spec/spec.opts +2 -0
- data/{generators/feature/templates → templates/feature}/feature.erb +18 -12
- data/{generators/feature/templates → templates/feature}/steps.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/config/cucumber.yml.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/environments/cucumber.rb.erb +2 -2
- data/{generators/cucumber/templates → templates/skeleton}/script/cucumber +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/capybara_steps.rb.erb +18 -8
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_cs.rb.erb +0 -0
- data/templates/skeleton/step_definitions/web_steps_da.rb.erb +114 -0
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_de.rb.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_es.rb.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_no.rb.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_pt-BR.rb.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/step_definitions/webrat_steps.rb.erb +13 -3
- data/{generators/cucumber/templates → templates/skeleton}/support/_rails_each_run.rb +7 -2
- data/{generators/cucumber/templates → templates/skeleton}/support/_rails_prefork.rb.erb +1 -1
- data/{generators/cucumber/templates → templates/skeleton}/support/capybara.rb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/support/edit_warning.txt +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/support/paths.rb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/support/rails.rb.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/support/rails_spork.rb.erb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/support/webrat.rb +0 -0
- data/{generators/cucumber/templates → templates/skeleton}/tasks/cucumber.rake.erb +1 -1
- metadata +77 -31
@@ -0,0 +1,64 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'skeleton_base')
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
class SkeletonGenerator < Rails::Generators::Base
|
5
|
+
|
6
|
+
include Cucumber::Generators::SkeletonBase
|
7
|
+
|
8
|
+
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
|
9
|
+
|
10
|
+
argument :language, :type => :string, :banner => "LANG", :optional => true
|
11
|
+
|
12
|
+
class_option :webrat, :type => :boolean, :desc => "Use Webrat"
|
13
|
+
class_option :capybara, :type => :boolean, :desc => "Use Capybara"
|
14
|
+
class_option :rspec, :type => :boolean, :desc => "Use RSpec"
|
15
|
+
class_option :testunit, :type => :boolean, :desc => "Use Test::Unit"
|
16
|
+
class_option :spork, :type => :boolean, :desc => "Use Spork"
|
17
|
+
class_option :skip_database, :type => :boolean, :desc => "Skip modification of database.yml", :aliases => '-D', :default => false
|
18
|
+
|
19
|
+
attr_reader :framework, :driver
|
20
|
+
|
21
|
+
def configure_defaults
|
22
|
+
@language ||= 'en'
|
23
|
+
@framework = framework_from_options || detect_current_framework || detect_default_framework
|
24
|
+
@driver = driver_from_options || detect_current_driver || detect_default_driver
|
25
|
+
end
|
26
|
+
|
27
|
+
def generate
|
28
|
+
check_upgrade_limitations
|
29
|
+
create_templates
|
30
|
+
create_scripts
|
31
|
+
create_step_definitions
|
32
|
+
create_feature_support
|
33
|
+
create_tasks
|
34
|
+
create_database unless options[:skip_database]
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.gem_root
|
38
|
+
File.expand_path("../../../../../", __FILE__)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.source_root
|
42
|
+
File.join(gem_root, 'templates/skeleton')
|
43
|
+
end
|
44
|
+
|
45
|
+
def cucumber_rails_env
|
46
|
+
'test'
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def framework_from_options
|
52
|
+
return :rspec if options[:rspec]
|
53
|
+
return :testunit if options[:testunit]
|
54
|
+
return nil
|
55
|
+
end
|
56
|
+
|
57
|
+
def driver_from_options
|
58
|
+
return :webrat if options[:webrat]
|
59
|
+
return :capybara if options[:capybara]
|
60
|
+
return nil
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
data/rvm.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
rubies:
|
2
|
+
1.8.7: ruby-1.8.7-tv1_8_7_174
|
3
|
+
# 1.9.1: ruby-1.9.1-p378
|
4
|
+
gems:
|
5
|
+
- aruba jeweler sqlite3-ruby capybara webrat spork database_cleaner cucumber rspec rspec-rails
|
6
|
+
rails_gems:
|
7
|
+
2.3.5:
|
8
|
+
- rails -v 2.3.5
|
9
|
+
3.0.0.beta:
|
10
|
+
- i18n -v 0.3.0
|
11
|
+
- tzinfo -v 0.3.16
|
12
|
+
- memcache-client -v 1.7.5
|
13
|
+
- rack-mount -v 0.4.0
|
14
|
+
- rack-test -v 0.5.0
|
15
|
+
- text-format -v 1.0.0
|
16
|
+
- erubis -v 2.6.5
|
17
|
+
- mail -v 2.1.2
|
18
|
+
- thor -v 0.13
|
19
|
+
- bundler -v 0.9.7
|
20
|
+
- builder -v 2.1.2
|
21
|
+
- rails --pre
|
22
|
+
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "/../../../spec_helper")
|
2
|
+
|
3
|
+
# TODO using this seam as an interim way to get the file to load
|
4
|
+
module Config
|
5
|
+
CONFIG = {
|
6
|
+
'bindir' => 'foo',
|
7
|
+
'ruby_install_name' => 'bar'
|
8
|
+
}
|
9
|
+
end
|
10
|
+
require 'generators/cucumber/skeleton/skeleton_base'
|
11
|
+
|
12
|
+
module Cucumber
|
13
|
+
module Generators
|
14
|
+
describe SkeletonBase do
|
15
|
+
def instance_of_class_including(mixin)
|
16
|
+
Class.new do
|
17
|
+
include mixin
|
18
|
+
end.new
|
19
|
+
end
|
20
|
+
|
21
|
+
before(:each) do
|
22
|
+
Kernel.stub(:require => nil)
|
23
|
+
|
24
|
+
@generator = instance_of_class_including(Cucumber::Generators::SkeletonBase)
|
25
|
+
end
|
26
|
+
|
27
|
+
# This is a private method, but there was a bug in it where it
|
28
|
+
# defaulted to :testunit (the framework) when called to identify
|
29
|
+
# the driver
|
30
|
+
describe "#first_loadable" do
|
31
|
+
it "detects loadable libraries" do
|
32
|
+
Gem.should_receive(:available?).with('capybara').and_return(true)
|
33
|
+
@generator.send(:first_loadable, [['capybara', :capybara], ['webrat', :webrat ]]).should == :capybara
|
34
|
+
end
|
35
|
+
|
36
|
+
it "tries the given libraries in order" do
|
37
|
+
Gem.stub(:available?).with('capybara').and_return(false)
|
38
|
+
Gem.should_receive(:available?).with('webrat').and_return(true)
|
39
|
+
@generator.send(:first_loadable, [['capybara', :capybara], ['webrat', :webrat ]]).should == :webrat
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns nil if no libraries are available" do
|
43
|
+
Gem.stub(:available? => false)
|
44
|
+
@generator.send(:first_loadable, [['capybara', :capybara], ['webrat', :webrat ]]).should be_nil
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# This is a private method, but there may have been a bug in it where
|
49
|
+
# it defaulted to :testunit (the framework) when called to identify
|
50
|
+
# the driver
|
51
|
+
describe "#detect_in_env" do
|
52
|
+
describe "when env.rb doesn't exist" do
|
53
|
+
it "returns nil" do
|
54
|
+
File.should_receive(:file?).with("features/support/env.rb").and_return(false)
|
55
|
+
@generator.send(:detect_in_env, [['capybara', :capybara], ['webrat', :webrat]]).should be_nil
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "when env.rb exists" do
|
60
|
+
before(:each) do
|
61
|
+
File.stub(:file => true)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "detects loadable libraries, choosing the first in the argument list" do
|
65
|
+
IO.should_receive(:read).with("features/support/env.rb").and_return("blah webrat capybara blah")
|
66
|
+
@generator.send(:detect_in_env, [['capybara', :capybara], ['webrat', :webrat]]).should == :capybara
|
67
|
+
end
|
68
|
+
|
69
|
+
it "tries the given libraries in order" do
|
70
|
+
IO.should_receive(:read).with("features/support/env.rb").and_return("blah webrat blah")
|
71
|
+
@generator.send(:detect_in_env, [['capybara', :capybara], ['webrat', :webrat]]).should == :webrat
|
72
|
+
end
|
73
|
+
|
74
|
+
it "returns nil if no libraries are available" do
|
75
|
+
IO.should_receive(:read).with("features/support/env.rb").and_return("blah blah")
|
76
|
+
@generator.send(:detect_in_env, [['capybara', :capybara], ['webrat', :webrat]]).should be_nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
data/spec/spec.opts
ADDED
@@ -27,23 +27,29 @@ Feature: Manage <%= plural_name %>
|
|
27
27
|
#
|
28
28
|
# Capybara must use Culerity or Selenium2 (webdriver) when pages rely on
|
29
29
|
# Javascript events. Only Culerity supports confirmation dialogs.
|
30
|
-
#
|
31
|
-
# cucumber-rails will turn off transactions for scenarios tagged with
|
32
|
-
# @selenium, @culerity, @javascript or @no-txn and clean the database with
|
33
|
-
# DatabaseCleaner after the scenario has finished. This is to prevent data
|
34
|
-
# from leaking into the next scenario.
|
35
30
|
#
|
36
|
-
# Culerity has some
|
37
|
-
#
|
31
|
+
# Since Culerity and Selenium2 has some overhead, Cucumber-Rails will detect
|
32
|
+
# the presence of Javascript behind Delete links and issue a DELETE request
|
33
|
+
# instead of a GET request.
|
38
34
|
#
|
39
|
-
#
|
40
|
-
#
|
35
|
+
# You can turn off this emulation by tagging your scenario with @selenium,
|
36
|
+
# @culerity, @celerity or @javascript. (See the Capybara documentation for
|
37
|
+
# details about those tags). If any of these tags are present, Cucumber-Rails
|
38
|
+
# will also turn off transactions and clean the database with DatabaseCleaner
|
39
|
+
# after the scenario has finished. This is to prevent data from leaking into
|
40
|
+
# the next scenario.
|
41
41
|
#
|
42
|
-
#
|
43
|
-
# the
|
42
|
+
# Another way to avoid Cucumber-Rails'' javascript emulation without using any
|
43
|
+
# of the tags above is to modify your views to use <button> instead. You can
|
44
|
+
# see how in http://github.com/jnicklas/capybara/issues#issue/12
|
45
|
+
#
|
46
|
+
# TODO: Verify with Rob what this means: The rack driver will detect the
|
47
|
+
# onclick javascript and emulate its behaviour without a real Javascript
|
44
48
|
# interpreter.
|
45
49
|
#
|
46
|
-
|
50
|
+
<% if options[:capybara] -%>
|
51
|
+
@<%= options[:capybara] %>
|
52
|
+
<% end -%>
|
47
53
|
<% end -%>
|
48
54
|
Scenario: Delete <%= singular_name %>
|
49
55
|
Given the following <%= plural_name %>:
|
File without changes
|
File without changes
|
@@ -22,11 +22,11 @@ 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.
|
25
|
+
config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
|
26
26
|
<% if driver == :capybara -%>
|
27
27
|
config.gem 'capybara', :lib => false, :version => '>=0.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/capybara'))
|
28
28
|
<% else -%>
|
29
|
-
config.gem 'webrat', :lib => false, :version => '>=0.
|
29
|
+
config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat'))
|
30
30
|
<% end -%>
|
31
31
|
<% if framework == :rspec -%>
|
32
32
|
config.gem 'rspec', :lib => false, :version => '>=1.3.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec'))
|
File without changes
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/capybara_steps.rb.erb
RENAMED
@@ -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.
|
129
|
+
page.should have_no_xpath('//*', :text => regexp)
|
130
130
|
else
|
131
|
-
assert page.
|
131
|
+
assert page.has_no_xpath?('//*', :text => regexp)
|
132
132
|
end
|
133
133
|
end
|
134
134
|
end
|
@@ -158,7 +158,7 @@ Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should be checked$/ do |la
|
|
158
158
|
if defined?(Spec::Rails::Matchers)
|
159
159
|
find_field(label)['checked'].should == 'checked'
|
160
160
|
else
|
161
|
-
|
161
|
+
assert_equal 'checked', field_labeled(label)['checked']
|
162
162
|
end
|
163
163
|
end
|
164
164
|
end
|
@@ -168,17 +168,27 @@ Then /^the "([^\"]*)" checkbox(?: within "([^\"]*)")? should not be checked$/ do
|
|
168
168
|
if defined?(Spec::Rails::Matchers)
|
169
169
|
find_field(label)['checked'].should_not == 'checked'
|
170
170
|
else
|
171
|
-
|
171
|
+
assert_not_equal 'checked', field_labeled(label)['checked']
|
172
172
|
end
|
173
173
|
end
|
174
174
|
end
|
175
|
-
|
175
|
+
|
176
176
|
Then /^(?:|I )should be on (.+)$/ do |page_name|
|
177
|
-
current_path = URI.parse(current_url).select(:path, :query).compact.join('?')
|
178
177
|
if defined?(Spec::Rails::Matchers)
|
179
|
-
|
178
|
+
URI.parse(current_url).path.should == path_to(page_name)
|
179
|
+
else
|
180
|
+
assert_equal path_to(page_name), URI.parse(current_url).path
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
|
185
|
+
actual_params = CGI.parse(URI.parse(current_url).query)
|
186
|
+
expected_params = Hash[expected_pairs.rows_hash.map{|k,v| [k,[v]]}]
|
187
|
+
|
188
|
+
if defined?(Spec::Rails::Matchers)
|
189
|
+
actual_params.should == expected_params
|
180
190
|
else
|
181
|
-
assert_equal
|
191
|
+
assert_equal expected_params, actual_params
|
182
192
|
end
|
183
193
|
end
|
184
194
|
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_cs.rb.erb
RENAMED
File without changes
|
@@ -0,0 +1,114 @@
|
|
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
|
+
Givet /^(?:at )jeg står på (.*)$/ do |page_name|
|
7
|
+
Given %{I am on #{page_name}}
|
8
|
+
end
|
9
|
+
|
10
|
+
Når /^jeg går til (.*)$/ do |page_name|
|
11
|
+
When %{I go to #{page_name}}
|
12
|
+
end
|
13
|
+
|
14
|
+
Når /^jeg trykker "([^\"]*)"$/ do |button|
|
15
|
+
When %{I press "#{button}"}
|
16
|
+
end
|
17
|
+
|
18
|
+
Når /^jeg klikker "([^\"]*)"$/ do |link|
|
19
|
+
When %{I follow "#{link}"}
|
20
|
+
end
|
21
|
+
|
22
|
+
Når /^jeg klikker "([^\"]*)" under "([^\"]*)"$/ do |link, parent|
|
23
|
+
When %{I follow "#{link}" within "#{parent}"}
|
24
|
+
end
|
25
|
+
|
26
|
+
Når /^jeg fylder ud "([^\"]*)" med "([^\"]*)"$/ do |field, value|
|
27
|
+
When %{I fill in "#{field}" with "#{value}"}
|
28
|
+
end
|
29
|
+
|
30
|
+
Når /^jeg fylder ud "([^\"]*)" for "([^\"]*)"$/ do |value, field|
|
31
|
+
When %{I fill in "#{value}" for "#{field}"}
|
32
|
+
end
|
33
|
+
|
34
|
+
Når /^jeg fylder følgende ud:$/ do |fields|
|
35
|
+
When %{I fill in the following:}, fields
|
36
|
+
end
|
37
|
+
|
38
|
+
Når /^jeg vælger "([^\"]*)" fra "([^\"]*)"$/ do |value, field|
|
39
|
+
When %{I select "#{value}" from "#{field}"}
|
40
|
+
end
|
41
|
+
|
42
|
+
# Missing: date stuff
|
43
|
+
|
44
|
+
Når /^jeg afkrydser "([^\"]*)"$/ do |field|
|
45
|
+
When %{I check "#{field}"}
|
46
|
+
end
|
47
|
+
|
48
|
+
Når /^jeg fjerner afkrydsning for "([^\"]*)"$/ do |field|
|
49
|
+
When %{I uncheck "#{field}"}
|
50
|
+
end
|
51
|
+
|
52
|
+
Når /^jeg vælger "([^\"]*)"$/ do |field|
|
53
|
+
When %{I choose "#{field}"}
|
54
|
+
end
|
55
|
+
|
56
|
+
Når /^jeg tilsætter filen "([^\"]*)" til "([^\"]*)"$/ do |path, field|
|
57
|
+
When %{I attach the file "#{path}" to "#{field}"}
|
58
|
+
end
|
59
|
+
|
60
|
+
Så /^(?:skal jeg|jeg skal) se "([^\"]*)"$/ do |text|
|
61
|
+
Then %{I should see "#{text}"}
|
62
|
+
end
|
63
|
+
|
64
|
+
Så /^(?:skal jeg|jeg skal) se "([^\"]*)" under "([^\"]*)"$/ do |text, selector|
|
65
|
+
Then %{I should see "#{text}" within "#{selector}"}
|
66
|
+
end
|
67
|
+
|
68
|
+
Så /^(?:skal jeg|jeg skal) se \/([^\/]*)\/$/ do |regexp|
|
69
|
+
Then %{I should see /#{regexp}/}
|
70
|
+
end
|
71
|
+
|
72
|
+
Så /^(?:skal jeg|jeg skal) se \/([^\/]*)\/ under "([^\"]*)"$/ do |regexp, selector|
|
73
|
+
Then %{I should see /#{regexp}/ within "#{selector}"}
|
74
|
+
end
|
75
|
+
|
76
|
+
Så /^(?:skal jeg|jeg skal) ikke se "([^\"]*)"$/ do |text|
|
77
|
+
Then %{I should not see "#{text}"}
|
78
|
+
end
|
79
|
+
|
80
|
+
Så /^(?:skal jeg|jeg skal) ikke se "([^\"]*)" under "([^\"]*)"$/ do |text, selector|
|
81
|
+
Then %{I should not see "#{text}" within "#{selector}"}
|
82
|
+
end
|
83
|
+
|
84
|
+
Så /^(?:skal jeg|jeg skal) ikke se \/([^\/]*)\/$/ do |regexp|
|
85
|
+
Then %{I should not see /#{regexp}/}
|
86
|
+
end
|
87
|
+
|
88
|
+
Så /^(?:skal jeg|jeg skal) ikke se \/([^\/]*)\/ under "([^\"]*)"$/ do |regexp, selector|
|
89
|
+
Then %{I should not see /#{regexp}/ within "#{selector}"}
|
90
|
+
end
|
91
|
+
|
92
|
+
Så /^(?:skal )"([^\"]*)" feltet (?:skal )indeholde "([^\"]*)"$/ do |field, value|
|
93
|
+
Then %{the "#{field}" field should contain "#{value}"}
|
94
|
+
end
|
95
|
+
|
96
|
+
Så /^(?:skal ) "([^\"]*)" feltet (?:skal )ikke indeholde "([^\"]*)"$/ do |field, value|
|
97
|
+
Then %{the "#{field}" field should not contain "#{value}"}
|
98
|
+
end
|
99
|
+
|
100
|
+
Så /^(?:skal ) "([^\"]*)" afkrydsningsboksen (?:skal )være krydset af$/ do |label|
|
101
|
+
Then %{the "#{label}" checkbox should be checked}
|
102
|
+
end
|
103
|
+
|
104
|
+
Så /^(?:skal ) "([^\"]*)" afkrydsningsboksen (?:skal )ikke være krydset af$/ do |label|
|
105
|
+
Then %{the "#{label}" checkbox should not be checked}
|
106
|
+
end
|
107
|
+
|
108
|
+
Så /^(?:skal jeg|jeg skal) komme til (.+)$/ do |page_name|
|
109
|
+
Then %{I should be on #{page_name}}
|
110
|
+
end
|
111
|
+
|
112
|
+
Så /^vil jeg se siden$/ do |page_name|
|
113
|
+
Then %{show me the page}
|
114
|
+
end
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_de.rb.erb
RENAMED
File without changes
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_es.rb.erb
RENAMED
File without changes
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_no.rb.erb
RENAMED
File without changes
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/web_steps_pt-BR.rb.erb
RENAMED
File without changes
|
data/{generators/cucumber/templates → templates/skeleton}/step_definitions/webrat_steps.rb.erb
RENAMED
@@ -245,11 +245,21 @@ Then /^the "([^\"]*)" checkbox should not be checked$/ do |label|
|
|
245
245
|
end
|
246
246
|
|
247
247
|
Then /^(?:|I )should be on (.+)$/ do |page_name|
|
248
|
-
current_path = URI.parse(current_url).select(:path, :query).compact.join('?')
|
249
248
|
if defined?(Spec::Rails::Matchers)
|
250
|
-
|
249
|
+
URI.parse(current_url).path.should == path_to(page_name)
|
251
250
|
else
|
252
|
-
assert_equal path_to(page_name),
|
251
|
+
assert_equal path_to(page_name), URI.parse(current_url).path
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
|
256
|
+
actual_params = CGI.parse(URI.parse(current_url).query)
|
257
|
+
expected_params = Hash[expected_pairs.rows_hash.map{|k,v| [k,[v]]}]
|
258
|
+
|
259
|
+
if defined?(Spec::Rails::Matchers)
|
260
|
+
actual_params.should == expected_params
|
261
|
+
else
|
262
|
+
assert_equal expected_params, actual_params
|
253
263
|
end
|
254
264
|
end
|
255
265
|
|