diff options
| author | jpl | 2016-08-23 11:28:06 +0200 |
|---|---|---|
| committer | jpl | 2016-08-23 11:28:06 +0200 |
| commit | 8b3f3055ec5ee19bdaf9f334c83cfcdd01c7ed0b (patch) | |
| tree | 5f542928e52540fd2d7bead72644e11186a9f3ca /features | |
| parent | cdd593a7faddbcf61ca71eb57421478623aed897 (diff) | |
| download | chouette-core-8b3f3055ec5ee19bdaf9f334c83cfcdd01c7ed0b.tar.bz2 | |
Refs #1482: adding cucumber for tests
Diffstat (limited to 'features')
| -rw-r--r-- | features/authentification.feature | 9 | ||||
| -rw-r--r-- | features/step_definitions/.gitkeep | 0 | ||||
| -rw-r--r-- | features/step_definitions/authentification_steps.rb | 0 | ||||
| -rw-r--r-- | features/step_definitions/general_steps.rb | 10 | ||||
| -rw-r--r-- | features/step_definitions/users_steps.rb | 16 | ||||
| -rw-r--r-- | features/support/env.rb | 58 |
6 files changed, 93 insertions, 0 deletions
diff --git a/features/authentification.feature b/features/authentification.feature new file mode 100644 index 000000000..330959178 --- /dev/null +++ b/features/authentification.feature @@ -0,0 +1,9 @@ +# language: fr +Fonctionnalité: Authentification + + Contexte: Utilisateur enregistré + Etant donné un compte confirmé pour "john@stif-boiv.info" avec un nom d'utilisateur "john" + + Scénario: Un utilisateur non connecté ne doit pas pouvoir accéder à l'application + Etant donné que je suis déconnecté + # Alors je ne dois pas pouvoir visiter la page "d'accueil"
\ No newline at end of file diff --git a/features/step_definitions/.gitkeep b/features/step_definitions/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/features/step_definitions/.gitkeep diff --git a/features/step_definitions/authentification_steps.rb b/features/step_definitions/authentification_steps.rb new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/features/step_definitions/authentification_steps.rb diff --git a/features/step_definitions/general_steps.rb b/features/step_definitions/general_steps.rb new file mode 100644 index 000000000..cb3a6a69c --- /dev/null +++ b/features/step_definitions/general_steps.rb @@ -0,0 +1,10 @@ +# language: fr + +##### Alors ##### +Alors(/^je ne dois pas pouvoir visiter la page (.+)$/) do |name| + case name + when "d'accueil" + visit root_path + end + expect(page.status_code).to eq(403) +end
\ No newline at end of file diff --git a/features/step_definitions/users_steps.rb b/features/step_definitions/users_steps.rb new file mode 100644 index 000000000..b84ec1fa5 --- /dev/null +++ b/features/step_definitions/users_steps.rb @@ -0,0 +1,16 @@ +# language: fr + +##### Utility methods ##### +def create_user email, password, username + Fabricate.build(:user, email: email, username: username, password: password).save +end + +##### Etant donné ##### +Etantdonné(/^un compte confirmé pour "([^\"]+)"(?: avec un nom d'utilisateur "(.+)")?$/) do |email, username| + username ||= email.split("@").first + create_user email, 'password', username +end + +Etantdonnéque(/^je suis déconnecté$/) do + # visit destroy_user_session_path +end
\ No newline at end of file diff --git a/features/support/env.rb b/features/support/env.rb new file mode 100644 index 000000000..64ddf6108 --- /dev/null +++ b/features/support/env.rb @@ -0,0 +1,58 @@ +# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril. +# It is recommended to regenerate this file in the future when you upgrade to a +# newer version of cucumber-rails. Consider adding your own code to a new file +# instead of editing this one. Cucumber will automatically load all features/**/*.rb +# files. + +require 'cucumber/rails' + +# Capybara defaults to CSS3 selectors rather than XPath. +# If you'd prefer to use XPath, just uncomment this line and adjust any +# selectors in your step definitions to use the XPath syntax. +# Capybara.default_selector = :xpath + +# By default, any exception happening in your Rails application will bubble up +# to Cucumber so that your scenario will fail. This is a different from how +# your application behaves in the production environment, where an error page will +# be rendered instead. +# +# Sometimes we want to override this default behaviour and allow Rails to rescue +# exceptions and display an error page (just like when the app is running in production). +# Typical scenarios where you want to do this is when you test your error pages. +# There are two ways to allow Rails to rescue exceptions: +# +# 1) Tag your scenario (or feature) with @allow-rescue +# +# 2) Set the value below to true. Beware that doing this globally is not +# recommended as it will mask a lot of errors for you! +# +ActionController::Base.allow_rescue = false + +# Remove/comment out the lines below if your app doesn't have a database. +# For some databases (like MongoDB and CouchDB) you may need to use :truncation instead. +begin + DatabaseCleaner.strategy = :transaction +rescue NameError + raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it." +end + +# You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios. +# See the DatabaseCleaner documentation for details. Example: +# +# Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do +# # { :except => [:widgets] } may not do what you expect here +# # as Cucumber::Rails::Database.javascript_strategy overrides +# # this setting. +# DatabaseCleaner.strategy = :truncation +# end +# +# Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do +# DatabaseCleaner.strategy = :transaction +# end +# + +# Possible values are :truncation and :transaction +# The :transaction strategy is faster, but might give you threading problems. +# See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature +Cucumber::Rails::Database.javascript_strategy = :truncation + |
