137 lines
4.5 KiB
Ruby
137 lines
4.5 KiB
Ruby
require 'spec_helper'
|
|
require 'ruby-debug'
|
|
|
|
|
|
describe AppAuth do
|
|
|
|
before do
|
|
User.all.destroy
|
|
UserRole.all.destroy
|
|
AppAuth.all.destroy
|
|
ModuleApp.all.destroy
|
|
|
|
#Create some fixtures of Main Role
|
|
main_role_key = ["Stud","Teacher","Staff"]
|
|
@new_main_role_list = main_role_key.each do |role|
|
|
new_role = UserRole.new :key => role
|
|
|
|
new_role.save
|
|
end
|
|
#Create some users of User
|
|
user_emails = ["a_good_stud","a_bad_stud","a_teacher","a_staff"]
|
|
user_emails.each do |user_email|
|
|
email=user_email+"@rulingcom.com"
|
|
new_user = User.new :email=> email
|
|
new_user.save
|
|
end
|
|
|
|
@stud_MRK = UserRole.first(conditions:{key:"Stud"})
|
|
@teacher_MRK = UserRole.first(conditions:{key:"Teacher"})
|
|
@staff_MRK = UserRole.first(conditions:{key:"Staff"})
|
|
|
|
@good_stu = User.first(conditions:{email:"a_good_stud@rulingcom.com"})
|
|
@bad_stu = User.first(conditions:{email:"a_bad_stud@rulingcom.com"})
|
|
@teacher = User.first(conditions:{email:"a_teacher@rulingcom.com"})
|
|
@staff = User.first(conditions:{email:"a_staff@rulingcom.com"})
|
|
|
|
#setting Roles for users
|
|
@good_stu.user_role = @stud_MRK
|
|
@bad_stu.user_role = @stud_MRK
|
|
@teacher.user_role = @teacher_MRK
|
|
@staff.user_role = @staff_MRK
|
|
|
|
@good_stu.save!
|
|
@bad_stu.save!
|
|
@teacher.save!
|
|
@staff.save!
|
|
|
|
end
|
|
describe "Testing basic structure" do
|
|
before do
|
|
@app_auth = AppAuth.new()
|
|
#all stud has access right
|
|
@app_auth.user_roles << @stud_MRK
|
|
|
|
#a_bad_stud add to block to app_auth
|
|
@app_auth.blocked_users << @bad_stu
|
|
|
|
#all teacher has access right
|
|
@app_auth.user_roles << @teacher_MRK
|
|
|
|
@app_auth.privilege_users << @staff
|
|
@app_auth.save!
|
|
end
|
|
context "Should just initialize all obj that is needed" do
|
|
|
|
it "Testing @app_auth init result" do
|
|
@app_auth.user_roles.should have(2).item
|
|
end
|
|
|
|
it "@app_auth should have UserRoles: Stud , Teacher " do
|
|
key_ary = @app_auth.user_roles.collect do |role|
|
|
role.key
|
|
end
|
|
key_ary.should == ["Stud","Teacher"]
|
|
end
|
|
|
|
it "@app_auth should have one Privialage user which is belongs to Staff" do
|
|
p_user_ary = @app_auth.privilege_users.collect do |p_user|
|
|
p_user.user_role.key
|
|
end
|
|
p_user_ary.should include("Staff")
|
|
end
|
|
|
|
it "@app_auth should have one student listed at blocklist" do
|
|
@bad_stu = User.first(conditions:{email:"a_bad_stud@rulingcom.com"})
|
|
@app_auth.blocked_users.should have(1).item
|
|
@app_auth.blocked_users.should include(@bad_stu)
|
|
end
|
|
|
|
it "[Development #1]-1.Authorizing roles: roles + blocklist" do
|
|
@good_stu = User.first(conditions:{email:"a_good_stud@rulingcom.com"})
|
|
@teacher = User.first(conditions:{email:"a_teacher@rulingcom.com"})
|
|
@staff = User.first(conditions:{email:"a_staff@rulingcom.com"})
|
|
ary = [@good_stu,@teacher,@staff]
|
|
@app_auth.auth_users_after_block_list.should == ary
|
|
end
|
|
|
|
it "[Development #1]-2.Authorizing single users: list of users [new_user1~2]" do
|
|
user_emails = ["new_user1","new_user2","new_user3","new_user4"]
|
|
user_emails.each do |user_email|
|
|
email=user_email+"@rulingcom.com"
|
|
new_user = User.new :email=> email
|
|
new_user.save
|
|
end
|
|
user1= User.first(conditions:{email:"new_user1@rulingcom.com"})
|
|
user2= User.first(conditions:{email:"new_user2@rulingcom.com"})
|
|
user3= User.first(conditions:{email:"new_user3@rulingcom.com"})
|
|
user4= User.first(conditions:{email:"new_user4@rulingcom.com"})
|
|
|
|
@app_auth.privilege_users << user1
|
|
@app_auth.privilege_users << user2
|
|
|
|
@app_auth.auth_users_after_block_list.should include(user1,user2)
|
|
@app_auth.auth_users_after_block_list.should_not include(user3,user4)
|
|
|
|
end
|
|
|
|
it "[Development #1]-3.Authorizing roles and single users: roles + blocklist + list of users" do
|
|
@app_auth.auth_users.should have(4).item
|
|
end
|
|
|
|
it "[Development #1]-4.Authorizing all: blocklist" do
|
|
@bad_stu = User.first(conditions:{email:"a_bad_stud@rulingcom.com"})
|
|
@new_app_auth = (AppAuth.new :all => true)
|
|
@new_app_auth.blocked_users << @bad_stu
|
|
|
|
@new_app_auth.auth_users.should == User.all.entries
|
|
@new_app_auth.auth_users_after_block_list.should_not include(@bad_stu)
|
|
@new_app_auth.save!
|
|
end
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end |