Guest User

Untitled

a guest
Jun 18th, 2018
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. module Spec
  2. module Support
  3. module UserSession
  4. def self.included(base)
  5. base.extend(InstanceMethods)
  6. end
  7.  
  8. def unstub_login
  9. begin
  10. controller.unstub!(:current_session)
  11. rescue Spec::Mocks::MockExpectationError
  12. # ignore
  13. end
  14. end
  15.  
  16. def login(user = Factory.stub(:admin))
  17. user = Factory.stub(user) if user.is_a? Symbol
  18. session = Factory.stub(:user_session,
  19. :login => user.login,
  20. :password => user.password)
  21.  
  22. unstub_login
  23. controller.stub!(:current_session).and_return(session)
  24. session.stub!(:record).and_return(user)
  25. session.stub!(:user).and_return(user)
  26. end
  27.  
  28. def logout
  29. unstub_login
  30. controller.stub!(:current_session)
  31. end
  32.  
  33. module InstanceMethods
  34. def login_before(user = :admin, scope = :each)
  35. before(scope) do
  36. Authlogic::Session::Base.controller = controller
  37. login(user)
  38. end
  39. end
  40.  
  41. def logout_before(scope = :each)
  42. before(scope) do
  43. Authlogic::Session::Base.controller = controller
  44. logout
  45. end
  46. end
  47. end
  48. end
  49. end
  50. end
  51.  
  52. Spec::Rails::Example::ControllerExampleGroup.send(:include, Spec::Support::UserSession)
  53.  
  54. Spec::Runner.configure do |config|
  55. config.before(:each) do
  56. User.maintain_sessions = false
  57. if respond_to?(:controller)
  58. Authlogic::Session::Base.controller = controller
  59. else
  60. Authlogic::Session::Base.controller =
  61. Authlogic::ControllerAdapters::RailsAdapter.new(ApplicationController.new)
  62. end
  63. end
  64. end
Add Comment
Please, Sign In to add comment