From 3e0a1a47c0eafb7f9b79e5f2765ea33ce1ad159b Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 24 Oct 2012 20:35:52 +0200 Subject: basic admin controller methods and helpers + tests --- users/test/support/auth_test_helper.rb | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 users/test/support/auth_test_helper.rb (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb new file mode 100644 index 0000000..c30421f --- /dev/null +++ b/users/test/support/auth_test_helper.rb @@ -0,0 +1,7 @@ +module AuthTestHelper + + def assert_access_denied + assert_equal({:alert => "Not authorized"}, flash.to_hash) + assert_redirected_to login_path + end +end -- cgit v1.2.3 From b724d53b36878c96d30676c22ee4e4369dcc37f8 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 24 Oct 2012 20:41:30 +0200 Subject: Extraction of test support methods --- users/test/support/auth_test_helper.rb | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index c30421f..d5d52b1 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -1,7 +1,25 @@ module AuthTestHelper - def assert_access_denied - assert_equal({:alert => "Not authorized"}, flash.to_hash) - assert_redirected_to login_path + def stub_logged_in + @user_id = stub + @user = stub + session[:user_id] = @user_id + User.expects(:find).once.with(@user_id).returns(@user) + return @user + end + + def stub_logged_out + @user_id = stub + session[:user_id] = @user_id + User.expects(:find).once.with(@user_id).returns(nil) + end + + def assert_access_denied(denied = true) + if denied + assert_equal({:alert => "Not authorized"}, flash.to_hash) + assert_redirected_to login_path + else + assert flash[:alert].blank? + end end end -- cgit v1.2.3 From 5c6395d8b1a8c7cf540dae9fdd37f3e68554215c Mon Sep 17 00:00:00 2001 From: Azul Date: Sun, 4 Nov 2012 16:24:35 +0100 Subject: fixing tests, including support files from all engines --- users/test/support/auth_test_helper.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index d5d52b1..9412058 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -23,3 +23,7 @@ module AuthTestHelper end end end + +class ActionController::TestCase + include AuthTestHelper +end -- cgit v1.2.3 From e1fc3f4850ee73e0591bd67a92b104db4f63e4cb Mon Sep 17 00:00:00 2001 From: Azul Date: Sun, 4 Nov 2012 21:01:27 +0100 Subject: stubbing current_user the warden way --- users/test/support/auth_test_helper.rb | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index 9412058..f211597 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -1,17 +1,18 @@ module AuthTestHelper + extend ActiveSupport::Concern - def stub_logged_in - @user_id = stub - @user = stub - session[:user_id] = @user_id - User.expects(:find).once.with(@user_id).returns(@user) - return @user + # Controller will fetch current user from warden. + # Make it pick up our current_user + included do + setup do + request.env['warden'] ||= stub :user => nil + end end - def stub_logged_out - @user_id = stub - session[:user_id] = @user_id - User.expects(:find).once.with(@user_id).returns(nil) + def login(user = nil) + @current_user = user || stub + request.env['warden'] = stub :user => @current_user + return @current_user end def assert_access_denied(denied = true) -- cgit v1.2.3 From 46c0140a8eab632c783d309a7afd87cb7aad4280 Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 23 Nov 2012 10:55:49 +0100 Subject: refactored creation of record stubs --- users/test/support/auth_test_helper.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index f211597..0b73f5f 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -11,6 +11,9 @@ module AuthTestHelper def login(user = nil) @current_user = user || stub + unless @current_user.respond_to? :is_admin? + @current_user.stubs(:is_admin?).returns(false) + end request.env['warden'] = stub :user => @current_user return @current_user end -- cgit v1.2.3 From 277b9f98bfbe2ef0217dfd17c8d9d6597369b903 Mon Sep 17 00:00:00 2001 From: Azul Date: Wed, 28 Nov 2012 15:13:47 +0100 Subject: admins can destroy users I changed the permissions a little to be more consistent. Now: * admins can edit users * users can destroy themselves. There's no ui for either of them but theoretically they could. Not sure this is what we want though. --- users/test/support/auth_test_helper.rb | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index 0b73f5f..e0b673a 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -1,4 +1,5 @@ module AuthTestHelper + include StubRecordHelper extend ActiveSupport::Concern # Controller will fetch current user from warden. @@ -9,8 +10,8 @@ module AuthTestHelper end end - def login(user = nil) - @current_user = user || stub + def login(user_or_method_hash = nil) + @current_user = stub_user(user_or_method_hash) unless @current_user.respond_to? :is_admin? @current_user.stubs(:is_admin?).returns(false) end @@ -26,6 +27,20 @@ module AuthTestHelper assert flash[:alert].blank? end end + + protected + + # Will create a stub user for logging in from either + # * a hash of methods to stub + # * a user record + # * nil -> create a user record stub + def stub_user(user_or_method_hash) + if user_or_method_hash.is_a?(Hash) + stub_record User, user_or_method_hash + else + user_or_method_hash || stub_record(User) + end + end end class ActionController::TestCase -- cgit v1.2.3 From 1b411de39f38eb0925cf255e941545933f227759 Mon Sep 17 00:00:00 2001 From: Azul Date: Mon, 3 Dec 2012 14:02:16 +0100 Subject: refactored tests with new find_record helper find_record User will return a stubbed user record and make sure User.find_by_id(user.id) returns the same so it can be used in controllers. --- users/test/support/auth_test_helper.rb | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'users/test/support/auth_test_helper.rb') diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb index e0b673a..f3506ae 100644 --- a/users/test/support/auth_test_helper.rb +++ b/users/test/support/auth_test_helper.rb @@ -10,8 +10,8 @@ module AuthTestHelper end end - def login(user_or_method_hash = nil) - @current_user = stub_user(user_or_method_hash) + def login(user_or_method_hash = {}) + @current_user = stub_record(User, user_or_method_hash) unless @current_user.respond_to? :is_admin? @current_user.stubs(:is_admin?).returns(false) end @@ -28,19 +28,6 @@ module AuthTestHelper end end - protected - - # Will create a stub user for logging in from either - # * a hash of methods to stub - # * a user record - # * nil -> create a user record stub - def stub_user(user_or_method_hash) - if user_or_method_hash.is_a?(Hash) - stub_record User, user_or_method_hash - else - user_or_method_hash || stub_record(User) - end - end end class ActionController::TestCase -- cgit v1.2.3