merge with november_presentation

This commit is contained in:
chris2tof committed 2011-12-20 16:47:17 +08:00
1 parent afbffe37d5
commit a09f8e4551
101 files changed
+891 -10632

No files matched your search

+137
View File
@@ -0,0 +1,137 @@
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
+81
View File
@@ -0,0 +1,81 @@
require 'spec_helper'
require 'ruby-debug'
describe AppAuth do
before(:all) do
@app_ary = [
{"name" => "G_app_1" , "all" => false,"blockusers" => ["a_bad_stud@rulingcom.com"]},
{"name" => "G_app_2" , "all" => true,"blockusers" => ["a_bad_stud@rulingcom.com"]},
{"name" => "G_app_3_for_bad" , "all" => true,"blockusers" => []}
]
@app_ary.each do |t|
a = ModuleApp.new :title => t["name"]
blocked_users = t["blockusers"].collect do |b_user|
User.first(conditions:{email:b_user})
end
a.create_app_auth :all=> t["all"],:blocked_users => blocked_users
a.save!
end
@good_stud_become_bad = User.first(conditions:{email:"a_good_stud@rulingcom.com"})
@bad_stud_become_good = User.first(conditions:{email:"a_bad_stud@rulingcom.com"})
@g_app_1 = ModuleApp.first(conditions:{title:"G_app_1"})
@g_app_2 = ModuleApp.first(conditions:{title:"G_app_2"})
@g_app_3 = ModuleApp.first(conditions:{title:"G_app_3_for_bad"})
end
describe "[Init status check]" do
it "bad_stud_become_good status " do
@bad_stud_become_good.avb_apps.should_not include @g_app_1.app_auth
@bad_stud_become_good.avb_apps.should_not include @g_app_2.app_auth
@bad_stud_become_good.avb_apps.should include @g_app_3.app_auth
end
it "good_stud_become_bad status " do
@good_stud_become_bad.avb_apps.should_not include @g_app_1.app_auth
@good_stud_become_bad.avb_apps.should include @g_app_2.app_auth
@good_stud_become_bad.avb_apps.should include @g_app_3.app_auth
end
end
describe ".add_user_to_black_list sutd" do
it "When good stud is blocked with app1 and app2" do
@g_app_1.app_auth.add_user_to_black_list @good_stud_become_bad
@g_app_2.app_auth.add_user_to_black_list @good_stud_become_bad
@good_stud_become_bad.avb_apps.should_not include @g_app_1.app_auth
@good_stud_become_bad.avb_apps.should_not include @g_app_2.app_auth
end
end
describe ".remove_user_from_black_list sutd" do
it "When bad stud is authed with app1 and app2" do
@g_app_1.app_auth.remove_user_from_black_list @bad_stud_become_good
@g_app_2.app_auth.remove_user_from_black_list @bad_stud_become_good
#@bad_stud_become_good.avb_apps.should include @g_app_1.app_auth
@bad_stud_become_good.avb_apps.should include @g_app_2.app_auth
end
end
describe ".add_user_to_privilege_list sutd" do
it "When bad stud is auth for one more app" do
@bad_stud_become_good.avb_apps.should_not include @g_app_1.app_auth #shouldn't have at first time since app1 is not sat for all
@g_app_1.app_auth.add_user_to_privilege_list @bad_stud_become_good #change status
@bad_stud_become_good.avb_apps.should include @g_app_1.app_auth #check
end
end
describe ".remove_user_from_privilege_list sutd" do
it "admin mistake. remove user from privilege list" do
@g_app_1.app_auth.remove_user_from_privilege_list @bad_stud_become_good
@bad_stud_become_good.avb_apps.should_not include @g_app_1.app_auth
end
end
after(:all) do
@app_ary.each do |item|
ModuleApp.first(conditions: {title: item["name"]}).destroy
end
end
end
-1
View File
@@ -55,4 +55,3 @@ end
# and during each_run!
# - These instructions should self-destruct in 10 seconds. If they don't,
# feel free to delete them.
#