11require "test_helper"
22
3- class UsersLogin < ActionDispatch ::IntegrationTest
3+ class UsersLoginTest < ActionDispatch ::IntegrationTest
44 def setup
55 @user = users ( :michael )
66 end
77end
88
9- class InvalidPasswordTest < UsersLogin
9+ class InvalidPasswordTest < UsersLoginTest
1010 test "login path" do
1111 get login_path
1212 assert_template "sessions/new"
@@ -22,7 +22,7 @@ class InvalidPasswordTest < UsersLogin
2222 end
2323end
2424
25- class ValidLogin < UsersLogin
25+ class ValidLogin < UsersLoginTest
2626 def setup
2727 super
2828 post login_path , params : { session : { email : @user . email ,
@@ -64,4 +64,45 @@ class LogoutTest < Logout
6464 count : 0
6565 assert_select "a[href=?]" , user_path ( @user ) , count : 0
6666 end
67+
68+ test "login with valid information followed by logout" do
69+ post login_path , params : { session : { email : @user . email ,
70+ password : "password" } }
71+ assert is_logged_in?
72+ assert_redirected_to @user
73+ follow_redirect!
74+ assert_template "users/show"
75+ assert_select "a[href=?]" , login_path , count : 0
76+ assert_select "a[href=?]" , logout_path
77+ assert_select "a[href=?]" , user_path ( @user )
78+ delete logout_path
79+ assert_response :see_other
80+ assert_not is_logged_in?
81+ assert_redirected_to root_url
82+ # Simulate a user clicking logout in a second window.
83+ delete logout_path
84+ follow_redirect!
85+ assert_select "a[href=?]" , login_path
86+ assert_select "a[href=?]" , logout_path ,
87+ count : 0
88+ assert_select "a[href=?]" , user_path ( @user ) , count : 0
89+ end
90+ test "should still work after logout in second window" do
91+ delete logout_path
92+ assert_redirected_to root_url
93+ end
94+ end
95+
96+ class RememberingTest < UsersLoginTest
97+ test "login with remembering" do
98+ log_in_as ( @user , remember_me : "1" )
99+ assert_not cookies [ :remember_token ] . blank?
100+ end
101+ test "login without remembering" do
102+ # Log in to set the cookie.
103+ log_in_as ( @user , remember_me : "1" )
104+ # Log in again and verify that the cookie is deleted.
105+ log_in_as ( @user , remember_me : "0" )
106+ assert cookies [ :remember_token ] . blank?
107+ end
67108end
0 commit comments