cucumber-rails 1.6.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Appraisals +18 -88
- data/CHANGELOG.md +208 -14
- data/CONTRIBUTING.md +27 -24
- data/Gemfile +2 -4
- data/LICENSE +1 -1
- data/README.md +45 -31
- data/Rakefile +17 -13
- data/bin/install_geckodriver.sh +19 -0
- data/bin/install_webpacker.sh +9 -0
- data/config/cucumber.yml +0 -3
- data/cucumber-rails.gemspec +40 -33
- data/dev_tasks/cucumber.rake +2 -0
- data/dev_tasks/rspec.rake +2 -0
- data/dev_tasks/yard.rake +7 -14
- data/dev_tasks/yard/default/layout/html/setup.rb +6 -1
- data/features/allow_rescue.feature +16 -11
- data/features/annotations.feature +8 -11
- data/features/capybara_javascript_drivers.feature +90 -31
- data/features/choose_javascript_database_strategy.feature +36 -56
- data/features/configuration.feature +48 -0
- data/features/database_cleaner.feature +103 -16
- data/features/disable_automatic_database_cleaning.feature +10 -16
- data/features/emulate_javascript.feature +59 -44
- data/features/install_cucumber_rails.feature +4 -4
- data/features/no_database.feature +6 -6
- data/features/raising_errors.feature +9 -3
- data/features/rerun_profile.feature +5 -4
- data/features/rest_api.feature +11 -11
- data/features/step_definitions/cucumber_rails_steps.rb +43 -100
- data/features/support/aruba.rb +3 -1
- data/features/support/cucumber_rails_helper.rb +86 -0
- data/features/support/env.rb +4 -38
- data/features/support/hooks.rb +8 -0
- data/gemfiles/rails_5_0.gemfile +4 -12
- data/gemfiles/rails_5_1.gemfile +3 -10
- data/gemfiles/rails_5_2.gemfile +2 -10
- data/gemfiles/rails_6_0.gemfile +8 -0
- data/lib/cucumber/rails.rb +23 -17
- data/lib/cucumber/rails/action_dispatch.rb +21 -0
- data/lib/cucumber/rails/application.rb +16 -7
- data/lib/cucumber/rails/capybara.rb +2 -0
- data/lib/cucumber/rails/capybara/javascript_emulation.rb +43 -35
- data/lib/cucumber/rails/capybara/select_dates_and_times.rb +3 -1
- data/lib/cucumber/rails/database.rb +24 -56
- data/lib/cucumber/rails/database/deletion_strategy.rb +11 -0
- data/lib/cucumber/rails/database/shared_connection_strategy.rb +25 -0
- data/lib/cucumber/rails/database/strategy.rb +31 -0
- data/lib/cucumber/rails/database/truncation_strategy.rb +11 -0
- data/lib/cucumber/rails/hooks.rb +2 -0
- data/lib/cucumber/rails/hooks/active_record.rb +8 -4
- data/lib/cucumber/rails/hooks/allow_rescue.rb +2 -0
- data/lib/cucumber/rails/hooks/database_cleaner.rb +11 -3
- data/lib/cucumber/rails/hooks/mail.rb +3 -1
- data/lib/cucumber/rails/rspec.rb +3 -1
- data/lib/cucumber/rails/world.rb +24 -7
- data/lib/generators/cucumber/{install/USAGE → USAGE} +0 -0
- data/lib/generators/cucumber/{install/install_generator.rb → install_generator.rb} +23 -10
- data/lib/generators/cucumber/{install/templates → templates}/config/cucumber.yml.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/script/cucumber +1 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/_rails_each_run.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/_rails_prefork.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/capybara.rb +2 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/edit_warning.txt +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/rails.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/support/rails_spork.rb.erb +0 -0
- data/lib/generators/cucumber/{install/templates → templates}/tasks/cucumber.rake.erb +0 -0
- data/spec/cucumber/rails/database_spec.rb +50 -33
- data/spec/examples.txt +19 -0
- data/spec/generators/cucumber/{install/install_generator_spec.rb → install_generator_spec.rb} +16 -8
- data/spec/spec_helper.rb +4 -2
- data/tmp/aruba/test_app/Gemfile +62 -0
- data/tmp/aruba/test_app/Gemfile.lock +249 -0
- data/tmp/aruba/test_app/README.md +24 -0
- data/tmp/aruba/test_app/Rakefile +6 -0
- data/tmp/aruba/test_app/app/assets/config/manifest.js +3 -0
- data/tmp/aruba/test_app/app/assets/javascripts/application.js +16 -0
- data/tmp/aruba/test_app/app/assets/javascripts/appointments.coffee +3 -0
- data/tmp/aruba/test_app/app/assets/javascripts/cable.js +13 -0
- data/tmp/aruba/test_app/app/assets/stylesheets/application.css +15 -0
- data/tmp/aruba/test_app/app/assets/stylesheets/appointments.scss +3 -0
- data/tmp/aruba/test_app/app/assets/stylesheets/scaffolds.scss +84 -0
- data/tmp/aruba/test_app/app/channels/application_cable/channel.rb +4 -0
- data/tmp/aruba/test_app/app/channels/application_cable/connection.rb +4 -0
- data/tmp/aruba/test_app/app/controllers/application_controller.rb +2 -0
- data/tmp/aruba/test_app/app/controllers/appointments_controller.rb +74 -0
- data/tmp/aruba/test_app/app/helpers/application_helper.rb +2 -0
- data/tmp/aruba/test_app/app/helpers/appointments_helper.rb +2 -0
- data/tmp/aruba/test_app/app/jobs/application_job.rb +2 -0
- data/tmp/aruba/test_app/app/mailers/application_mailer.rb +4 -0
- data/tmp/aruba/test_app/app/models/application_record.rb +3 -0
- data/tmp/aruba/test_app/app/models/appointment.rb +2 -0
- data/tmp/aruba/test_app/app/views/appointments/_appointment.json.jbuilder +2 -0
- data/tmp/aruba/test_app/app/views/appointments/_form.html.erb +27 -0
- data/tmp/aruba/test_app/app/views/appointments/edit.html.erb +6 -0
- data/tmp/aruba/test_app/app/views/appointments/index.html.erb +29 -0
- data/tmp/aruba/test_app/app/views/appointments/index.json.jbuilder +1 -0
- data/tmp/aruba/test_app/app/views/appointments/new.html.erb +5 -0
- data/tmp/aruba/test_app/app/views/appointments/show.html.erb +14 -0
- data/tmp/aruba/test_app/app/views/appointments/show.json.jbuilder +1 -0
- data/tmp/aruba/test_app/app/views/layouts/application.html.erb +15 -0
- data/tmp/aruba/test_app/app/views/layouts/mailer.html.erb +13 -0
- data/tmp/aruba/test_app/app/views/layouts/mailer.text.erb +1 -0
- data/tmp/aruba/test_app/bin/bundle +3 -0
- data/tmp/aruba/test_app/bin/rails +4 -0
- data/tmp/aruba/test_app/bin/rake +4 -0
- data/tmp/aruba/test_app/bin/setup +36 -0
- data/tmp/aruba/test_app/bin/update +31 -0
- data/tmp/aruba/test_app/bin/yarn +11 -0
- data/tmp/aruba/test_app/config.ru +5 -0
- data/tmp/aruba/test_app/config/application.rb +19 -0
- data/tmp/aruba/test_app/config/boot.rb +3 -0
- data/tmp/aruba/test_app/config/cable.yml +10 -0
- data/tmp/aruba/test_app/config/credentials.yml.enc +1 -0
- data/tmp/aruba/test_app/config/cucumber.yml +9 -0
- data/tmp/aruba/test_app/config/database.yml +25 -0
- data/tmp/aruba/test_app/config/environment.rb +5 -0
- data/tmp/aruba/test_app/config/environments/development.rb +61 -0
- data/tmp/aruba/test_app/config/environments/production.rb +94 -0
- data/tmp/aruba/test_app/config/environments/test.rb +46 -0
- data/tmp/aruba/test_app/config/initializers/application_controller_renderer.rb +8 -0
- data/tmp/aruba/test_app/config/initializers/assets.rb +14 -0
- data/tmp/aruba/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/tmp/aruba/test_app/config/initializers/content_security_policy.rb +25 -0
- data/tmp/aruba/test_app/config/initializers/cookies_serializer.rb +5 -0
- data/tmp/aruba/test_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/tmp/aruba/test_app/config/initializers/inflections.rb +16 -0
- data/tmp/aruba/test_app/config/initializers/mime_types.rb +4 -0
- data/tmp/aruba/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/tmp/aruba/test_app/config/locales/en.yml +33 -0
- data/tmp/aruba/test_app/config/master.key +1 -0
- data/tmp/aruba/test_app/config/puma.rb +37 -0
- data/tmp/aruba/test_app/config/routes.rb +4 -0
- data/tmp/aruba/test_app/config/storage.yml +34 -0
- data/tmp/aruba/test_app/db/development.sqlite3 +0 -0
- data/tmp/aruba/test_app/db/migrate/20200821080656_create_appointments.rb +10 -0
- data/tmp/aruba/test_app/db/schema.rb +22 -0
- data/tmp/aruba/test_app/db/seeds.rb +7 -0
- data/tmp/aruba/test_app/db/test.sqlite3 +0 -0
- data/tmp/aruba/test_app/features/create_appointment.feature +9 -0
- data/tmp/aruba/test_app/features/create_appointment_steps.rb +19 -0
- data/tmp/aruba/test_app/features/support/env.rb +18 -0
- data/tmp/aruba/test_app/lib/tasks/cucumber.rake +76 -0
- data/tmp/aruba/test_app/log/development.log +27 -0
- data/tmp/aruba/test_app/log/test.log +38 -0
- data/tmp/aruba/test_app/package.json +5 -0
- data/tmp/aruba/test_app/public/404.html +67 -0
- data/tmp/aruba/test_app/public/422.html +67 -0
- data/tmp/aruba/test_app/public/500.html +66 -0
- data/tmp/aruba/test_app/public/apple-touch-icon-precomposed.png +0 -0
- data/tmp/aruba/test_app/public/apple-touch-icon.png +0 -0
- data/tmp/aruba/test_app/public/favicon.ico +0 -0
- data/tmp/aruba/test_app/public/robots.txt +1 -0
- data/tmp/aruba/test_app/script/cucumber +11 -0
- data/tmp/aruba/test_app/test/application_system_test_case.rb +5 -0
- data/tmp/aruba/test_app/test/controllers/appointments_controller_test.rb +48 -0
- data/tmp/aruba/test_app/test/fixtures/appointments.yml +9 -0
- data/tmp/aruba/test_app/test/models/appointment_test.rb +7 -0
- data/tmp/aruba/test_app/test/system/appointments_test.rb +45 -0
- data/tmp/aruba/test_app/test/test_helper.rb +10 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0I/0I0oT83oN3NKiEi9XIhexiT3XgkA8mKyCbs25v3l20g.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/0W/0WnFNEwHN4bhDiFTvyMWURx02L4yP3gkP7vtjzKQFVo.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2B/2Bg65dpvTdePrXa_wG6RsHpQzbqVSiHK0FVa0WdOJ4k.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/2r/2r_85kVmIcWzvJH72GapWtLDhaMP2HEziNxykyYpAUg.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/72/72jdZDzrM3-D_zYkIiPdAWQNeaFsqah154_QvcqWqTQ.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/99/99m8UCKl4j8IpsVOK8ltLHyNh8Ae0nHw3GBkC34V_co.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/9O/9OOXnKHBQnaCeE5HDe5csQsItouzWM6rTl8sESvkGTE.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AF/AFloQwm_M7GZudPY87xx4TA0xEeuX9Psl0SJ94i5EyU.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/AP/APDAc8aUg_16wNWrVhCJcKeqbxyOScYGVhiDVgbrV7U.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/B4/B43LeT9Wba4fLvXw-C_kKq-x9HwYZxnBBiltbIufzzQ.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/EO/EOut5kyDPr7aKrHdvDsNJuYarA8XGnpAlDvBimlaC08.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/GJ/GJzxuc2i_d4Uhxs4IMnbQXhxBc9CTLrnQyzxwTqKOBw.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ge/Ge2oyaUStbQszLfXjgTi6LkncyS5SKfV8RJwbRA3HbI.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/HC/HCDOUd7-S45aJ_PjVAC_Vmjyud3i1aQv4cE3t9_Z3Dw.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Hv/HvPd_vK17QbhWq8QnCuyhqm0cPaGnHyO9lSzN-icQdg.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/II/IIhUO-5-DcfCyD_rVJeHjRMNVJxLmAmXP8i2XEjFpns.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Ka/KaLHRsUYc4EUxUr4q_UhArFJUTF_EaBklpeU4TsE9SY.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/MZ/MZcwDENEs93Wd9q7A_7UWdfJrWsBXa0pGp03P9mqG2I.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Nw/NwHea3ImBECnlmojPb9X9ZDfvRRuX_dX9sxISdtp9-A.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/PP/PPKuKT7m2PMDHVzBcYjePvXU6CbCW63Iqe3Q2a-Jdh8.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/RE/REtgGrS74n4Y7OKRcGvZsA2EUClg_RM66mVgGpySI20.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Rk/RkQLRXSz5LhJQnH7BT-ZDkVK0Rx8N9KhcVwR2A1HY4M.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Sx/SxtNEQ-KKVBCTtsDD-xf4oJEIdBPIHkGktnLXvG-GRk.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/TL/TLxLzqEAxKzTHH9EwSg5Lvcp3zgGuhjTjed121DSu9U.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U1/U1D7nCXYBD3VlPnXGs_6mRtlhs-Gvv_vvCUYlTf4Grw.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/U6/U6pXyI-5haNcHRdsB-SoztzlXb98-256hFReXsL31J4.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UE/UEKUaC9O_XBO5acP8HnxcJ1dtNM_1C7MTofkTQvPgRA.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/UV/UVcnI5bo-eQvULfmzeQUFVTDYEMF2cbAXpsOsh01XNY.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/WK/WK8RpMP5qb9GRQTsTHAzlfo8t2nsTLU6B8CQAc4UfOU.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Xk/Xk8p9O39-syzKbpnoMRChld0TpoZFWlNIzeT5XKw2fQ.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/Zv/ZvCEW2ZyS-k4cHH7Gd8P2nKFE9Uh1VOrfR-1PYY2yz8.cache +5 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ac/acWu1-1ZAW1jRVKlHYlzlEg28lk-SdHfTq-P-viJMS0.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/b3/b3NiYrQOlN2zxiJYqbl4gmvK6it3Md9gSzAYgsIMhnY.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/c1/c1Pm-rFPEB3LXIjOtswD6x8SEAgI9y2BR16jc8ifcsc.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/em/emTQG2a9zF8NuvElLOnEpNJp0wq3_gVSDAM60vyXAzE.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/fX/fXH3Db_88TmJFhRydoFTx8tZbHAkLzK2ZZ0lsBEg8xA.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/gI/gIHntmCf7DbObPL_KZJYSgduAmqX18ZZPOtq85pn8vo.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kP/kPwbLAUCLjv0x6fe5lvZpmUkgmvQSDHSdEOSdbMyDgY.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/kT/kT98Z_slHI6SgdEmoAtKAHyJQjTHdbe6GAbB27RP2uI.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mt/mtT4Rwi7H_vHQXdxxPvvzhL4ziA7X9WK-JXzacxWlEA.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/mz/mzgD6X_N-fO95dP8Q1Q1sApCrbSmgPgsuEKv65KYcdo.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/oi/oiPhXw8pYdWv5T4qRFzePHaXZLI50xMvvTyfry-ILSo.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/r-/r--YB1ugrZ4F-ogbLLYNwIH3j9pQ2u_ZBjTJxoS7TrM.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/s6/s68UIyg0lNko7IA42JXv_wwy9Ea3WH-zc9h0GYPg88Y.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/si/siT97rfEKbIWcCj6KUBChX7kpRBKI2fAeGGwpsz0tTU.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/st/stqDgDfAemfEq7ZxlEj6YThpn8_1Nfw2bRVA0N03YTw.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/t9/t93lpjyly3MvgKs51_OlLXneJXGyYFGmshXsk4Wr69M.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tE/tEy2QePsDnmFyyAQEric23sSBnfHBst3SEM7p-J7el8.cache +2 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tR/tRV7SyAY9c71G0o-8bElvNI76KcWhc5NVm48xflMPpM.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/tg/tggwa2O6A41xeZTK4SR0qcX0X55aOGg6q8ZWfqma1vM.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uB/uBKOYcdzL_6Amevsu-uKAMTg7QGW5kgC0t5sAZINrcI.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/uE/uEyPXY2m04nerJV0pn3p-B-BlkJ08oufpQH1G2QXPw4.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/up/upyndqsU9bU6WV8qyMy7MLpcQoybRqgj-qA3C3pjzXY.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/ux/uxx-W2TOCdnAEGX0ZLThb_QIEbLYutX8qCwD0glYCKE.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vC/vCsc-q2WmT8vWM2d2pb6_5hFav8mGlylwEKVWQvsumo.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vc/vcgiILg1wO98x-a4kX678ASAFWA1cL0iVx07VkHLPqA.cache +0 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/vu/vu6xNIGT6zorPmcKfd7edgxBltTmIRXU281uyK51kkU.cache +1 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/w4/w4y_Lms54hD2Nivh5PHeccAmh2DX53sc_HDTQYNyNXw.cache +3 -0
- data/tmp/aruba/test_app/tmp/cache/assets/sprockets/v3.0/yZ/yZpoD5Zf4RAQoOwi5kMVksuta_0KhYSK_Yy_6Ykyt7E.cache +1 -0
- data/tmp/aruba/test_app/tmp/development_secret.txt +1 -0
- metadata +262 -158
- data/.github/ISSUE_TEMPLATE.md +0 -52
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -42
- data/.gitignore +0 -12
- data/.rspec +0 -1
- data/.travis.yml +0 -43
- data/Gemfile.appraisal +0 -3
- data/config/.gitignore +0 -1
- data/features/support/bundler_pre_support.rb +0 -28
- data/features/support/fixtures/bundler-1.0.21.gem +0 -0
- data/features/support/fixtures/bundler-1.1.rc.gem +0 -0
- data/features/support/legacy_web_steps_support.rb +0 -289
- data/gemfiles/rails_4_0.gemfile +0 -22
- data/gemfiles/rails_4_1.gemfile +0 -20
- data/gemfiles/rails_4_2.gemfile +0 -19
- data/lib/cucumber/rails/action_controller.rb +0 -12
data/.github/ISSUE_TEMPLATE.md
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
<!-- NAMING YOUR ISSUE: Please prefix your issue with the name of the sub-project -->
|
2
|
-
<!-- e.g. `event-protocol: Schemas out of date` -->
|
3
|
-
<!-- This makes it easier to get some context when reading the names of issues -->
|
4
|
-
|
5
|
-
<!-- These sections are meant as guidance for you, to help you give the kind of information we'll need to help with your issue. If a section doesn't seem to fit, just skip it.
|
6
|
-
|
7
|
-
In general: Please provide as much information as you can to help us solving your problem -->
|
8
|
-
|
9
|
-
## Summary
|
10
|
-
|
11
|
-
<!--- Provide a general summary description of the issue -->
|
12
|
-
|
13
|
-
## Expected Behavior
|
14
|
-
|
15
|
-
<!--- If you're describing a bug, tell us what should happen -->
|
16
|
-
<!--- If you're suggesting a change/improvement, tell us how it should work -->
|
17
|
-
<!--- Feel free to use Given / Then / Then if that helps, but please add some plain-language context too -->
|
18
|
-
|
19
|
-
## Current Behavior
|
20
|
-
|
21
|
-
<!--- If describing a bug, tell us what happens instead of the expected behavior -->
|
22
|
-
<!--- If suggesting a change/improvement, explain the difference from current behavior -->
|
23
|
-
|
24
|
-
<!--- If you have got some output place it in the code block below. Otherwise remove it. -->
|
25
|
-
~~~
|
26
|
-
~~~
|
27
|
-
|
28
|
-
## Possible Solution
|
29
|
-
|
30
|
-
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
|
31
|
-
<!--- or ideas how to implement the addition or change -->
|
32
|
-
|
33
|
-
## Steps to Reproduce (for bugs)
|
34
|
-
|
35
|
-
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
|
36
|
-
<!--- reproduce this bug. Include code to reproduce, if relevant -->
|
37
|
-
1.
|
38
|
-
2.
|
39
|
-
3.
|
40
|
-
4.
|
41
|
-
|
42
|
-
## Context & Motivation
|
43
|
-
|
44
|
-
<!--- How has this issue affected you? What are you trying to accomplish? -->
|
45
|
-
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
|
46
|
-
|
47
|
-
## Your Environment
|
48
|
-
|
49
|
-
<!--- If you're reporting a bug, include as many relevant details about the environment you experienced the bug in -->
|
50
|
-
* Version used:
|
51
|
-
* Operating System and version:
|
52
|
-
* Link to your project:
|
@@ -1,42 +0,0 @@
|
|
1
|
-
<!-- NAMING YOUR PULL REQUEST: Please choose a concise, descriptive name for your pull request. -->
|
2
|
-
<!-- This makes it easier to get some context when reading the names of issues -->
|
3
|
-
|
4
|
-
<!-- These sections are meant as guidance for you. If something doesn't fit, you can just skip it. -->
|
5
|
-
|
6
|
-
## Summary
|
7
|
-
|
8
|
-
<!--- Provide a general summary description of your changes -->
|
9
|
-
|
10
|
-
## Details
|
11
|
-
|
12
|
-
<!--- Describe your changes in detail -->
|
13
|
-
|
14
|
-
## Motivation and Context
|
15
|
-
|
16
|
-
<!--- Why is this change required? What problem does it solve? -->
|
17
|
-
<!--- If it fixes an open issue, please link to the issue here. -->
|
18
|
-
|
19
|
-
## How Has This Been Tested?
|
20
|
-
|
21
|
-
<!--- Please add tests for changes to the code, otherwise we probably won't merge it -->
|
22
|
-
|
23
|
-
<!--- Please describe in detail how you tested your changes. -->
|
24
|
-
<!--- Include details of your testing environment, tests ran to see how -->
|
25
|
-
<!--- your change affects other areas of the code, etc. -->
|
26
|
-
|
27
|
-
## Screenshots (if appropriate):
|
28
|
-
|
29
|
-
## Types of changes
|
30
|
-
|
31
|
-
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
|
32
|
-
- [ ] Bug fix (non-breaking change which fixes an issue).
|
33
|
-
- [ ] New feature (non-breaking change which adds functionality).
|
34
|
-
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
|
35
|
-
|
36
|
-
## Checklist:
|
37
|
-
|
38
|
-
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
|
39
|
-
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
|
40
|
-
- [ ] I've added tests for my code.
|
41
|
-
- [ ] My change requires a change to the documentation.
|
42
|
-
- [ ] I have updated the documentation accordingly.
|
data/.gitignore
DELETED
data/.rspec
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--format progress --colour
|
data/.travis.yml
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
rvm:
|
2
|
-
- 2.2.9
|
3
|
-
- 2.3.7
|
4
|
-
- 2.4.4
|
5
|
-
- 2.5.1
|
6
|
-
- ruby-head
|
7
|
-
|
8
|
-
addons:
|
9
|
-
firefox: latest
|
10
|
-
|
11
|
-
# whitelist
|
12
|
-
branches:
|
13
|
-
only:
|
14
|
-
- master
|
15
|
-
|
16
|
-
gemfile:
|
17
|
-
- gemfiles/rails_5_2.gemfile
|
18
|
-
- gemfiles/rails_5_1.gemfile
|
19
|
-
- gemfiles/rails_5_0.gemfile
|
20
|
-
- gemfiles/rails_4_2.gemfile
|
21
|
-
- gemfiles/rails_4_1.gemfile
|
22
|
-
- gemfiles/rails_4_0.gemfile
|
23
|
-
|
24
|
-
matrix:
|
25
|
-
fast_finish: true
|
26
|
-
exclude:
|
27
|
-
- rvm: 2.4.4
|
28
|
-
gemfile: gemfiles/rails_4_0.gemfile
|
29
|
-
- rvm: 2.4.4
|
30
|
-
gemfile: gemfiles/rails_4_1.gemfile
|
31
|
-
- rvm: 2.5.1
|
32
|
-
gemfile: gemfiles/rails_4_0.gemfile
|
33
|
-
- rvm: 2.5.1
|
34
|
-
gemfile: gemfiles/rails_4_1.gemfile
|
35
|
-
- rvm: ruby-head
|
36
|
-
gemfile: gemfiles/rails_4_0.gemfile
|
37
|
-
- rvm: ruby-head
|
38
|
-
gemfile: gemfiles/rails_4_1.gemfile
|
39
|
-
allow_failures:
|
40
|
-
- rvm: ruby-head
|
41
|
-
|
42
|
-
before_install: gem update --remote bundler
|
43
|
-
before_script: geckodriver -V
|
data/Gemfile.appraisal
DELETED
data/config/.gitignore
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
aruba-rvm.yml
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module BundlerPreHelper
|
2
|
-
def bundler
|
3
|
-
fixture 'bundler-1.0.21.gem'
|
4
|
-
end
|
5
|
-
|
6
|
-
def bundler_pre
|
7
|
-
fixture 'bundler-1.1.rc.gem'
|
8
|
-
end
|
9
|
-
|
10
|
-
def gem_install(path)
|
11
|
-
run_simple("gem install #{path} --no-ri --no-rdoc")
|
12
|
-
end
|
13
|
-
|
14
|
-
def gem_uninstall(path)
|
15
|
-
run_simple("gem uninstall #{path}")
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
Before('@bundler-pre') do
|
20
|
-
extend(BundlerPreHelper)
|
21
|
-
gem_uninstall bundler
|
22
|
-
gem_install bundler_pre
|
23
|
-
end
|
24
|
-
|
25
|
-
After('@bundler-pre') do
|
26
|
-
gem_uninstall bundler_pre
|
27
|
-
gem_install bundler
|
28
|
-
end
|
Binary file
|
Binary file
|
@@ -1,289 +0,0 @@
|
|
1
|
-
module WebSteps
|
2
|
-
def create_web_steps
|
3
|
-
write_file('features/step_definitions/web_steps.rb', <<-EOF)
|
4
|
-
# web_steps.rb used to be in Cucumber-Rails, but was removed in 1.1.0. We're still using them in the tests because
|
5
|
-
# the tests were written while we still thought web_steps.rb was a good idea. We don't think so anymore:
|
6
|
-
#
|
7
|
-
# http://groups.google.com/group/cukes/browse_thread/thread/26f80b93c94f2952
|
8
|
-
# https://github.com/cucumber/cucumber-rails/issues/174
|
9
|
-
# http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in-user-stories.html
|
10
|
-
# http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/
|
11
|
-
# http://elabs.se/blog/15-you-re-cuking-it-wrong
|
12
|
-
#
|
13
|
-
# I'm sure someone will find this and paste it into their own projects. Go ahead. It's a bad idea.
|
14
|
-
# You have been warned.
|
15
|
-
#
|
16
|
-
# Aslak
|
17
|
-
|
18
|
-
require 'uri'
|
19
|
-
require 'cgi'
|
20
|
-
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
|
21
|
-
|
22
|
-
module WithinHelpers
|
23
|
-
def with_scope(locator)
|
24
|
-
locator ? within(*selector_for(locator)) { yield } : yield
|
25
|
-
end
|
26
|
-
end
|
27
|
-
World(WithinHelpers)
|
28
|
-
|
29
|
-
# Single-line step scoper
|
30
|
-
When /^(.*) within (.*[^:])$/ do |step, parent|
|
31
|
-
with_scope(parent) { When step }
|
32
|
-
end
|
33
|
-
|
34
|
-
# Multi-line step scoper
|
35
|
-
When /^(.*) within (.*[^:]):$/ do |step, parent, table_or_string|
|
36
|
-
with_scope(parent) { When "\#{step}:", table_or_string }
|
37
|
-
end
|
38
|
-
|
39
|
-
Given /^(?:|I )am on (.+)$/ do |page_name|
|
40
|
-
visit path_to(page_name)
|
41
|
-
end
|
42
|
-
|
43
|
-
When /^(?:|I )go to (.+)$/ do |page_name|
|
44
|
-
visit path_to(page_name)
|
45
|
-
end
|
46
|
-
|
47
|
-
When /^(?:|I )press "([^"]*)"$/ do |button|
|
48
|
-
click_button(button)
|
49
|
-
end
|
50
|
-
|
51
|
-
When /^(?:|I )follow "([^"]*)"$/ do |link|
|
52
|
-
click_link(link)
|
53
|
-
end
|
54
|
-
|
55
|
-
When /^(?:|I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
|
56
|
-
fill_in(field, with: value)
|
57
|
-
end
|
58
|
-
|
59
|
-
When /^(?:|I )fill in "([^"]*)" for "([^"]*)"$/ do |value, field|
|
60
|
-
fill_in(field, with: value)
|
61
|
-
end
|
62
|
-
|
63
|
-
# Use this to fill in an entire form with data from a table. Example:
|
64
|
-
#
|
65
|
-
# When I fill in the following:
|
66
|
-
# | Account Number | 5002 |
|
67
|
-
# | Expiry date | 2009-11-01 |
|
68
|
-
# | Note | Nice guy |
|
69
|
-
# | Wants Email? | |
|
70
|
-
#
|
71
|
-
# TODO: Add support for checkbox, select or option
|
72
|
-
# based on naming conventions.
|
73
|
-
#
|
74
|
-
When /^(?:|I )fill in the following:$/ do |fields|
|
75
|
-
fields.rows_hash.each do |name, value|
|
76
|
-
When %{I fill in "\#{name}" with "\#{value}"}
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
When /^(?:|I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
|
81
|
-
select(value, from: field)
|
82
|
-
end
|
83
|
-
|
84
|
-
When /^(?:|I )check "([^"]*)"$/ do |field|
|
85
|
-
check(field)
|
86
|
-
end
|
87
|
-
|
88
|
-
When /^(?:|I )uncheck "([^"]*)"$/ do |field|
|
89
|
-
uncheck(field)
|
90
|
-
end
|
91
|
-
|
92
|
-
When /^(?:|I )choose "([^"]*)"$/ do |field|
|
93
|
-
choose(field)
|
94
|
-
end
|
95
|
-
|
96
|
-
When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
|
97
|
-
attach_file(field, File.expand_path(path))
|
98
|
-
end
|
99
|
-
|
100
|
-
Then /^(?:|I )should see "([^"]*)"$/ do |text|
|
101
|
-
if page.respond_to? :should
|
102
|
-
page.should have_content(text)
|
103
|
-
else
|
104
|
-
assert page.has_content?(text)
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
Then /^(?:|I )should see \\/([^\\/]*)\\/$/ do |regexp|
|
109
|
-
regexp = Regexp.new(regexp)
|
110
|
-
|
111
|
-
if page.respond_to? :should
|
112
|
-
page.should have_xpath('//*', text: regexp)
|
113
|
-
else
|
114
|
-
assert page.has_xpath?('//*', text: regexp)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
Then /^(?:|I )should not see "([^"]*)"$/ do |text|
|
119
|
-
if page.respond_to? :should
|
120
|
-
page.should have_no_content(text)
|
121
|
-
else
|
122
|
-
assert page.has_no_content?(text)
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
Then /^(?:|I )should not see \\/([^\\/]*)\\/$/ do |regexp|
|
127
|
-
regexp = Regexp.new(regexp)
|
128
|
-
|
129
|
-
if page.respond_to? :should
|
130
|
-
page.should have_no_xpath('//*', text: regexp)
|
131
|
-
else
|
132
|
-
assert page.has_no_xpath?('//*', text: regexp)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
Then /^the "([^"]*)" field(?: within (.*))? should contain "([^"]*)"$/ do |field, parent, value|
|
137
|
-
with_scope(parent) do
|
138
|
-
field = find_field(field)
|
139
|
-
field_value = (field.tag_name == 'textarea') ? field.text : field.value
|
140
|
-
if field_value.respond_to? :should
|
141
|
-
field_value.should =~ /\#{value}/
|
142
|
-
else
|
143
|
-
assert_match(/\#{value}/, field_value)
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
Then /^the "([^"]*)" field(?: within (.*))? should not contain "([^"]*)"$/ do |field, parent, value|
|
149
|
-
with_scope(parent) do
|
150
|
-
field = find_field(field)
|
151
|
-
field_value = (field.tag_name == 'textarea') ? field.text : field.value
|
152
|
-
if field_value.respond_to? :should_not
|
153
|
-
field_value.should_not =~ /\#{value}/
|
154
|
-
else
|
155
|
-
assert_no_match(/\#{value}/, field_value)
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
Then /^the "([^"]*)" field should have the error "([^"]*)"$/ do |field, error_message|
|
161
|
-
element = find_field(field)
|
162
|
-
classes = element.find(:xpath, '..')[:class].split(' ')
|
163
|
-
|
164
|
-
form_for_input = element.find(:xpath, 'ancestor::form[1]')
|
165
|
-
using_formtastic = form_for_input[:class].include?('formtastic')
|
166
|
-
error_class = using_formtastic ? 'error' : 'field_with_errors'
|
167
|
-
|
168
|
-
if classes.respond_to? :should
|
169
|
-
classes.should include(error_class)
|
170
|
-
else
|
171
|
-
assert classes.include?(error_class)
|
172
|
-
end
|
173
|
-
|
174
|
-
if page.respond_to?(:should)
|
175
|
-
if using_formtastic
|
176
|
-
error_paragraph = element.find(:xpath, '../*[@class="inline-errors"][1]')
|
177
|
-
error_paragraph.should have_content(error_message)
|
178
|
-
else
|
179
|
-
page.should have_content("\#{field.titlecase} \#{error_message}")
|
180
|
-
end
|
181
|
-
else
|
182
|
-
if using_formtastic
|
183
|
-
error_paragraph = element.find(:xpath, '../*[@class="inline-errors"][1]')
|
184
|
-
assert error_paragraph.has_content?(error_message)
|
185
|
-
else
|
186
|
-
assert page.has_content?("\#{field.titlecase} \#{error_message}")
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
|
191
|
-
Then /^the "([^"]*)" field should have no error$/ do |field|
|
192
|
-
element = find_field(field)
|
193
|
-
classes = element.find(:xpath, '..')[:class].split(' ')
|
194
|
-
if classes.respond_to? :should
|
195
|
-
classes.should_not include('field_with_errors')
|
196
|
-
classes.should_not include('error')
|
197
|
-
else
|
198
|
-
assert !classes.include?('field_with_errors')
|
199
|
-
assert !classes.include?('error')
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
Then /^the "([^"]*)" checkbox(?: within (.*))? should be checked$/ do |label, parent|
|
204
|
-
with_scope(parent) do
|
205
|
-
field_checked = find_field(label)['checked']
|
206
|
-
if field_checked.respond_to? :should
|
207
|
-
field_checked.should be_true
|
208
|
-
else
|
209
|
-
assert field_checked
|
210
|
-
end
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
Then /^the "([^"]*)" checkbox(?: within (.*))? should not be checked$/ do |label, parent|
|
215
|
-
with_scope(parent) do
|
216
|
-
field_checked = find_field(label)['checked']
|
217
|
-
if field_checked.respond_to? :should
|
218
|
-
field_checked.should be_false
|
219
|
-
else
|
220
|
-
assert !field_checked
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
Then /^(?:|I )should be on (.+)$/ do |page_name|
|
226
|
-
current_path = URI.parse(current_url).path
|
227
|
-
if current_path.respond_to? :should
|
228
|
-
current_path.should == path_to(page_name)
|
229
|
-
else
|
230
|
-
assert_equal path_to(page_name), current_path
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
|
235
|
-
query = URI.parse(current_url).query
|
236
|
-
actual_params = query ? CGI.parse(query) : {}
|
237
|
-
expected_params = {}
|
238
|
-
expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
|
239
|
-
|
240
|
-
if actual_params.respond_to? :should
|
241
|
-
actual_params.should == expected_params
|
242
|
-
else
|
243
|
-
assert_equal expected_params, actual_params
|
244
|
-
end
|
245
|
-
end
|
246
|
-
|
247
|
-
Then /^show me the page$/ do
|
248
|
-
save_and_open_page
|
249
|
-
end
|
250
|
-
EOF
|
251
|
-
|
252
|
-
write_file('features/support/paths.rb', <<-EOF)
|
253
|
-
module NavigationHelpers
|
254
|
-
# Maps a name to a path. Used by the
|
255
|
-
#
|
256
|
-
# When /^I go to (.+)$/ do |page_name|
|
257
|
-
#
|
258
|
-
# step definition in web_steps.rb
|
259
|
-
#
|
260
|
-
def path_to(page_name)
|
261
|
-
case page_name
|
262
|
-
|
263
|
-
when /^the home\s?page$/
|
264
|
-
'/'
|
265
|
-
|
266
|
-
# Add more mappings here.
|
267
|
-
# Here is an example that pulls values out of the Regexp:
|
268
|
-
#
|
269
|
-
# when /^(.*)'s profile page$/i
|
270
|
-
# user_profile_path(User.find_by_login($1))
|
271
|
-
|
272
|
-
else
|
273
|
-
begin
|
274
|
-
page_name =~ /^the (.*) page$/
|
275
|
-
path_components = $1.split(/\s+/)
|
276
|
-
self.send(path_components.push('path').join('_').to_sym)
|
277
|
-
rescue NoMethodError, ArgumentError
|
278
|
-
raise "Can't find mapping from \"\#{page_name}\" to a path.\\n" +
|
279
|
-
"Now, go and add a mapping in \#{__FILE__}"
|
280
|
-
end
|
281
|
-
end
|
282
|
-
end
|
283
|
-
end
|
284
|
-
|
285
|
-
World(NavigationHelpers)
|
286
|
-
EOF
|
287
|
-
end
|
288
|
-
end
|
289
|
-
World(WebSteps)
|