Guest User

Untitled

a guest
Apr 19th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. class ActionController::TestCase
  2. # setup :mock_warden
  3. teardown :cleanup_warden_env
  4.  
  5. def warden
  6. @_warden ||= mock
  7. end
  8.  
  9. def mock_warden_for(*scopes)
  10. scopes.each do |scope|
  11. warden.stubs(:authenticate!).with(:scope => scope) # before_filter :authenticate_user!
  12. end
  13.  
  14. @controller.request.env['warden'] = warden
  15. end
  16.  
  17. def mock_warden
  18. mock_warden_for :user
  19. end
  20.  
  21. def sign_in_as(people)
  22. mock_warden_for *people.keys
  23.  
  24. people.each_pair do |scope, object|
  25. warden.stubs(:user).with(scope).returns(object) # current_user
  26. warden.stubs(:authenticated?).with(scope).returns(!object.nil?) # user_signed_in?
  27. end
  28. end
  29.  
  30. def sign_in
  31. sign_in_as :user => Factory(:user)
  32. end
  33.  
  34. private
  35. def cleanup_warden_env
  36. @controller.request.env.delete('warden')
  37. end
  38. end
Add Comment
Please, Sign In to add comment