Guest User

Untitled

a guest
May 5th, 2018
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. ## my session controller
  2. class SessionsController < ApplicationController
  3. def new
  4. @title ='Login'
  5. end
  6.  
  7. def create
  8. @user =User.authenticate(params[:screen_name], params[:password])
  9. unless @user.nil?
  10. log_out! if logged_in?
  11. log_in! @user
  12. flash[:notice] = "Welcome #{@user.screen_name}!"
  13. redirect_back
  14. else
  15. flash.now[:notice] = "Wrong username/password"
  16. render :action => "new"
  17. end
  18. end
  19. def destroy
  20. log_out!
  21. flash[:notice] = "Successfully logged out."
  22. redirect_to :controller =>"page"
  23. end
  24. private
  25. #this logs out the current user
  26. def log_out!
  27. session[:user_id]= nil
  28. reset_session
  29. end
  30.  
  31. #this logs in the user passed in as a parameter
  32. def log_in!(user)
  33. session[:user_id]= user.id
  34. end
  35. end
  36. ##my session user test
  37. require 'test_helper'
  38.  
  39. class SessionsControllerTest < ActionController::TestCase
  40. def test_get_new
  41. get :new
  42. assert_response :success
  43. assert_equal assigns(:title), "Login"
  44. assert_template "new"
  45. end
  46. def test_valid_login
  47. post :create, :screen_name =>"Sylvester",:password =>"valid_password"
  48. assert_redirected_to :controller => "users", :action =>"show"
  49. assert_equal session[:user_id], users(:Sylvester).id
  50. assert_not_nil users(:Sylvester).id
  51. assert_equal "Welcome #{users(:Sylvester).screen_name}!", flash[:notice]
  52. end
  53. def test_invalid_login
  54. post :create, :screen_name =>"Sylvester",:password =>"wrong password"
  55. assert_response :success
  56. assert_template "new"
  57. assert_equal "Wrong username/password", flash[:notice]
  58. end
  59. def test_destroy
  60. delete :destroy
  61. assert_nil session[:user_id]
  62. assert_redirected_to :controller => "page"
  63. assert_equal "Successfully logged out.", flash[:notice]
  64. end
  65. end
  66. ## my new integration test
  67. require 'test_helper'
  68.  
  69. class NavigationTest < ActionController::IntegrationTest
  70.  
  71.  
  72. def test_friendly_redirection_login
  73.  
  74. get "users/1/edit"
  75. assert_redirected_to({:controller => "sessions", :action => "new"})
  76. follow_redirect!
  77. post "sessions/create",{:screen_name => "Sylvester", :password => "valid_password"}
  78. assert_redirected_to( {:controller => "users", :action => "edit"})
  79. end
  80. def test_friendly_redirection_register
  81. get "users/1/edit"
  82. assert_redirected_to({:controller => "sessions", :action => "new"})
  83. get "users/new"
  84. assert_response :success
  85. post "users/create", {:user =>{:screen_name => "Charles",:email => "Charles@Mail.com",:password => "password",:password_confirmation => "password"}}
  86. assert_redirected_to({:controller => "users",:action => "edit"})
  87. end
  88. def register_logout_login
  89. get "users/new"
  90. assert_template "new"
  91. post "users/create", {:user => {:screen_name => "Charles",:email => "Charles@Mail.com",:password => "password",:password_confirmation => "password"}}
  92. assert_redirected_to :controller => "users",:action => "show"
  93. delete "sessions/destroy"
  94. assert_redirected_to :controller => "page",:action => "index"
  95. get "sessions/new"
  96. post "sessions/create", {:screen_name => "Charles",:password => "password"}
  97. assert_redirected_to :controller => "users",:action => "show"
  98. assert_template "show"
  99. end
  100. end
Add Comment
Please, Sign In to add comment