|
31 | 31 | expect(cookies.signed['remember_me_token']).to eq assigns[:current_user].remember_me_token
|
32 | 32 | end
|
33 | 33 |
|
| 34 | + it 'sets cookie on remember_me! with custom cookie name' do |
| 35 | + sorcery_controller_property_set(:remember_me_cookie_name, :custom) |
| 36 | + |
| 37 | + expect(User).to receive(:authenticate).with('[email protected]', 'secret') { |& block| block.call(user, nil) } |
| 38 | + expect(user).to receive(:remember_me!) |
| 39 | + |
| 40 | + post :test_login_with_remember, params: { email: '[email protected]', password: 'secret' } |
| 41 | + |
| 42 | + expect(cookies.signed['custom']).to eq assigns[:current_user].remember_me_token |
| 43 | + |
| 44 | + # Reset property back to default so it won't interfere with other tests. |
| 45 | + sorcery_controller_property_set(:remember_me_cookie_name, :remember_me_token) |
| 46 | + end |
| 47 | + |
34 | 48 | it 'clears cookie on forget_me!' do
|
35 | 49 | cookies['remember_me_token'] = { value: 'asd54234dsfsd43534', expires: 3600 }
|
36 | 50 | get :test_logout
|
|
58 | 72 | expect(cookies.signed['remember_me_token']).to eq assigns[:user].remember_me_token
|
59 | 73 | end
|
60 | 74 |
|
| 75 | + it 'login(email,password,remember_me) logs user in and remembers with custom cookie name' do |
| 76 | + sorcery_controller_property_set(:remember_me_cookie_name, :custom) |
| 77 | + |
| 78 | + expect(User).to receive(:authenticate).with('[email protected]', 'secret', '1') { |& block| block.call(user, nil) } |
| 79 | + expect(user).to receive(:remember_me!) |
| 80 | + expect(user).to receive(:remember_me_token).and_return('abracadabra').twice |
| 81 | + |
| 82 | + post :test_login_with_remember_in_login, params: { email: '[email protected]', password: 'secret', remember: '1' } |
| 83 | + |
| 84 | + expect(cookies.signed['custom']).not_to be_nil |
| 85 | + expect(cookies.signed['custom']).to eq assigns[:user].remember_me_token |
| 86 | + |
| 87 | + # Reset property back to default so it won't interfere with other tests. |
| 88 | + sorcery_controller_property_set(:remember_me_cookie_name, :remember_me_token) |
| 89 | + end |
| 90 | + |
61 | 91 | it 'logout also calls forget_me!' do
|
62 | 92 | session[:user_id] = user.id.to_s
|
63 | 93 | expect(User.sorcery_adapter).to receive(:find_by_id).with(user.id.to_s).and_return(user)
|
|
68 | 98 | expect(cookies['remember_me_token']).to be_nil
|
69 | 99 | end
|
70 | 100 |
|
| 101 | + it 'logout also calls forget_me! with custom cookie name' do |
| 102 | + sorcery_controller_property_set(:remember_me_cookie_name, 'custom') |
| 103 | + |
| 104 | + session[:user_id] = user.id.to_s |
| 105 | + expect(User.sorcery_adapter).to receive(:find_by_id).with(user.id.to_s).and_return(user) |
| 106 | + expect(user).to receive(:remember_me!) |
| 107 | + expect(user).to receive(:forget_me!) |
| 108 | + get :test_logout_with_remember |
| 109 | + |
| 110 | + expect(cookies['custom']).to be_nil |
| 111 | + |
| 112 | + # Reset property back to default so it won't interfere with other tests. |
| 113 | + sorcery_controller_property_set(:remember_me_cookie_name, :remember_me_token) |
| 114 | + end |
| 115 | + |
71 | 116 | it 'logs user in from cookie' do
|
72 | 117 | session[:user_id] = user.id.to_s
|
73 | 118 | expect(User.sorcery_adapter).to receive(:find_by_id).with(user.id.to_s).and_return(user)
|
|
90 | 135 | expect(assigns[:current_user]).to eq user
|
91 | 136 | end
|
92 | 137 |
|
| 138 | + it 'logs user in from cookie with custom cookie name' do |
| 139 | + sorcery_controller_property_set(:remember_me_cookie_name, :custom) |
| 140 | + |
| 141 | + session[:user_id] = user.id.to_s |
| 142 | + expect(User.sorcery_adapter).to receive(:find_by_id).with(user.id.to_s).and_return(user) |
| 143 | + expect(user).to receive(:remember_me!) |
| 144 | + expect(user).to receive(:remember_me_token).and_return('token') |
| 145 | + expect(user).to receive(:has_remember_me_token?) { true } |
| 146 | + |
| 147 | + subject.remember_me! |
| 148 | + subject.instance_eval do |
| 149 | + remove_instance_variable :@current_user |
| 150 | + end |
| 151 | + session[:user_id] = nil |
| 152 | + |
| 153 | + expect(User.sorcery_adapter).to receive(:find_by_remember_me_token).with('token').and_return(user) |
| 154 | + |
| 155 | + expect(subject).to receive(:after_remember_me!).with(user) |
| 156 | + |
| 157 | + get :test_login_from_cookie |
| 158 | + |
| 159 | + expect(assigns[:current_user]).to eq user |
| 160 | + |
| 161 | + # Reset property back to default so it won't interfere with other tests. |
| 162 | + sorcery_controller_property_set(:remember_me_cookie_name, :remember_me_token) |
| 163 | + end |
| 164 | + |
93 | 165 | it 'doest not remember_me! when not asked to, even if third parameter is used' do
|
94 | 166 | post :test_login_with_remember_in_login, params: { email: '[email protected]', password: 'secret', remember: '0' }
|
95 | 167 |
|
|
0 commit comments