greenlight/test/controllers/sessions_controller_test.rb

51 lines
1.2 KiB
Ruby

require 'test_helper'
class SessionsControllerTest < ActionController::TestCase
setup do
@user = users :user1
end
test "should get new" do
get :new
# We redirect directly to LDAP if configured.
if ENV['LDAP_SERVER'].present?
assert_response :redirect
else
assert_response :success
end
end
test "should redirect to home on auth failture" do
get "auth_failure"
assert_redirected_to root_path
end
test "should not create session without omniauth env set" do
post :create, params: {provider: 'google'}
assert_redirected_to root_path
end
test "should create session and user" do
provider = 'google'
email = 'new_user@email.com'
request.env['omniauth.auth'] = {'uid' => 'uid', 'provider' => provider,
'info' => {'name' => 'name', 'email' => email}}
post :create, params: {provider: provider}
new_user = User.find_by email: email
assert_not_nil new_user
assert_redirected_to meeting_room_path(id: new_user.encrypted_id, resource: 'rooms')
assert_equal new_user.id, session[:user_id]
end
test "should destroy current session" do
session[:user_id] = @user.id
get :destroy
assert_redirected_to root_path
assert_nil session[:user_id]
end
end