Sha256: 635d6998150ec808aefe2db6c963d5eea6d75c89a3ff2ae1f56252fd367196c2

Contents?: true

Size: 1.97 KB

Versions: 2

Compression:

Stored size: 1.97 KB

Contents

require 'test_helper'

class UsersLoginTest < ActionDispatch::IntegrationTest

  def setup
    @user = users(:admin)
  end

  access_tests_for :new,
                   controller: 'sessions',
                   url_helper: 'login_path',
                   allow_anon: true,
                   allow_any_user: false,
                   allow_admin: false

  test 'login with invalid information' do
    get login_path
    assert_template 'sessions/new'
    post login_path, session: { email: '', password: '' }
    assert_template 'sessions/new'
    assert_not flash.empty?
    get root_path
    assert flash.empty?
    assert_select 'a[href=?]', login_path
    assert_select 'a[href=?]', logout_path, count: 0
  end

  test 'login with valid information followed by logout' do
    get login_path
    post login_path, session: { email: @user.email, password: 'password' }
    assert is_logged_in?
    assert_redirected_to @user
    follow_redirect!
    assert_template 'users/show'
    assert_select 'a[href=?]', login_path, count: 0
    assert_select 'a[href=?]', logout_path
    assert_select 'a[href=?]', user_path(@user)
    delete logout_path
    assert_not is_logged_in?
    assert_redirected_to root_url
    # simulate clicking 'log out' a second time.
    delete logout_path
    follow_redirect!
    assert_select 'a[href=?]', login_path
    assert_select 'a[href=?]', logout_path, count: 0
    assert_select 'a[href=?]', user_path(@user), count: 0
  end

  test 'login with disabled account' do
    @user = users(:disabled)
    get login_path
    post login_path, session: { email: @user.email, password: 'password' }
    assert_template 'sessions/new'
    assert_not flash.empty?
  end

  test 'login with remembering' do
    log_in_as @user, remember_me: '1'
    assert_not_nil cookies['remember_token']
    assert_equal assigns(:user).remember_token, cookies['remember_token']
  end

  test 'login without remembering' do
    log_in_as @user, remember_me: '0'
    assert_nil cookies['remember_token']
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
barkest_core-1.5.4.0 test/integration/users_login_test.rb
barkest_core-1.5.3.0 test/integration/users_login_test.rb