Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## my session controller
- class SessionsController < ApplicationController
- def new
- @title ='Login'
- end
- def create
- @user =User.authenticate(params[:screen_name], params[:password])
- unless @user.nil?
- log_out! if logged_in?
- log_in! @user
- flash[:notice] = "Welcome #{@user.screen_name}!"
- redirect_back
- else
- flash.now[:notice] = "Wrong username/password"
- render :action => "new"
- end
- end
- def destroy
- log_out!
- flash[:notice] = "Successfully logged out."
- redirect_to :controller =>"page"
- end
- private
- #this logs out the current user
- def log_out!
- session[:user_id]= nil
- reset_session
- end
- #this logs in the user passed in as a parameter
- def log_in!(user)
- session[:user_id]= user.id
- end
- end
- ##my session user test
- require 'test_helper'
- class SessionsControllerTest < ActionController::TestCase
- def test_get_new
- get :new
- assert_response :success
- assert_equal assigns(:title), "Login"
- assert_template "new"
- end
- def test_valid_login
- post :create, :screen_name =>"Sylvester",:password =>"valid_password"
- assert_redirected_to :controller => "users", :action =>"show"
- assert_equal session[:user_id], users(:Sylvester).id
- assert_not_nil users(:Sylvester).id
- assert_equal "Welcome #{users(:Sylvester).screen_name}!", flash[:notice]
- end
- def test_invalid_login
- post :create, :screen_name =>"Sylvester",:password =>"wrong password"
- assert_response :success
- assert_template "new"
- assert_equal "Wrong username/password", flash[:notice]
- end
- def test_destroy
- delete :destroy
- assert_nil session[:user_id]
- assert_redirected_to :controller => "page"
- assert_equal "Successfully logged out.", flash[:notice]
- end
- end
- ## my new integration test
- require 'test_helper'
- class NavigationTest < ActionController::IntegrationTest
- def test_friendly_redirection_login
- get "users/1/edit"
- assert_redirected_to({:controller => "sessions", :action => "new"})
- follow_redirect!
- post "sessions/create",{:screen_name => "Sylvester", :password => "valid_password"}
- assert_redirected_to( {:controller => "users", :action => "edit"})
- end
- def test_friendly_redirection_register
- get "users/1/edit"
- assert_redirected_to({:controller => "sessions", :action => "new"})
- get "users/new"
- assert_response :success
- post "users/create", {:user =>{:screen_name => "Charles",:email => "Charles@Mail.com",:password => "password",:password_confirmation => "password"}}
- assert_redirected_to({:controller => "users",:action => "edit"})
- end
- def register_logout_login
- get "users/new"
- assert_template "new"
- post "users/create", {:user => {:screen_name => "Charles",:email => "Charles@Mail.com",:password => "password",:password_confirmation => "password"}}
- assert_redirected_to :controller => "users",:action => "show"
- delete "sessions/destroy"
- assert_redirected_to :controller => "page",:action => "index"
- get "sessions/new"
- post "sessions/create", {:screen_name => "Charles",:password => "password"}
- assert_redirected_to :controller => "users",:action => "show"
- assert_template "show"
- end
- end
Add Comment
Please, Sign In to add comment