require 'test_helper'

class SessionsControllerTest < ActionController::TestCase
  def test_with_user_should_redirect
    post :create, :name => users(:one).name, :password => users(:one).password
    assert_response :redirect
    assert_redirected_to users_path
  end

  def test_without_user_should_require_login
    post :create
    assert_template 'new'
    assert_select 'tr', :count => 3
  end

  def test_login_should_fail
    post :create, :login => nil, :password => nil
    assert_template 'new'
    assert_nil session[:user_id]
  end

  def test_should_logout_and_clear_session
    post :create, :name => users(:one).name, :password => users(:one).password
    assert_not_nil session[:user_id]
    delete :destroy
    assert_response :success
    assert_template 'destroy'
    assert_select 'h2', 'Logout successful'
    assert_nil assigns(:current_user)
  end
end
