Hello all,
I am facing a weird problem.I am just trying to login but after
entering
correct parameters it is showing error as invalid username and
password.
I think there is some configuration or fixtures problem because if i
try
to login from GUI then it is working fine(using same database)
Following are the detailed list of gems and code.
Rspec (1.3.0, 1.1.12)
Rspec-rails (1.3.2, 1.1.12)
cucumber (0.6.3)
cucumber-rails (0.3.0)
Webrat (0.5.3, 0.4.3)
config/environments/cucumber.rb
# Edit at your own peril - it's recommended to regenerate this file
# in the future when you upgrade to a newer version of Cucumber.
# IMPORTANT: Setting config.cache_classes to false is known to
# break Cucumber's use_transactional_fixtures method.
# For more information see
https://rspec.lighthouseapp.com/projects/16211/tickets/165
config.cache_classes = true
# Log error messages when you accidentally call methods on nil.
config.whiny_nils = true
# Show full error reports and disable caching
config.action_controller.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Disable request forgery protection in test environment
config.action_controller.allow_forgery_protection = false
# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test
config.gem 'cucumber-rails', :lib => false, :version => '>=0.3.0'
unless File.directory?(File.join(Rails.root,
'vendor/plugins/cucumber-rails'))
config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0'
unless File.directory?(File.join(Rails.root,
'vendor/plugins/database_cleaner'))
config.gem 'webrat', :lib => false, :version => '>=0.5.3'
unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat'))
config.gem 'rspec', :lib => false, :version => '>=1.3.0'
unless File.directory?(File.join(Rails.root, 'vendor/plugins/rspec'))
config.gem 'rspec-rails', :lib => false, :version => '>=1.3.2'
unless File.directory?(File.join(Rails.root,
'vendor/plugins/rspec-rails'))
features/support/env.rb
# 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.
ENV["RAILS_ENV"] ||= "test"
require File.expand_path(File.dirname(__FILE__) +
'/../../config/environment')
require 'cucumber/formatter/unicode' # Remove this line if you don't
want Cucumber Unicode support
require 'cucumber/rails/rspec'
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
require 'webrat'
require 'webrat/core/matchers'
Webrat.configure do |config|
config.mode = :rails
config.open_error_files = false # Set to true if you want error
pages
to pop up in the browser
end
Before do
Fixtures.reset_cache
fixtures_folder = File.join(RAILS_ROOT, 'spec', 'fixtures')
fixtures = Dir[File.join(fixtures_folder, '*.yml')].map {|f|
File.basename(f, '.yml') }
Fixtures.create_fixtures(fixtures_folder, fixtures)
end
# If you set this to false, any error raised from within your app will
bubble
# up to your step definition and out to cucumber unless you catch it
somewhere
# on the way. You can make Rails rescue errors and render error pages
on
a
# per-scenario basis by tagging a scenario or feature with the
@allow-rescue tag.
#
# If you set this to true, Rails will rescue all errors and render
error
# pages, more or less in the same way your application would behave in
the
# default production environment. It's not recommended to do this for
all
# of your scenarios, as this makes it hard to discover errors in your
application.
ActionController::Base.allow_rescue = false
# If you set this to true, each scenario will run in a database
transaction.
# You can still turn off transactions on a per-scenario basis, simply
tagging
# a feature or scenario with the @no-txn tag. If you are using
Capybara,
# tagging with @culerity or @javascript will also turn transactions
off.
#
# If you set this to false, transactions will be off for all
scenarios,
# regardless of whether you use @no-txn or not.
#
# Beware that turning transactions off will leave data in your
database
# after each scenario, which can lead to hard-to-debug failures in
# subsequent scenarios. If you do this, we recommend you create a
Before
# block that will explicitly put your database in a known state.
Cucumber::Rails::World.use_transactional_fixtures = true
# How to clean your database when transactions are turned off. See
#
http://github.com/bmabey/database_cleaner for more info.
if defined?(ActiveRecord::Base)
begin
require 'database_cleaner'
DatabaseCleaner.strategy = :truncation
rescue LoadError => ignore_if_database_cleaner_not_present
end
end
features/manage_users.feature
Given a registered user
When he clicks on login link
And after filling all the details
Then the user should be logged in
features/step_definitions/user_steps.rb
Given /^a registered user$/ do
visit '/login'
end
When /^he clicks on login link$/ do
visit '/login'
fill_in("login", :with => "test")
fill_in("password", :with => "test123")
click_button "Log in"
p current_url
p response.body
end
Then /^that user should get created$/ do
@user = User.find_by_login("test")
@user.test.should == "test"
end
This is my whole scenario.Now if i see the current url it says
'/session' which actually should be '/users' and in response.body it
says 'invalid username and password'
Also in my database list of users are already present
Please suggest
--
You received this message because you are subscribed to the Google Groups "Cukes" group.
To post to this group, send email to
cu...@googlegroups.com.
To unsubscribe from this group, send email to
cukes+un...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/cukes?hl=en.