spreewald 4.1.2 → 4.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +0 -5
- data/CHANGELOG.md +17 -0
- data/Gemfile.lock +3 -3
- data/Gemfile.ruby266.lock +59 -42
- data/Gemfile.ruby300.lock +37 -53
- data/README.md +10 -19
- data/Rakefile +5 -11
- data/examples/paths.rb +7 -0
- data/features/binary.feature +12 -8
- data/lib/spreewald/email_steps.rb +4 -18
- data/lib/spreewald/web_steps.rb +53 -50
- data/lib/spreewald.rb +1 -0
- data/lib/spreewald_support/field_errors.rb +56 -0
- data/lib/spreewald_support/version.rb +1 -1
- data/lib/steps/follow_the_link.rb +63 -0
- data/lib/steps/show_me_the_mails.rb +20 -0
- data/spec/steps/follow_the_link_spec.rb +81 -0
- data/spec/steps/show_me_the_mails_spec.rb +96 -0
- data/support/step_definition.rb +11 -0
- data/support/step_manager.rb +1 -1
- data/tests/rails-6_capybara-3/Gemfile.lock +1 -1
- data/tests/rails-6_capybara-3/features/step_definitions/field_error_steps.rb +12 -0
- data/tests/shared/app/controllers/forms_controller.rb +11 -2
- data/tests/shared/app/controllers/static_pages_controller.rb +3 -0
- data/tests/shared/app/views/forms/invalid_bootstrap3_form.html.haml +16 -0
- data/tests/shared/app/views/forms/invalid_bootstrap4_form.html.haml +18 -0
- data/tests/shared/app/views/forms/invalid_custom_form.html.haml +19 -0
- data/tests/shared/app/views/forms/{invalid_form.html.haml → invalid_rails_form.html.haml} +0 -0
- data/tests/shared/app/views/static_pages/should_see.haml +7 -0
- data/tests/shared/config/routes.rb +5 -1
- data/tests/shared/features/shared/iframe_steps.feature +1 -2
- data/tests/shared/features/shared/web_steps.feature +72 -15
- metadata +19 -112
- data/Gemfile.ruby245 +0 -10
- data/Gemfile.ruby245.lock +0 -73
- data/tests/rails-4_capybara-2/Gemfile +0 -24
- data/tests/rails-4_capybara-2/Gemfile.lock +0 -230
- data/tests/rails-4_capybara-2/README.rdoc +0 -28
- data/tests/rails-4_capybara-2/Rakefile +0 -6
- data/tests/rails-4_capybara-2/app +0 -1
- data/tests/rails-4_capybara-2/bin/bundle +0 -3
- data/tests/rails-4_capybara-2/bin/rails +0 -4
- data/tests/rails-4_capybara-2/bin/rake +0 -4
- data/tests/rails-4_capybara-2/bin/setup +0 -29
- data/tests/rails-4_capybara-2/config/application.rb +0 -35
- data/tests/rails-4_capybara-2/config/boot.rb +0 -3
- data/tests/rails-4_capybara-2/config/cucumber.yml +0 -8
- data/tests/rails-4_capybara-2/config/database.yml +0 -18
- data/tests/rails-4_capybara-2/config/environment.rb +0 -5
- data/tests/rails-4_capybara-2/config/environments/development.rb +0 -28
- data/tests/rails-4_capybara-2/config/environments/test.rb +0 -42
- data/tests/rails-4_capybara-2/config/initializers/backtrace_silencers.rb +0 -7
- data/tests/rails-4_capybara-2/config/initializers/cookies_serializer.rb +0 -3
- data/tests/rails-4_capybara-2/config/initializers/filter_parameter_logging.rb +0 -4
- data/tests/rails-4_capybara-2/config/initializers/inflections.rb +0 -16
- data/tests/rails-4_capybara-2/config/initializers/mime_types.rb +0 -4
- data/tests/rails-4_capybara-2/config/initializers/session_store.rb +0 -3
- data/tests/rails-4_capybara-2/config/initializers/silence_deprecation_warnings.rb +0 -11
- data/tests/rails-4_capybara-2/config/initializers/to_time_preserves_timezone.rb +0 -10
- data/tests/rails-4_capybara-2/config/initializers/wrap_parameters.rb +0 -14
- data/tests/rails-4_capybara-2/config/locales/en.yml +0 -23
- data/tests/rails-4_capybara-2/config/routes.rb +0 -1
- data/tests/rails-4_capybara-2/config/secrets.yml +0 -22
- data/tests/rails-4_capybara-2/config.ru +0 -4
- data/tests/rails-4_capybara-2/db +0 -1
- data/tests/rails-4_capybara-2/features/browser_tab_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/development_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/email_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/iframe_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/overriding.feature +0 -1
- data/tests/rails-4_capybara-2/features/session_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/step_definitions/overriding_steps.rb +0 -1
- data/tests/rails-4_capybara-2/features/step_definitions/test_steps.rb +0 -1
- data/tests/rails-4_capybara-2/features/support/env.rb +0 -66
- data/tests/rails-4_capybara-2/features/support/paths.rb +0 -1
- data/tests/rails-4_capybara-2/features/support/selectors.rb +0 -1
- data/tests/rails-4_capybara-2/features/support/selenium.rb +0 -1
- data/tests/rails-4_capybara-2/features/table_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/time_steps.feature +0 -1
- data/tests/rails-4_capybara-2/features/web_steps.feature +0 -1
- data/tests/rails-4_capybara-2/lib/tasks/cucumber.rake +0 -65
- data/tests/rails-4_capybara-2/log/.keep +0 -0
- data/tests/rails-4_capybara-2/public/404.html +0 -67
- data/tests/rails-4_capybara-2/public/422.html +0 -67
- data/tests/rails-4_capybara-2/public/500.html +0 -66
- data/tests/rails-4_capybara-2/public/favicon.ico +0 -0
- data/tests/rails-4_capybara-2/public/fixture_files +0 -1
- data/tests/rails-4_capybara-2/script/cucumber +0 -10
@@ -1,66 +0,0 @@
|
|
1
|
-
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
2
|
-
# It is recommended to regenerate this file in the future when you upgrade to a
|
3
|
-
# newer version of cucumber-rails. Consider adding your own code to a new file
|
4
|
-
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
5
|
-
# files.
|
6
|
-
|
7
|
-
ENV["RAILS_ENV"] ||= "test"
|
8
|
-
|
9
|
-
require 'cucumber/rails'
|
10
|
-
require 'rspec/expectations'
|
11
|
-
|
12
|
-
# load Spreewald steps
|
13
|
-
require 'spreewald/all_steps'
|
14
|
-
|
15
|
-
# Capybara defaults to CSS3 selectors rather than XPath.
|
16
|
-
# If you'd prefer to use XPath, just uncomment this line and adjust any
|
17
|
-
# selectors in your step definitions to use the XPath syntax.
|
18
|
-
# Capybara.default_selector = :xpath
|
19
|
-
|
20
|
-
# By default, any exception happening in your Rails application will bubble up
|
21
|
-
# to Cucumber so that your scenario will fail. This is a different from how
|
22
|
-
# your application behaves in the production environment, where an error page will
|
23
|
-
# be rendered instead.
|
24
|
-
#
|
25
|
-
# Sometimes we want to override this default behaviour and allow Rails to rescue
|
26
|
-
# exceptions and display an error page (just like when the app is running in production).
|
27
|
-
# Typical scenarios where you want to do this is when you test your error pages.
|
28
|
-
# There are two ways to allow Rails to rescue exceptions:
|
29
|
-
#
|
30
|
-
# 1) Tag your scenario (or feature) with @allow-rescue
|
31
|
-
#
|
32
|
-
# 2) Set the value below to true. Beware that doing this globally is not
|
33
|
-
# recommended as it will mask a lot of errors for you!
|
34
|
-
#
|
35
|
-
ActionController::Base.allow_rescue = false
|
36
|
-
|
37
|
-
# Remove/comment out the lines below if your app doesn't have a database.
|
38
|
-
# For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
|
39
|
-
begin
|
40
|
-
DatabaseCleaner.strategy = :transaction
|
41
|
-
rescue NameError
|
42
|
-
raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
|
43
|
-
end
|
44
|
-
|
45
|
-
# You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios.
|
46
|
-
# See the DatabaseCleaner documentation for details. Example:
|
47
|
-
#
|
48
|
-
# Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
|
49
|
-
# # { :except => [:widgets] } may not do what you expect here
|
50
|
-
# # as Cucumber::Rails::Database.javascript_strategy overrides
|
51
|
-
# # this setting.
|
52
|
-
# DatabaseCleaner.strategy = :truncation
|
53
|
-
# end
|
54
|
-
#
|
55
|
-
# Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
|
56
|
-
# DatabaseCleaner.strategy = :transaction
|
57
|
-
# end
|
58
|
-
#
|
59
|
-
|
60
|
-
# Possible values are :truncation and :transaction
|
61
|
-
# The :transaction strategy is faster, but might give you threading problems.
|
62
|
-
# See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
|
63
|
-
Cucumber::Rails::Database.javascript_strategy = :truncation
|
64
|
-
|
65
|
-
Capybara.default_max_wait_time = 5
|
66
|
-
Capybara.server = :webrick
|
@@ -1 +0,0 @@
|
|
1
|
-
../../../shared/features/support/paths.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
../../../shared/features/support/selectors.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
../../../shared/features/support/selenium.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
../../shared/features/shared/table_steps.feature
|
@@ -1 +0,0 @@
|
|
1
|
-
../../shared/features/shared/time_steps.feature
|
@@ -1 +0,0 @@
|
|
1
|
-
../../shared/features/shared/web_steps.feature
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
2
|
-
# It is recommended to regenerate this file in the future when you upgrade to a
|
3
|
-
# newer version of cucumber-rails. Consider adding your own code to a new file
|
4
|
-
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
5
|
-
# files.
|
6
|
-
|
7
|
-
|
8
|
-
unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
|
9
|
-
|
10
|
-
vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
|
11
|
-
$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
|
12
|
-
|
13
|
-
begin
|
14
|
-
require 'cucumber/rake/task'
|
15
|
-
|
16
|
-
namespace :cucumber do
|
17
|
-
Cucumber::Rake::Task.new({:ok => 'test:prepare'}, 'Run features that should pass') do |t|
|
18
|
-
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
|
19
|
-
t.fork = true # You may get faster startup if you set this to false
|
20
|
-
t.profile = 'default'
|
21
|
-
end
|
22
|
-
|
23
|
-
Cucumber::Rake::Task.new({:wip => 'test:prepare'}, 'Run features that are being worked on') do |t|
|
24
|
-
t.binary = vendored_cucumber_bin
|
25
|
-
t.fork = true # You may get faster startup if you set this to false
|
26
|
-
t.profile = 'wip'
|
27
|
-
end
|
28
|
-
|
29
|
-
Cucumber::Rake::Task.new({:rerun => 'test:prepare'}, 'Record failing features and run only them if any exist') do |t|
|
30
|
-
t.binary = vendored_cucumber_bin
|
31
|
-
t.fork = true # You may get faster startup if you set this to false
|
32
|
-
t.profile = 'rerun'
|
33
|
-
end
|
34
|
-
|
35
|
-
desc 'Run all features'
|
36
|
-
task :all => [:ok, :wip]
|
37
|
-
|
38
|
-
task :statsetup do
|
39
|
-
require 'rails/code_statistics'
|
40
|
-
::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
|
41
|
-
::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
|
42
|
-
end
|
43
|
-
end
|
44
|
-
desc 'Alias for cucumber:ok'
|
45
|
-
task :cucumber => 'cucumber:ok'
|
46
|
-
|
47
|
-
task :default => :cucumber
|
48
|
-
|
49
|
-
task :features => :cucumber do
|
50
|
-
STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
|
51
|
-
end
|
52
|
-
|
53
|
-
# In case we don't have the generic Rails test:prepare hook, append a no-op task that we can depend upon.
|
54
|
-
task 'test:prepare' do
|
55
|
-
end
|
56
|
-
|
57
|
-
task :stats => 'cucumber:statsetup'
|
58
|
-
rescue LoadError
|
59
|
-
desc 'cucumber rake task not available (cucumber not installed)'
|
60
|
-
task :cucumber do
|
61
|
-
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
File without changes
|
@@ -1,67 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
-
<style>
|
7
|
-
body {
|
8
|
-
background-color: #EFEFEF;
|
9
|
-
color: #2E2F30;
|
10
|
-
text-align: center;
|
11
|
-
font-family: arial, sans-serif;
|
12
|
-
margin: 0;
|
13
|
-
}
|
14
|
-
|
15
|
-
div.dialog {
|
16
|
-
width: 95%;
|
17
|
-
max-width: 33em;
|
18
|
-
margin: 4em auto 0;
|
19
|
-
}
|
20
|
-
|
21
|
-
div.dialog > div {
|
22
|
-
border: 1px solid #CCC;
|
23
|
-
border-right-color: #999;
|
24
|
-
border-left-color: #999;
|
25
|
-
border-bottom-color: #BBB;
|
26
|
-
border-top: #B00100 solid 4px;
|
27
|
-
border-top-left-radius: 9px;
|
28
|
-
border-top-right-radius: 9px;
|
29
|
-
background-color: white;
|
30
|
-
padding: 7px 12% 0;
|
31
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
-
}
|
33
|
-
|
34
|
-
h1 {
|
35
|
-
font-size: 100%;
|
36
|
-
color: #730E15;
|
37
|
-
line-height: 1.5em;
|
38
|
-
}
|
39
|
-
|
40
|
-
div.dialog > p {
|
41
|
-
margin: 0 0 1em;
|
42
|
-
padding: 1em;
|
43
|
-
background-color: #F7F7F7;
|
44
|
-
border: 1px solid #CCC;
|
45
|
-
border-right-color: #999;
|
46
|
-
border-left-color: #999;
|
47
|
-
border-bottom-color: #999;
|
48
|
-
border-bottom-left-radius: 4px;
|
49
|
-
border-bottom-right-radius: 4px;
|
50
|
-
border-top-color: #DADADA;
|
51
|
-
color: #666;
|
52
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
-
}
|
54
|
-
</style>
|
55
|
-
</head>
|
56
|
-
|
57
|
-
<body>
|
58
|
-
<!-- This file lives in public/404.html -->
|
59
|
-
<div class="dialog">
|
60
|
-
<div>
|
61
|
-
<h1>The page you were looking for doesn't exist.</h1>
|
62
|
-
<p>You may have mistyped the address or the page may have moved.</p>
|
63
|
-
</div>
|
64
|
-
<p>If you are the application owner check the logs for more information.</p>
|
65
|
-
</div>
|
66
|
-
</body>
|
67
|
-
</html>
|
@@ -1,67 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>The change you wanted was rejected (422)</title>
|
5
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
-
<style>
|
7
|
-
body {
|
8
|
-
background-color: #EFEFEF;
|
9
|
-
color: #2E2F30;
|
10
|
-
text-align: center;
|
11
|
-
font-family: arial, sans-serif;
|
12
|
-
margin: 0;
|
13
|
-
}
|
14
|
-
|
15
|
-
div.dialog {
|
16
|
-
width: 95%;
|
17
|
-
max-width: 33em;
|
18
|
-
margin: 4em auto 0;
|
19
|
-
}
|
20
|
-
|
21
|
-
div.dialog > div {
|
22
|
-
border: 1px solid #CCC;
|
23
|
-
border-right-color: #999;
|
24
|
-
border-left-color: #999;
|
25
|
-
border-bottom-color: #BBB;
|
26
|
-
border-top: #B00100 solid 4px;
|
27
|
-
border-top-left-radius: 9px;
|
28
|
-
border-top-right-radius: 9px;
|
29
|
-
background-color: white;
|
30
|
-
padding: 7px 12% 0;
|
31
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
-
}
|
33
|
-
|
34
|
-
h1 {
|
35
|
-
font-size: 100%;
|
36
|
-
color: #730E15;
|
37
|
-
line-height: 1.5em;
|
38
|
-
}
|
39
|
-
|
40
|
-
div.dialog > p {
|
41
|
-
margin: 0 0 1em;
|
42
|
-
padding: 1em;
|
43
|
-
background-color: #F7F7F7;
|
44
|
-
border: 1px solid #CCC;
|
45
|
-
border-right-color: #999;
|
46
|
-
border-left-color: #999;
|
47
|
-
border-bottom-color: #999;
|
48
|
-
border-bottom-left-radius: 4px;
|
49
|
-
border-bottom-right-radius: 4px;
|
50
|
-
border-top-color: #DADADA;
|
51
|
-
color: #666;
|
52
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
-
}
|
54
|
-
</style>
|
55
|
-
</head>
|
56
|
-
|
57
|
-
<body>
|
58
|
-
<!-- This file lives in public/422.html -->
|
59
|
-
<div class="dialog">
|
60
|
-
<div>
|
61
|
-
<h1>The change you wanted was rejected.</h1>
|
62
|
-
<p>Maybe you tried to change something you didn't have access to.</p>
|
63
|
-
</div>
|
64
|
-
<p>If you are the application owner check the logs for more information.</p>
|
65
|
-
</div>
|
66
|
-
</body>
|
67
|
-
</html>
|
@@ -1,66 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>We're sorry, but something went wrong (500)</title>
|
5
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
|
-
<style>
|
7
|
-
body {
|
8
|
-
background-color: #EFEFEF;
|
9
|
-
color: #2E2F30;
|
10
|
-
text-align: center;
|
11
|
-
font-family: arial, sans-serif;
|
12
|
-
margin: 0;
|
13
|
-
}
|
14
|
-
|
15
|
-
div.dialog {
|
16
|
-
width: 95%;
|
17
|
-
max-width: 33em;
|
18
|
-
margin: 4em auto 0;
|
19
|
-
}
|
20
|
-
|
21
|
-
div.dialog > div {
|
22
|
-
border: 1px solid #CCC;
|
23
|
-
border-right-color: #999;
|
24
|
-
border-left-color: #999;
|
25
|
-
border-bottom-color: #BBB;
|
26
|
-
border-top: #B00100 solid 4px;
|
27
|
-
border-top-left-radius: 9px;
|
28
|
-
border-top-right-radius: 9px;
|
29
|
-
background-color: white;
|
30
|
-
padding: 7px 12% 0;
|
31
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
32
|
-
}
|
33
|
-
|
34
|
-
h1 {
|
35
|
-
font-size: 100%;
|
36
|
-
color: #730E15;
|
37
|
-
line-height: 1.5em;
|
38
|
-
}
|
39
|
-
|
40
|
-
div.dialog > p {
|
41
|
-
margin: 0 0 1em;
|
42
|
-
padding: 1em;
|
43
|
-
background-color: #F7F7F7;
|
44
|
-
border: 1px solid #CCC;
|
45
|
-
border-right-color: #999;
|
46
|
-
border-left-color: #999;
|
47
|
-
border-bottom-color: #999;
|
48
|
-
border-bottom-left-radius: 4px;
|
49
|
-
border-bottom-right-radius: 4px;
|
50
|
-
border-top-color: #DADADA;
|
51
|
-
color: #666;
|
52
|
-
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
53
|
-
}
|
54
|
-
</style>
|
55
|
-
</head>
|
56
|
-
|
57
|
-
<body>
|
58
|
-
<!-- This file lives in public/500.html -->
|
59
|
-
<div class="dialog">
|
60
|
-
<div>
|
61
|
-
<h1>We're sorry, but something went wrong.</h1>
|
62
|
-
</div>
|
63
|
-
<p>If you are the application owner check the logs for more information.</p>
|
64
|
-
</div>
|
65
|
-
</body>
|
66
|
-
</html>
|
File without changes
|
@@ -1 +0,0 @@
|
|
1
|
-
../../shared/public/fixture_files/
|
@@ -1,10 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
vendored_cucumber_bin = Dir["#{File.dirname(__FILE__)}/../vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
|
4
|
-
if vendored_cucumber_bin
|
5
|
-
load File.expand_path(vendored_cucumber_bin)
|
6
|
-
else
|
7
|
-
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
8
|
-
require 'cucumber'
|
9
|
-
load Cucumber::BINARY
|
10
|
-
end
|