test/integration/auth_controller_test.rb in opro-0.0.1.pre1.0.2 vs test/integration/auth_controller_test.rb in opro-0.0.1

- old
+ new

@@ -1,23 +1,37 @@ require 'test_helper' class AuthControllerTest < ActiveSupport::IntegrationCase + setup do + @app = create_client_app + @user = create_user + @redirect_uri = '/' + end + test 'auth entry point should not be accessable to logged OUT users' do - visit oauth_new_path + visit oauth_new_path(:client_id => @app.client_id, :redirect_uri => '/') assert_equal '/users/sign_in', current_path end - test 'auth entry point is accessable to logged IN users' do - app = create_client_app - user = create_user - redirect_uri = '/' + test 'auth entry point is accessible to logged IN users' do - as_user(user).visit oauth_new_path(:client_id => app.client_id, :redirect_uri => redirect_uri) + as_user(@user).visit oauth_new_path(:client_id => @app.client_id, :redirect_uri => @redirect_uri) assert_equal '/oauth/new', current_path click_button 'oauthAuthorize' - assert_equal '/', current_path - assert Oauth::AccessGrant.where(:user_id => user.id, :application_id => app.id).present? + access_grant = Oauth::AccessGrant.where(:user_id => @user.id, :application_id => @app.id).first + assert_equal @redirect_uri, current_path + assert access_grant.present? + assert access_grant.can?(:write) # write access is checked by default + end + + test 'user can remove permissions' do + as_user(@user).visit oauth_new_path(:client_id => @app.client_id, :redirect_uri => @redirect_uri) + + uncheck('permissions_write') # uncheck write access + click_button 'oauthAuthorize' + access_grant = Oauth::AccessGrant.where(:user_id => @user.id, :application_id => @app.id).first + refute access_grant.can?(:write) end end