users_login_test.rb 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. require 'test_helper'
  2. class UsersLoginTest < ActionDispatch::IntegrationTest
  3. def setup
  4. @user = users(:daniel)
  5. end
  6. test "login with invalid information" do
  7. get login_path
  8. assert_template 'sessions/new'
  9. post login_path, params: { session: { login: "", password: "" } }
  10. assert_template 'sessions/new'
  11. assert_not flash.empty?
  12. get root_path
  13. assert flash.empty?
  14. end
  15. test "login with valid information followed by logout" do
  16. get login_path
  17. post login_path, params: { session: { login: @user.login,
  18. password: 'password' } }
  19. assert is_logged_in?
  20. assert_redirected_to home_url
  21. follow_redirect!
  22. assert_template 'static_pages/home'
  23. assert_select "a[href=?]", login_path, count: 0
  24. assert_select "a[href=?]", logout_path
  25. assert_select "a[href=?]", user_path(@user)
  26. delete logout_path
  27. assert_not is_logged_in?
  28. assert_redirected_to login_url
  29. # Simulate a user clicking logout in a second window.
  30. delete logout_path
  31. assert_redirected_to login_path
  32. end
  33. test "login with remembering" do
  34. log_in_as(@user, remember_me: '1')
  35. assert_equal cookies['remember_token'], assigns(:user).remember_token
  36. end
  37. test "login without remembering" do
  38. # Log in to set the cookie.
  39. log_in_as(@user, remember_me: '1')
  40. # Log in again and verify that the cookie is deleted.
  41. log_in_as(@user, remember_me: '0')
  42. assert_empty cookies['remember_token']
  43. end
  44. end