Webrat, Rails and controller sessions

When I ran ‘rake spec’, it generated a spec_helper.rb with the following
line:

require ‘webrat/integrations/rspec-rails’

It seems that this file changed to webrat/rspec-rails on last webrat
gem.

But changing to “require ‘webrat/rspec-rails’” doesn’t seem to work.
What solved for me was following webrat documentation:

Webrat.configure do |config|
config.mode = :rails
end

And including “config.gem ‘webrat’” in environments/test.rb.

‘spec’ rake task should probably be updated to reflect current webrat…

Anyway, I was wondering if it is possible to get the Rails session from
the specs and resetting it, for instance.

I’ve used another approach in my tests, but I think it would be
interesting to evaluate the session state in some tests… Is it
possible?

Here is what I’m doing currently:

describe UsersController do
context ‘when accessing protected area’ do
before(:each) do
@user = User.make :password => ‘secret’
end

 it 'should authenticate with login or e-mail' do
   [@user.login, @user.email].each do |login_or_email|

session[‘user’] = nil

     visit '/'
     click_link I18n.t(:'user.login')
     fill_in 'login', :with => login_or_email
     fill_in 'password', :with => 'secret'
     click_button I18n.t(:'user.login')

     contain @user.name
     click_link I18n.t :'user.logout'

session[‘user’].should == @user.id

   end

   visit '/'
   click_link I18n.t(:'user.login')
   fill_in 'login', :with => @user.login
   fill_in 'password', :with => 'wrong'
   click_button I18n.t(:'user.login')

   assert_not_contain @user.name

session[‘user’].should be_nil

 end

end
end

Thanks,

Rodrigo.