2010-02-06 6 views
0

Est-il possible de se déconnecter et de se connecter à un autre utilisateur lors d'un test avec Authlogic?Authlogic: connexion deux fois sur le même test

Le cas de test suivant ne vient

class MessagesControllerTest < ActionController::TestCase 
    setup :activate_authlogic 

    should "sender send a message and recipient delete it" do 
    @sender = Factory(:user, :login => 'sender') 
    @recipient = Factory(:user, :login => 'recipient') 

    UserSession.create(@sender) 
    post :create, :user_id => @recipient.id, :message => Factory.attributes_for(:message) 
    assert_equal @sender, assigns(:current_user) 

    UserSession.create(@recipient) 
    post :destroy, :user_id => @recipient.id, :message => @message 
    assert_equal @recipient, assigns(:current_user) 
    end 
end 

Ce qui est fou est que params session de demande ... ok regarder

# UserSession.create(@sender) 
"user_credentials"=> "605a73e0f1b4dcecf5495d549b9d33eb6d3197f3a1fdb033c86bca456a0a0c75a42b63c924edb5d071f6d748aea3870f312a908eb501e6814c69abdab9bbf387", 
"user_credentials_id"=>1 


# UserSession.create(@recipient) 
"user_credentials"=> "e14363b2065b7202e766205e807d6b531e230a136c70ea13c0853c7c0f275fb95f0185b9f17a934483cadda693e50956d1bfda8c820895f574a06861479af18c", 
"flash"=>{:notice=>"Message was successfully created."}, 
"user_credentials_id"=>2 

Répondre

0

Qu'en est-session = UserSession.create(@sender) et session.destroy?

+1

échoue toujours ...: S il y a beaucoup de problèmes ici, d'abord Factory (: user) est automatiquement connecté à l'utilisateur, donc 'UserSession.create (@sender)' est inutile. La seconde est la façon dont l'authentification se fonde sur la demande, la première fonctionne mais pas la seconde. – knoopx

+0

En y jetant un second coup d'œil, cela devrait être un test d'intégration et non fonctionnel. Vous n'auriez pas ce problème dans un test d'intégration si vous simulez tout le processus de connexion/déconnexion en tant que demandes. Un test élémentaire fonctionnel ne doit contenir qu'une seule requête imo. – Leventix

Questions connexes