Commit 86fab629de57001c9b80c1fb9ee9c83d3072395b
1 parent
ef2f9593
Exists in
staging
and in
41 other branches
users: fix typo and test User.current
Showing
2 changed files
with
18 additions
and
10 deletions
Show diff stats
lib/authenticated_system.rb
| @@ -2,17 +2,21 @@ module AuthenticatedSystem | @@ -2,17 +2,21 @@ module AuthenticatedSystem | ||
| 2 | 2 | ||
| 3 | protected | 3 | protected |
| 4 | 4 | ||
| 5 | - # See impl. from http://stackoverflow.com/a/2513456/670229 | ||
| 6 | - def self.included? base | ||
| 7 | - base.around_filter do | 5 | + def self.included base |
| 6 | + # See impl. from http://stackoverflow.com/a/2513456/670229 | ||
| 7 | + base.around_filter do |&block| | ||
| 8 | begin | 8 | begin |
| 9 | User.current = current_user | 9 | User.current = current_user |
| 10 | - yield | 10 | + block.call |
| 11 | ensure | 11 | ensure |
| 12 | # to address the thread variable leak issues in Puma/Thin webserver | 12 | # to address the thread variable leak issues in Puma/Thin webserver |
| 13 | User.current = nil | 13 | User.current = nil |
| 14 | end | 14 | end |
| 15 | end | 15 | end |
| 16 | + | ||
| 17 | + # Inclusion hook to make #current_user and #logged_in? | ||
| 18 | + # available as ActionView helper methods. | ||
| 19 | + base.send :helper_method, :current_user, :logged_in? | ||
| 16 | end | 20 | end |
| 17 | 21 | ||
| 18 | # Returns true or false if the user is logged in. | 22 | # Returns true or false if the user is logged in. |
| @@ -134,12 +138,6 @@ module AuthenticatedSystem | @@ -134,12 +138,6 @@ module AuthenticatedSystem | ||
| 134 | end | 138 | end |
| 135 | end | 139 | end |
| 136 | 140 | ||
| 137 | - # Inclusion hook to make #current_user and #logged_in? | ||
| 138 | - # available as ActionView helper methods. | ||
| 139 | - def self.included(base) | ||
| 140 | - base.send :helper_method, :current_user, :logged_in? | ||
| 141 | - end | ||
| 142 | - | ||
| 143 | # When called with before_filter :login_from_cookie will check for an :auth_token | 141 | # When called with before_filter :login_from_cookie will check for an :auth_token |
| 144 | # cookie and log the user back in if apropriate | 142 | # cookie and log the user back in if apropriate |
| 145 | def login_from_cookie | 143 | def login_from_cookie |
test/functional/application_controller_test.rb
| @@ -191,6 +191,16 @@ class ApplicationControllerTest < ActionController::TestCase | @@ -191,6 +191,16 @@ class ApplicationControllerTest < ActionController::TestCase | ||
| 191 | assert_tag :tag => 'option', :attributes => { :value => 'it' }, :content => 'Italiano' | 191 | assert_tag :tag => 'option', :attributes => { :value => 'it' }, :content => 'Italiano' |
| 192 | end | 192 | end |
| 193 | 193 | ||
| 194 | + should 'set and unset the current user' do | ||
| 195 | + testuser = create_user 'testuser' | ||
| 196 | + login_as 'testuser' | ||
| 197 | + User.expects(:current=).with do |user| | ||
| 198 | + user == testuser | ||
| 199 | + end.at_least_once | ||
| 200 | + User.expects(:current=).with(nil).at_least_once | ||
| 201 | + get :index | ||
| 202 | + end | ||
| 203 | + | ||
| 194 | should 'display link to webmail if enabled for system' do | 204 | should 'display link to webmail if enabled for system' do |
| 195 | @controller.stubs(:get_layout).returns('application') | 205 | @controller.stubs(:get_layout).returns('application') |
| 196 | login_as('ze') | 206 | login_as('ze') |