diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc index c136b439..24d1864e 100644 --- a/CHANGELOG.rdoc +++ b/CHANGELOG.rdoc @@ -1,3 +1,7 @@ +* bug fix + * Fixed render_with_scope to work with all controllers + * Allow sign in with two different users in Devise::TestHelpers + == 0.7.1 * enhancements diff --git a/lib/devise/test_helpers.rb b/lib/devise/test_helpers.rb index 3ff7461c..35d318cd 100644 --- a/lib/devise/test_helpers.rb +++ b/lib/devise/test_helpers.rb @@ -78,6 +78,7 @@ module Devise # def sign_out(resource_or_scope) scope = Devise::Mapping.find_scope!(resource_or_scope) + @controller.instance_variable_set(:"@current_#{scope}", nil) warden.logout(scope) end diff --git a/test/rails_app/app/controllers/users_controller.rb b/test/rails_app/app/controllers/users_controller.rb index 7f619022..ef388463 100644 --- a/test/rails_app/app/controllers/users_controller.rb +++ b/test/rails_app/app/controllers/users_controller.rb @@ -9,4 +9,8 @@ class UsersController < ApplicationController user_session['last_request_at'] = 31.minutes.ago.utc render :text => 'User will be expired on next request' end + + def show + render :text => current_user.id.to_s + end end diff --git a/test/test_helpers_test.rb b/test/test_helpers_test.rb index a602c0bc..3ef7366a 100644 --- a/test/test_helpers_test.rb +++ b/test/test_helpers_test.rb @@ -5,14 +5,14 @@ class TestHelpersTest < ActionController::TestCase include Devise::TestHelpers test "redirects if attempting to access a page unauthenticated" do - get :index + get :show assert_redirected_to "/users/sign_in?unauthenticated=true" end test "redirects if attempting to access a page with a unconfirmed account" do swap Devise, :confirm_within => 0 do sign_in create_user - get :index + get :show assert_redirected_to "/users/sign_in?unconfirmed=true" end end @@ -22,7 +22,7 @@ class TestHelpersTest < ActionController::TestCase user.confirm! sign_in user - get :index + get :show assert_response :success end @@ -31,14 +31,31 @@ class TestHelpersTest < ActionController::TestCase user.confirm! sign_in user - get :index + get :show sign_out user - get :index + get :show assert_redirected_to "/users/sign_in?unauthenticated=true" end - def create_user - User.create!(:email => "jose.valim@plataformatec.com", :password => "123456") + test "allows to sign in with different users" do + first_user = create_user(1) + first_user.confirm! + + sign_in first_user + get :show + assert_equal first_user.id.to_s, @response.body + sign_out first_user + + second_user = create_user(2) + second_user.confirm! + + sign_in second_user + get :show + assert_equal second_user.id.to_s, @response.body + end + + def create_user(i=nil) + User.create!(:email => "jose.valim#{i}@plataformatec.com", :password => "123456") end end