test sessions controller

This commit is contained in:
Zachary Chai 2017-03-03 10:30:29 -05:00
parent eaaec47fe6
commit bfd815abe0
4 changed files with 50 additions and 5 deletions

View File

@ -48,10 +48,6 @@ class LandingController < ApplicationController
render layout: false render layout: false
end end
def auth_failure
redirect_to '/'
end
def admin? def admin?
@user && @user == current_user @user && @user == current_user
end end

View File

@ -34,4 +34,8 @@ class SessionsController < ApplicationController
end end
redirect_to root_path redirect_to root_path
end end
def auth_failure
redirect_to '/'
end
end end

View File

@ -23,7 +23,7 @@ Rails.application.routes.draw do
get '/users/logout', to: 'sessions#destroy', as: :user_logout get '/users/logout', to: 'sessions#destroy', as: :user_logout
match '/auth/:provider/callback', to: 'sessions#create', via: [:get, :post] match '/auth/:provider/callback', to: 'sessions#create', via: [:get, :post]
get '/auth/failure', to: 'landing#auth_failure' get '/auth/failure', to: 'sessions#auth_failure'
# There are two resources [meetings|rooms] # There are two resources [meetings|rooms]
# meetings offer a landing page for NON authenticated users to create and join session in BigBlueButton # meetings offer a landing page for NON authenticated users to create and join session in BigBlueButton

View File

@ -0,0 +1,45 @@
require 'test_helper'
class SessionsControllerTest < ActionController::TestCase
setup do
@user = users :user1
end
test "should get new" do
get :new
assert_response :success
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