Guest User

Untitled

a guest
Jul 21st, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.36 KB | None | 0 0
  1. class ApplicationController < ActionController::Base
  2. helper_method :current_user_session, :current_user
  3.  
  4. before_filter :login_required
  5.  
  6. private
  7.  
  8. def login_required
  9. unless current_user
  10. store_location
  11. flash[:notice] = "Please login."
  12. redirect_to login_path
  13. end
  14. end
  15.  
  16. def store_location
  17. session[:return_to] = request.request_uri
  18. end
  19.  
  20. def redirect_back_or_default(default=root_url)
  21. redirect_to(session[:return_to] || default)
  22. session[:return_to] = nil
  23. end
  24.  
  25. def current_user_session
  26. return @current_user_session if defined?(@current_user_session)
  27. @current_user_session = UserSession.find
  28. end
  29.  
  30. def current_user
  31. return @current_user if defined?(@current_user)
  32. @current_user = current_user_session && current_user_session.user
  33. end
  34.  
  35. end
  36.  
  37.  
  38.  
  39. ### users_controller_spec.rb ###
  40.  
  41. require 'spec_helper'
  42.  
  43. describe UsersController do
  44.  
  45. describe "when not authenticated" do
  46.  
  47. describe "GET index" do
  48. it "should redirect to login" do
  49. get :index
  50. response.should redirect_to("/login")
  51. end
  52. end
  53.  
  54. describe "GET show" do
  55. it "should redirect to login" do
  56. get :show
  57. response.should redirect_to("/login")
  58. end
  59. end
  60.  
  61. describe "GET new" do
  62. it "should redirect to login" do
  63. get :new
  64. response.should redirect_to("/login")
  65. end
  66. end
  67.  
  68. describe "GET edit" do
  69. it "should redirect to login" do
  70. get :edit, :id => "37"
  71. response.should redirect_to("/login")
  72. end
  73. end
  74.  
  75. describe "POST create" do
  76. it "should redirect to login" do
  77. post :create
  78. response.should redirect_to("/login")
  79. end
  80. end
  81.  
  82. describe "PUT update" do
  83. it "should redirect to login" do
  84. put :update, :id => "37"
  85. response.should redirect_to("/login")
  86. end
  87. end
  88.  
  89. describe "DELETE destroy" do
  90. it "should redirect to login" do
  91. delete :destroy, :id => "37"
  92. response.should redirect_to("/login")
  93. end
  94. end
  95.  
  96. end
  97.  
  98. describe "when authenticated" do
  99.  
  100. before(:each) do
  101. activate_authlogic
  102. UserSession.create Factory.build(:valid_user)
  103. end
  104.  
  105. def mock_user(stubs={})
  106. @mock_user ||= mock_model(User, stubs)
  107. end
  108.  
  109. describe "GET index" do
  110. it "assigns all users as @users" do
  111. User.stub!(:find).with(:all).and_return([mock_user])
  112. get :index
  113. assigns[:users].should == [mock_user]
  114. end
  115. end
  116.  
  117. describe "GET show" do
  118. it "assigns the requested user as @user" do
  119. User.stub!(:find).with("37").and_return(mock_user)
  120. get :show, :id => "37"
  121. assigns[:user].should equal(mock_user)
  122. end
  123. end
  124.  
  125. describe "GET new" do
  126. it "assigns a new user as @user" do
  127. User.stub!(:new).and_return(mock_user)
  128. get :new
  129. assigns[:user].should equal(mock_user)
  130. end
  131. end
  132.  
  133. describe "GET edit" do
  134. it "assigns the requested user as @user" do
  135. User.stub!(:find).with("37").and_return(mock_user)
  136. get :edit, :id => "37"
  137. assigns[:user].should equal(mock_user)
  138. end
  139. end
  140.  
  141. describe "POST create" do
  142.  
  143. describe "with valid params" do
  144. it "assigns a newly created user as @user" do
  145. User.stub!(:new).with({'these' => 'params'}).and_return(mock_user(:save => true))
  146. post :create, :user => {:these => 'params'}
  147. assigns[:user].should equal(mock_user)
  148. end
  149.  
  150. it "redirects to the created user" do
  151. User.stub!(:new).and_return(mock_user(:save => true))
  152. post :create, :user => {}
  153. response.should redirect_to(user_url(mock_user))
  154. end
  155. end
  156.  
  157. describe "with invalid params" do
  158. it "assigns a newly created but unsaved user as @user" do
  159. User.stub!(:new).with({'these' => 'params'}).and_return(mock_user(:save => false))
  160. post :create, :user => {:these => 'params'}
  161. assigns[:user].should equal(mock_user)
  162. end
  163.  
  164. it "re-renders the 'new' template" do
  165. User.stub!(:new).and_return(mock_user(:save => false))
  166. post :create, :user => {}
  167. response.should render_template('new')
  168. end
  169. end
  170.  
  171. end
  172.  
  173. describe "PUT update" do
  174.  
  175. describe "with valid params" do
  176. it "updates the requested user" do
  177. User.should_receive(:find).with("37").and_return(mock_user)
  178. mock_user.should_receive(:update_attributes).with({'these' => 'params'})
  179. put :update, :id => "37", :user => {:these => 'params'}
  180. end
  181.  
  182. it "assigns the requested user as @user" do
  183. User.stub!(:find).and_return(mock_user(:update_attributes => true))
  184. put :update, :id => "1"
  185. assigns[:user].should equal(mock_user)
  186. end
  187.  
  188. it "redirects to the user" do
  189. User.stub!(:find).and_return(mock_user(:update_attributes => true))
  190. put :update, :id => "1"
  191. response.should redirect_to(user_url(mock_user))
  192. end
  193. end
  194.  
  195. describe "with invalid params" do
  196. it "updates the requested user" do
  197. User.should_receive(:find).with("37").and_return(mock_user)
  198. mock_user.should_receive(:update_attributes).with({'these' => 'params'})
  199. put :update, :id => "37", :user => {:these => 'params'}
  200. end
  201.  
  202. it "assigns the user as @user" do
  203. User.stub!(:find).and_return(mock_user(:update_attributes => false))
  204. put :update, :id => "1"
  205. assigns[:user].should equal(mock_user)
  206. end
  207.  
  208. it "re-renders the 'edit' template" do
  209. User.stub!(:find).and_return(mock_user(:update_attributes => false))
  210. put :update, :id => "1"
  211. response.should render_template('edit')
  212. end
  213. end
  214.  
  215. end
  216.  
  217. describe "DELETE destroy" do
  218. it "destroys the requested user" do
  219. User.should_receive(:find).with("37").and_return(mock_user)
  220. mock_user.should_receive(:destroy)
  221. delete :destroy, :id => "37"
  222. end
  223.  
  224. it "redirects to the users list" do
  225. User.stub!(:find).and_return(mock_user(:destroy => true))
  226. delete :destroy, :id => "1"
  227. response.should redirect_to(users_url)
  228. end
  229. end
  230. end
  231.  
  232. end
Add Comment
Please, Sign In to add comment