cucumber-rails 1.5.0 → 1.6.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.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +52 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +42 -0
- data/.travis.yml +22 -31
- data/Appraisals +29 -35
- data/{History.md → CHANGELOG.md} +48 -30
- data/CONTRIBUTING.md +1 -1
- data/README.md +14 -8
- data/Rakefile +3 -3
- data/config/cucumber.yml +3 -3
- data/cucumber-rails.gemspec +10 -8
- data/dev_tasks/yard.rake +2 -2
- data/features/capybara_javascript_drivers.feature +6 -5
- data/features/choose_javascript_database_strategy.feature +1 -1
- data/features/database_cleaner.feature +3 -3
- data/features/disable_automatic_database_cleaning.feature +3 -3
- data/features/emulate_javascript.feature +12 -10
- data/features/no_database.feature +2 -13
- data/features/rerun_profile.feature +13 -4
- data/features/rest_api.feature +1 -1
- data/features/step_definitions/cucumber_rails_steps.rb +35 -11
- data/features/support/env.rb +8 -0
- data/features/support/legacy_web_steps_support.rb +7 -7
- data/gemfiles/rails_4_0.gemfile +5 -2
- data/gemfiles/rails_4_1.gemfile +4 -2
- data/gemfiles/rails_4_2.gemfile +4 -3
- data/gemfiles/rails_5_0.gemfile +3 -2
- data/gemfiles/rails_5_1.gemfile +4 -2
- data/gemfiles/rails_5_2.gemfile +17 -0
- data/lib/cucumber/rails.rb +2 -2
- data/lib/cucumber/rails/capybara/javascript_emulation.rb +2 -2
- data/lib/cucumber/rails/capybara/select_dates_and_times.rb +3 -3
- data/lib/cucumber/rails/hooks/active_record.rb +1 -1
- data/lib/cucumber/rails/hooks/database_cleaner.rb +2 -2
- data/lib/generators/cucumber/install/templates/config/cucumber.yml.erb +4 -3
- data/lib/generators/cucumber/install/templates/support/_rails_each_run.rb.erb +2 -2
- data/lib/generators/cucumber/install/templates/tasks/cucumber.rake.erb +9 -9
- data/spec/generators/cucumber/install/install_generator_spec.rb +1 -1
- data/spec/spec_helper.rb +12 -5
- metadata +59 -21
- data/gemfiles/lowest_version_bounds.gemfile +0 -26
data/Rakefile
CHANGED
@@ -14,9 +14,9 @@ Dir["#{File.dirname(__FILE__)}/dev_tasks/*.rake"].sort.each { |ext| load ext }
|
|
14
14
|
|
15
15
|
CLEAN.include('doc', 'tmp')
|
16
16
|
|
17
|
-
task :
|
17
|
+
task default: :test
|
18
18
|
|
19
|
-
task :
|
19
|
+
task test: [:spec, :cucumber]
|
20
20
|
|
21
21
|
namespace :test do
|
22
22
|
desc "Run tests against all gemfiles"
|
@@ -45,5 +45,5 @@ namespace :gemfiles do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
desc "Rebuild generated gemfiles and install dependencies"
|
48
|
-
task :
|
48
|
+
task rebuild: [:clean, :install]
|
49
49
|
end
|
data/config/cucumber.yml
CHANGED
@@ -5,7 +5,7 @@ path = if failing_scenarios.empty?
|
|
5
5
|
'features'
|
6
6
|
else
|
7
7
|
puts "Running failed scenarios"
|
8
|
-
failing_scenarios
|
8
|
+
failing_scenarios.gsub /\s/, ' '
|
9
9
|
end
|
10
10
|
opts = [
|
11
11
|
"--format #{path == 'features' ? 'progress' : 'pretty'}",
|
@@ -13,8 +13,8 @@ opts = [
|
|
13
13
|
]
|
14
14
|
rails_version = `bundle exec rails --version`.match(/[\d.]+$/).to_s
|
15
15
|
if Gem::Version.new(rails_version) < Gem::Version.new('4.2')
|
16
|
-
opts <<
|
16
|
+
opts << "--tags 'not @requires-rails-version-42'"
|
17
17
|
end
|
18
18
|
optlist = opts.join(' ')
|
19
19
|
%>
|
20
|
-
default: <%= path %> <%= optlist %> --tags
|
20
|
+
default: <%= path %> <%= optlist %> --tags 'not @broken'
|
data/cucumber-rails.gemspec
CHANGED
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'cucumber-rails'
|
6
|
-
s.version = '1.
|
6
|
+
s.version = '1.6.0'
|
7
7
|
s.authors = ["Aslak Hellesøy", "Dennis Blöte", "Rob Holland"]
|
8
8
|
s.description = "Cucumber Generator and Runtime for Rails"
|
9
9
|
s.summary = "#{s.name}-#{s.version}"
|
@@ -12,30 +12,32 @@ Gem::Specification.new do |s|
|
|
12
12
|
|
13
13
|
s.license = 'MIT'
|
14
14
|
|
15
|
-
s.add_runtime_dependency('capybara', ['>= 1.1.2', '<
|
16
|
-
s.add_runtime_dependency('cucumber', ['>=
|
17
|
-
s.add_runtime_dependency('nokogiri', '~> 1.
|
18
|
-
s.add_runtime_dependency('railties', ['>= 4', '<
|
15
|
+
s.add_runtime_dependency('capybara', ['>= 1.1.2', '< 4'])
|
16
|
+
s.add_runtime_dependency('cucumber', ['>= 3.0.2', '< 4'])
|
17
|
+
s.add_runtime_dependency('nokogiri', '~> 1.8')
|
18
|
+
s.add_runtime_dependency('railties', ['>= 4', '< 6'])
|
19
19
|
s.add_runtime_dependency('mime-types', ['>= 1.17', '< 4'])
|
20
20
|
|
21
21
|
# Main development dependencies
|
22
|
-
s.add_development_dependency('ammeter', ['>= 1.0.0', '
|
22
|
+
s.add_development_dependency('ammeter', ['>= 1.0.0', '!= 1.1.3'])
|
23
23
|
s.add_development_dependency('appraisal', '>= 0.5.1')
|
24
24
|
s.add_development_dependency('aruba', '~> 0.14.2')
|
25
25
|
s.add_development_dependency('builder', ['>= 3.1.0', '< 4'])
|
26
26
|
s.add_development_dependency('bundler', '>= 1.3.5')
|
27
|
-
s.add_development_dependency('selenium-webdriver', '>=
|
27
|
+
s.add_development_dependency('selenium-webdriver', '>= 3.4.1')
|
28
28
|
s.add_development_dependency('database_cleaner', '>= 1.0.0')
|
29
|
-
s.add_development_dependency('
|
29
|
+
s.add_development_dependency('factory_bot', '>= 3.2')
|
30
30
|
s.add_development_dependency('rake', '>= 0.9.2.2')
|
31
31
|
s.add_development_dependency('rspec', '~> 3.0')
|
32
32
|
s.add_development_dependency('rails')
|
33
|
+
s.add_development_dependency('sqlite3')
|
33
34
|
|
34
35
|
# For Documentation:
|
35
36
|
s.add_development_dependency('rdiscount', '>= 2.0.7')
|
36
37
|
s.add_development_dependency('rdoc', '>= 3.4')
|
37
38
|
s.add_development_dependency('yard', '>= 0.8.7')
|
38
39
|
|
40
|
+
s.required_ruby_version = '>= 2.2.0'
|
39
41
|
s.rubygems_version = ">= 1.6.1"
|
40
42
|
s.files = `git ls-files`.split("\n")
|
41
43
|
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
data/dev_tasks/yard.rake
CHANGED
@@ -20,7 +20,7 @@ namespace :api do
|
|
20
20
|
mkdir_p dir
|
21
21
|
yard.options = ["--out", dir]
|
22
22
|
end
|
23
|
-
task :
|
23
|
+
task yard: :dir
|
24
24
|
|
25
25
|
task :release do
|
26
26
|
Dir.chdir(SITE_DIR) do
|
@@ -31,5 +31,5 @@ namespace :api do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
desc "Generate YARD docs for Cucumber-Rails' API"
|
34
|
-
task :
|
34
|
+
task doc: [:yard, :release]
|
35
35
|
end
|
@@ -3,19 +3,20 @@ Feature: Capybara Javascript Drivers
|
|
3
3
|
|
4
4
|
Background: A simple calendar app
|
5
5
|
Given I have created a new Rails app and installed cucumber-rails
|
6
|
-
And I
|
6
|
+
And I force selenium to run Firefox in headless mode
|
7
|
+
And I run `bundle exec rails g scaffold appointment name:string when:datetime`
|
7
8
|
And I write to "features/step_definitions/date_time_steps.rb" with:
|
8
9
|
"""
|
9
10
|
When /^(?:|I )select "([^"]+)" as the "([^"]+)" time$/ do |time, selector|
|
10
|
-
select_time(time, :
|
11
|
+
select_time(time, from: selector)
|
11
12
|
end
|
12
13
|
|
13
14
|
When /^(?:|I )select "([^"]+)" as the "([^"]+)" date$/ do |date, selector|
|
14
|
-
select_date(date, :
|
15
|
+
select_date(date, from: selector)
|
15
16
|
end
|
16
17
|
|
17
18
|
When /^(?:|I )select "([^"]+)" as the "([^"]+)" date and time$/ do |datetime, selector|
|
18
|
-
select_datetime(datetime, :
|
19
|
+
select_datetime(datetime, from: selector)
|
19
20
|
end
|
20
21
|
"""
|
21
22
|
|
@@ -55,7 +56,7 @@ Feature: Capybara Javascript Drivers
|
|
55
56
|
And I write to "features/step_definitions/custom_steps.rb" with:
|
56
57
|
"""
|
57
58
|
Given /^a random appointment$/ do
|
58
|
-
@appointment = Appointment.create!(:
|
59
|
+
@appointment = Appointment.create!(name: 'Random appointment', when: DateTime.now)
|
59
60
|
end
|
60
61
|
|
61
62
|
Given /^I am viewing random appointment$/ do
|
@@ -3,7 +3,7 @@ Feature: Choose javascript database strategy
|
|
3
3
|
When running a scenario with the @javascript tag, Capybara will fire up a web server
|
4
4
|
in the same process in a separate thread to your cukes. By default, this means ActiveRecord will give it a
|
5
5
|
separate database connection, which in turn means data you put into your database from
|
6
|
-
Cucumber step definitions (e.g. using
|
6
|
+
Cucumber step definitions (e.g. using FactoryBot) won't be visible to the web server
|
7
7
|
until the database transaction is committed.
|
8
8
|
|
9
9
|
So if you use a transaction strategy for cleaning up your database at the end of a scenario,
|
@@ -16,18 +16,18 @@ Feature: DatabaseCleaner
|
|
16
16
|
When I create 7 more widgets
|
17
17
|
Then I should have 9 widgets
|
18
18
|
"""
|
19
|
-
And I
|
19
|
+
And I run `rails generate model widget name:string`
|
20
20
|
And I write to "features/step_definitions/widget_steps.rb" with:
|
21
21
|
"""
|
22
22
|
Given /^I have (\d+) widgets$/ do |n|
|
23
23
|
n.to_i.times do |i|
|
24
|
-
Widget.create! :
|
24
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
When /^I create (\d+) more widgets$/ do |n|
|
29
29
|
n.to_i.times do |i|
|
30
|
-
Widget.create! :
|
30
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -27,18 +27,18 @@ Feature: Disable automatic database cleaning
|
|
27
27
|
When I create 5 widgets
|
28
28
|
Then I should have 8 widgets
|
29
29
|
"""
|
30
|
-
And I
|
30
|
+
And I run `rails generate model widget name:string`
|
31
31
|
And I write to "features/step_definitions/widget_steps.rb" with:
|
32
32
|
"""
|
33
33
|
Given /^I have (\d+) widgets$/ do |n|
|
34
34
|
n.to_i.times do |i|
|
35
|
-
Widget.create! :
|
35
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
39
|
When /^I create (\d+) widgets$/ do |n|
|
40
40
|
n.to_i.times do |i|
|
41
|
-
Widget.create! :
|
41
|
+
Widget.create! name: "Widget #{Widget.count + i}"
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -2,7 +2,8 @@ Feature: Emulate Javascript
|
|
2
2
|
|
3
3
|
Scenario: See a widget
|
4
4
|
Given I have created a new Rails app and installed cucumber-rails
|
5
|
-
And I
|
5
|
+
And I force selenium to run Firefox in headless mode
|
6
|
+
And I run `rails generate scaffold widget name:string`
|
6
7
|
And I write to "features/f.feature" with:
|
7
8
|
"""
|
8
9
|
@javascript
|
@@ -15,12 +16,12 @@ Feature: Emulate Javascript
|
|
15
16
|
And I write to "features/step_definitions/s.rb" with:
|
16
17
|
"""
|
17
18
|
Given /^there is a widget named "([^"]*)"$/ do |name|
|
18
|
-
|
19
|
+
FactoryBot.create(:widget, name: name)
|
19
20
|
end
|
20
21
|
"""
|
21
22
|
And I write to "features/support/factories.rb" with:
|
22
23
|
"""
|
23
|
-
|
24
|
+
FactoryBot.define do
|
24
25
|
factory :widget do
|
25
26
|
name 'testwidget'
|
26
27
|
end
|
@@ -36,9 +37,9 @@ Feature: Emulate Javascript
|
|
36
37
|
|
37
38
|
Scenario: Pass on the CSRF token
|
38
39
|
Given I have created a new Rails app and installed cucumber-rails
|
39
|
-
And I
|
40
|
-
And I
|
41
|
-
And I
|
40
|
+
And I run `rails generate scaffold widget name:string`
|
41
|
+
And I run `sed -i -e 's/forgery_protection *= false/forgery_protection = true/' config/environments/test.rb`
|
42
|
+
And I run `rails generate controller session establish`
|
42
43
|
And I write to "app/controllers/session_controller.rb" with:
|
43
44
|
"""
|
44
45
|
class SessionController < ApplicationController
|
@@ -51,8 +52,8 @@ Feature: Emulate Javascript
|
|
51
52
|
"""
|
52
53
|
class ApplicationController < ActionController::Base
|
53
54
|
protect_from_forgery
|
54
|
-
before_action :
|
55
|
-
render :
|
55
|
+
before_action except: :establish do
|
56
|
+
render text: "denied", status: :forbidden and return false unless session[:verified]
|
56
57
|
end
|
57
58
|
end
|
58
59
|
"""
|
@@ -72,12 +73,12 @@ Feature: Emulate Javascript
|
|
72
73
|
And I write to "features/step_definitions/s.rb" with:
|
73
74
|
"""
|
74
75
|
Given /^there is a widget named "([^"]*)"$/ do |name|
|
75
|
-
|
76
|
+
FactoryBot.create(:widget, name: name)
|
76
77
|
end
|
77
78
|
"""
|
78
79
|
And I write to "features/support/factories.rb" with:
|
79
80
|
"""
|
80
|
-
|
81
|
+
FactoryBot.define do
|
81
82
|
factory :widget do
|
82
83
|
name 'testwidget'
|
83
84
|
end
|
@@ -90,3 +91,4 @@ Feature: Emulate Javascript
|
|
90
91
|
1 scenario (1 passed)
|
91
92
|
8 steps (8 passed)
|
92
93
|
"""
|
94
|
+
|
@@ -26,19 +26,8 @@ Feature: No Database
|
|
26
26
|
"""
|
27
27
|
require 'cucumber/rails'
|
28
28
|
"""
|
29
|
-
|
30
|
-
And I
|
31
|
-
"""
|
32
|
-
source 'http://rubygems.org'
|
33
|
-
gem 'rails'
|
34
|
-
gem "cucumber-rails", :group => :test, :path => "../../.."
|
35
|
-
gem "capybara", :group => :test
|
36
|
-
gem "rspec-rails", :group => :test
|
37
|
-
if RUBY_VERSION >= '2.0.0'
|
38
|
-
gem 'sass-rails'
|
39
|
-
gem 'uglifier'
|
40
|
-
end
|
41
|
-
"""
|
29
|
+
And I remove the 'database_cleaner' gem from the Gemfile
|
30
|
+
And I remove the 'sqlite' gem from the Gemfile
|
42
31
|
And I write to "app/controllers/posts_controller.rb" with:
|
43
32
|
"""
|
44
33
|
class PostsController < ApplicationController
|
@@ -8,6 +8,7 @@ Feature: Rerun profile
|
|
8
8
|
And a file named "rerun.txt" with:
|
9
9
|
"""
|
10
10
|
features/rerun_test.feature:2
|
11
|
+
features/rerun_test.feature:5
|
11
12
|
"""
|
12
13
|
And a file named "features/rerun_test.feature" with:
|
13
14
|
"""
|
@@ -15,6 +16,9 @@ Feature: Rerun profile
|
|
15
16
|
Scenario: failing before
|
16
17
|
Given fixed now
|
17
18
|
|
19
|
+
Scenario: still failing
|
20
|
+
Given broken
|
21
|
+
|
18
22
|
Scenario: always passing
|
19
23
|
Given passing
|
20
24
|
"""
|
@@ -24,14 +28,19 @@ Feature: Rerun profile
|
|
24
28
|
puts "All fixed now"
|
25
29
|
end
|
26
30
|
|
31
|
+
Given /broken/ do
|
32
|
+
raise "I'm broken"
|
33
|
+
end
|
34
|
+
|
27
35
|
Given /passing/ do
|
28
36
|
puts "I've always been passing"
|
29
37
|
end
|
30
38
|
"""
|
31
|
-
When I
|
32
|
-
Then
|
39
|
+
When I run `bundle exec cucumber -p rerun`
|
40
|
+
Then it should fail with:
|
33
41
|
"""
|
34
|
-
|
35
|
-
|
42
|
+
2 scenarios (1 failed, 1 passed)
|
43
|
+
2 steps (1 failed, 1 passed)
|
36
44
|
"""
|
37
45
|
And the file "rerun.txt" should not contain "features/rerun_test.feature:2"
|
46
|
+
And the file "rerun.txt" should contain "features/rerun_test.feature:5"
|
data/features/rest_api.feature
CHANGED
@@ -8,8 +8,7 @@ module CucumberRailsHelper
|
|
8
8
|
delete_environment_variable 'RUBYOPT'
|
9
9
|
delete_environment_variable 'BUNDLE_BIN_PATH'
|
10
10
|
delete_environment_variable 'BUNDLE_GEMFILE'
|
11
|
-
|
12
|
-
gem 'nokogiri', '~> 1.6.8' if RUBY_VERSION < '2.1.0'
|
11
|
+
|
13
12
|
run_simple 'bundle install'
|
14
13
|
end
|
15
14
|
|
@@ -23,16 +22,12 @@ module CucumberRailsHelper
|
|
23
22
|
if Gem.loaded_specs['rails'].version < Gem::Version.new('5.1.0')
|
24
23
|
gem 'capybara', group: :test
|
25
24
|
gem 'selenium-webdriver', group: :test
|
26
|
-
else
|
27
|
-
# Make sure to restrict the selected selenium-webdriver version
|
28
|
-
# Since version 3 geckodriver is required to be installed
|
29
|
-
gemfile_text = File.read(expand_path('Gemfile'))
|
30
|
-
gemfile_text.gsub!("gem 'selenium-webdriver'", "gem 'selenium-webdriver', '~> 2.0'")
|
31
|
-
overwrite_file('Gemfile', gemfile_text)
|
32
25
|
end
|
26
|
+
|
27
|
+
gem 'geckodriver-helper', group: :test
|
33
28
|
gem 'rspec-rails', group: :test
|
34
29
|
gem 'database_cleaner', group: :test unless options.include?(:no_database_cleaner)
|
35
|
-
gem '
|
30
|
+
gem 'factory_bot', group: :test unless options.include?(:no_factory_bot)
|
36
31
|
# Newer versions of rake remove a method used by RSpec older versions
|
37
32
|
# See https://stackoverflow.com/questions/35893584/nomethoderror-undefined-method-last-comment-after-upgrading-to-rake-11#35893625
|
38
33
|
if Gem::Version.new(RSpec::Support::Version::STRING) < Gem::Version.new('3.4.4')
|
@@ -83,14 +78,14 @@ end
|
|
83
78
|
|
84
79
|
Given /^I have created a new Rails app with no database and installed cucumber-rails$/ do
|
85
80
|
rails_new args: '--skip-active-record'
|
86
|
-
install_cucumber_rails :no_database_cleaner, :
|
81
|
+
install_cucumber_rails :no_database_cleaner, :no_factory_bot
|
87
82
|
overwrite_file('features/support/env.rb', "require 'cucumber/rails'\n")
|
88
83
|
create_web_steps
|
89
84
|
end
|
90
85
|
|
91
86
|
Given /^I have created a new Rails app "(.*?)" with no database and installed cucumber\-rails$/ do |app_name|
|
92
87
|
rails_new name: app_name, args: '--skip-active-record'
|
93
|
-
install_cucumber_rails :no_database_cleaner, :
|
88
|
+
install_cucumber_rails :no_database_cleaner, :no_factory_bot
|
94
89
|
overwrite_file('features/support/env.rb', "require 'cucumber/rails'\n")
|
95
90
|
create_web_steps
|
96
91
|
end
|
@@ -100,6 +95,18 @@ Given /^I have a "([^"]*)" ActiveRecord model object$/ do |name|
|
|
100
95
|
run_simple('bundle exec rake db:migrate RAILS_ENV=test')
|
101
96
|
end
|
102
97
|
|
98
|
+
Given /^I force selenium to run Firefox in headless mode$/ do
|
99
|
+
selenium_config = %{
|
100
|
+
Capybara.register_driver :selenium do |app|
|
101
|
+
browser_options = ::Selenium::WebDriver::Firefox::Options.new()
|
102
|
+
browser_options.args << '--headless'
|
103
|
+
Capybara::Selenium::Driver.new(app, browser: :firefox, options: browser_options)
|
104
|
+
end
|
105
|
+
}
|
106
|
+
|
107
|
+
step 'I append to "features/support/env.rb" with:', selenium_config
|
108
|
+
end
|
109
|
+
|
103
110
|
When /^I run the cukes$/ do
|
104
111
|
run_simple('bundle exec cucumber')
|
105
112
|
end
|
@@ -111,3 +118,20 @@ Then /^the feature run should pass with:$/ do |string|
|
|
111
118
|
step 'the exit status should be 0'
|
112
119
|
step 'the output should contain:', string
|
113
120
|
end
|
121
|
+
|
122
|
+
Given("I remove the {string} gem from the Gemfile") do |gem_name|
|
123
|
+
run 'pwd'
|
124
|
+
app_path = last_command_started.output.strip
|
125
|
+
gemfile_path = File.join(app_path, 'Gemfile')
|
126
|
+
|
127
|
+
content = File.open(gemfile_path, 'r').readlines
|
128
|
+
new_content = []
|
129
|
+
|
130
|
+
content.each do |line|
|
131
|
+
next if line =~ /gem ["|']#{gem_name}["|'].*/
|
132
|
+
|
133
|
+
new_content << line
|
134
|
+
end
|
135
|
+
|
136
|
+
overwrite_file(gemfile_path, new_content.join("\r\n"))
|
137
|
+
end
|
data/features/support/env.rb
CHANGED
@@ -53,11 +53,11 @@ When /^(?:|I )follow "([^"]*)"$/ do |link|
|
|
53
53
|
end
|
54
54
|
|
55
55
|
When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
|
56
|
-
fill_in(field, :
|
56
|
+
fill_in(field, with: value)
|
57
57
|
end
|
58
58
|
|
59
59
|
When /^(?:|I )fill in "([^"]*)" for "([^"]*)"$/ do |value, field|
|
60
|
-
fill_in(field, :
|
60
|
+
fill_in(field, with: value)
|
61
61
|
end
|
62
62
|
|
63
63
|
# Use this to fill in an entire form with data from a table. Example:
|
@@ -78,7 +78,7 @@ When /^(?:|I )fill in the following:$/ do |fields|
|
|
78
78
|
end
|
79
79
|
|
80
80
|
When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
|
81
|
-
select(value, :
|
81
|
+
select(value, from: field)
|
82
82
|
end
|
83
83
|
|
84
84
|
When /^(?:|I )check "([^"]*)"$/ do |field|
|
@@ -109,9 +109,9 @@ Then /^(?:|I )should see \\/([^\\/]*)\\/$/ do |regexp|
|
|
109
109
|
regexp = Regexp.new(regexp)
|
110
110
|
|
111
111
|
if page.respond_to? :should
|
112
|
-
page.should have_xpath('//*', :
|
112
|
+
page.should have_xpath('//*', text: regexp)
|
113
113
|
else
|
114
|
-
assert page.has_xpath?('//*', :
|
114
|
+
assert page.has_xpath?('//*', text: regexp)
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
@@ -127,9 +127,9 @@ Then /^(?:|I )should not see \\/([^\\/]*)\\/$/ do |regexp|
|
|
127
127
|
regexp = Regexp.new(regexp)
|
128
128
|
|
129
129
|
if page.respond_to? :should
|
130
|
-
page.should have_no_xpath('//*', :
|
130
|
+
page.should have_no_xpath('//*', text: regexp)
|
131
131
|
else
|
132
|
-
assert page.has_no_xpath?('//*', :
|
132
|
+
assert page.has_no_xpath?('//*', text: regexp)
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|