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