| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | # require 'spec_helper' | 
					
						
							|  |  |  | # require 'ruby-debug' | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | # describe AppAuth do  | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #   before  do | 
					
						
							|  |  |  | #     User.all.destroy | 
					
						
							|  |  |  | #     Role.all.destroy | 
					
						
							|  |  |  | #     SubRole.all.destroy | 
					
						
							|  |  |  | #     AppAuth.all.destroy | 
					
						
							|  |  |  | #     ModuleApp.all.destroy | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     #Create some fixtures of Main Role | 
					
						
							|  |  |  | #     main_role_key = ["Stud","Teacher","Staff"] | 
					
						
							|  |  |  | #     @new_main_role_list = main_role_key.each do |role| | 
					
						
							|  |  |  | #       new_role = Role.new :key => role | 
					
						
							|  |  |  | #       new_role.save | 
					
						
							|  |  |  | #     end | 
					
						
							|  |  |  | #     #Create Some SubRoles | 
					
						
							|  |  |  | #     sub_role_key = ["graduated_school","undergraduated_school","TA","Senior"] | 
					
						
							|  |  |  | #     @new_main_role_list = sub_role_key.each do |role| | 
					
						
							|  |  |  | #       new_role = SubRole.new :key => role | 
					
						
							|  |  |  | #       new_role.save | 
					
						
							|  |  |  | #     end | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     #Create some users of User | 
					
						
							|  |  |  | #     user_emails = ["a_good_ug_stud_1","a_good_ug_stud_2","a_bad_ug_stud","a_good_g_stud","a_bad_g_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 | 
					
						
							|  |  |  | #     #MRK = Member Role Key    SRK=Sub Role Key | 
					
						
							|  |  |  | #     @stud_MRK = Role.first(conditions:{key:"Stud"}) | 
					
						
							|  |  |  | #     @teacher_MRK = Role.first(conditions:{key:"Teacher"}) | 
					
						
							|  |  |  | #     @staff_MRK = Role.first(conditions:{key:"Staff"}) | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @graduated_SRK = SubRole.first(conditions:{key:"graduated_school"}) | 
					
						
							|  |  |  | #     @under_graduated_SRK = SubRole.first(conditions:{key:"undergraduated_school"}) | 
					
						
							|  |  |  | #     @ta_SRK = SubRole.first(conditions:{key:"TA"}) | 
					
						
							|  |  |  | #     @senior_SRK = SubRole.first(conditions:{key:"Senior"}) | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @stud_MRK.sub_roles += [@graduated,@under_graduated,@ta] | 
					
						
							|  |  |  | #     @stud_MRK.save! | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @teacher_MRK.sub_roles = [@senior] | 
					
						
							|  |  |  | #     @teacher_MRK.save! | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @good_ug_stu_1 = User.first(conditions:{email:"a_good_ug_stud_1@rulingcom.com"})     | 
					
						
							|  |  |  | #     @good_ug_stu_2 = User.first(conditions:{email:"a_good_ug_stud_2@rulingcom.com"}) | 
					
						
							|  |  |  | #     @bad_ug_stu = User.first(conditions:{email:"a_bad_ug_stud@rulingcom.com"}) | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @good_g_stu = User.first(conditions:{email:"a_good_g_stud@rulingcom.com"}) | 
					
						
							|  |  |  | #     @bad_g_stu = User.first(conditions:{email:"a_bad_g_stud@rulingcom.com"}) | 
					
						
							|  |  |  | #     @teacher = User.first(conditions:{email:"a_teacher@rulingcom.com"}) | 
					
						
							|  |  |  | #     @staff =  User.first(conditions:{email:"a_staff@rulingcom.com"}) | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     #setting Roles for users | 
					
						
							|  |  |  | #     @good_g_stu.role = @stud_MRK | 
					
						
							|  |  |  | #     @bad_g_stu.role = @stud_MRK | 
					
						
							|  |  |  | #     @good_ug_stu_1.role = @stud_MRK | 
					
						
							|  |  |  | #     @good_ug_stu_2.role = @stud_MRK | 
					
						
							|  |  |  | #     @bad_ug_stu.role = @stud_MRK | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @good_g_stu.sub_roles = [@graduated_SRK,@ta_SRK] | 
					
						
							|  |  |  | #     @bad_g_stu.sub_roles << @graduated_SRK | 
					
						
							|  |  |  | #     @good_ug_stu_1.sub_roles << @under_graduated_SRK | 
					
						
							|  |  |  | #     @good_ug_stu_2.sub_roles << @under_graduated_SRK | 
					
						
							|  |  |  | #     @bad_ug_stu.sub_roles << @under_graduated_SRK | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @teacher.role = @teacher_MRK | 
					
						
							|  |  |  | #     @staff.role = @staff_MRK | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @good_g_stu.save! | 
					
						
							|  |  |  | #     @bad_g_stu.save! | 
					
						
							|  |  |  | #     @good_ug_stu_1.save! | 
					
						
							|  |  |  | #     @good_ug_stu_2.save! | 
					
						
							|  |  |  | #     @bad_ug_stu.save! | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     @teacher.save! | 
					
						
							|  |  |  | #     @staff.save! | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #   end | 
					
						
							|  |  |  | #   describe "Starting a ClassBulletin Auth for teacher , staff and ta" do | 
					
						
							|  |  |  | #     before do | 
					
						
							|  |  |  | #       @bulletin_app_auth = AppAuth.new() | 
					
						
							|  |  |  | #       #all teacher and staff has access right | 
					
						
							|  |  |  | #       @bulletin_app_auth.roles = [@teacher_MRK,@staff_MRK] | 
					
						
							|  |  |  | #       #all person with TA sub_role has access right | 
					
						
							|  |  |  | #       @bulletin_app_auth.sub_roles << @ta_SRK | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       #a_bad_ug_stud add to block to bulletin_app_auth  | 
					
						
							|  |  |  | #       #@bulletin_app_auth.blocked_users << @bad_ug_stu | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       #all teacher has access right | 
					
						
							|  |  |  | #       # @bulletin_app_auth.roles << @teacher_MRK | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       # @bulletin_app_auth.privilege_users << @staff | 
					
						
							|  |  |  | #       @bulletin_app_auth.save! | 
					
						
							|  |  |  | #     end | 
					
						
							|  |  |  | #     context "Should just initialize all obj that is needed" do | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "Testing @bulletin_app_auth init result" do | 
					
						
							|  |  |  | #         @bulletin_app_auth.roles.should have(2).item     #teacher staff | 
					
						
							|  |  |  | #         @bulletin_app_auth.sub_roles.should have(1).item  #ta | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "@bulletin_app_auth should have Roles: Staff , Teacher " do | 
					
						
							|  |  |  | #         key_ary = @bulletin_app_auth.roles.collect do |role| | 
					
						
							|  |  |  | #           role.key | 
					
						
							|  |  |  | #         end | 
					
						
							|  |  |  | #         key_ary.sort.should == ["Staff","Teacher"].sort | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "bulletin_app_auth should have 3 auth users" do | 
					
						
							|  |  |  | #         user_ary = [@teacher,@staff,@good_g_stu] | 
					
						
							|  |  |  | #        @bulletin_app_auth.auth_users.sort.should == user_ary.sort   | 
					
						
							|  |  |  | #        check_user_has_app user_ary | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "Adding a undergraduate stud into app_auth by privilege list" do | 
					
						
							|  |  |  | #         user_ary = [@teacher,@staff,@good_g_stu,@good_ug_stu_1] | 
					
						
							|  |  |  | #        @bulletin_app_auth.add_user_to_privilege_list  @good_ug_stu_1 | 
					
						
							|  |  |  | #        @bulletin_app_auth.auth_users.sort.should == user_ary.sort   | 
					
						
							|  |  |  | #        check_user_has_app user_ary        | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "Adding all graudated-stud into app_auth" do | 
					
						
							|  |  |  | #        user_ary = [@teacher,@staff,@good_g_stu,@bad_g_stu] | 
					
						
							|  |  |  | #        @bulletin_app_auth.add_sub_role  @graduated_SRK | 
					
						
							|  |  |  | #        @bulletin_app_auth.auth_users.sort.should == user_ary.sort   | 
					
						
							|  |  |  | #        check_user_has_app user_ary | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "Blocking bad-graduate student" do | 
					
						
							|  |  |  | #         user_ary =[@teacher,@staff,@good_g_stu] | 
					
						
							|  |  |  | #        @bulletin_app_auth.add_sub_role  @graduated_SRK | 
					
						
							|  |  |  | #        @bulletin_app_auth.add_user_to_black_list @bad_g_stu | 
					
						
							|  |  |  | #        @bulletin_app_auth.auth_users_after_block_list.sort.should == user_ary.sort   | 
					
						
							|  |  |  | #        check_user_has_app user_ary | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       it "Removing all graudated-stud from app_auth" do | 
					
						
							|  |  |  | #         user_ary =[@teacher,@staff,@good_g_stu] | 
					
						
							|  |  |  | #         @bulletin_app_auth.add_sub_role  @graduated_SRK | 
					
						
							|  |  |  | #         @bulletin_app_auth.remove_sub_role  @graduated_SRK | 
					
						
							|  |  |  | #        @bulletin_app_auth.auth_users.sort.should == user_ary.sort   | 
					
						
							|  |  |  | #        check_user_has_app user_ary | 
					
						
							|  |  |  | #       end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       # it "@bulletin_app_auth should have one Privialage user which is belongs to Staff" do | 
					
						
							|  |  |  | #       #   p_user_ary = @bulletin_app_auth.privilege_users.collect do |p_user| | 
					
						
							|  |  |  | #       #     p_user.roles.key | 
					
						
							|  |  |  | #       #   end | 
					
						
							|  |  |  | #       #   p_user_ary.should include("Staff") | 
					
						
							|  |  |  | #       # end | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #       # it "@bulletin_app_auth should have one student listed at blocklist" do | 
					
						
							|  |  |  | #       #   @bad_stu = User.first(conditions:{email:"a_bad_g_stud@rulingcom.com"}) | 
					
						
							|  |  |  | #       #   @bulletin_app_auth.blocked_users.should have(1).item | 
					
						
							|  |  |  | #       #   @bulletin_app_auth.blocked_users.should include(@bad_stu) | 
					
						
							|  |  |  | #       # end | 
					
						
							| 
									
										
										
										
											2012-01-05 08:20:51 +00:00
										 |  |  |            | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #     #   it "[Development #1]-1.Authorizing roles: roles + blocklist" do | 
					
						
							|  |  |  | #     #     @good_stu = User.first(conditions:{email:"a_good_g_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] | 
					
						
							|  |  |  | #     #     @bulletin_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"}) | 
					
						
							|  |  |  | #     #      | 
					
						
							|  |  |  | #     #     @bulletin_app_auth.privilege_users << user1 | 
					
						
							|  |  |  | #     #     @bulletin_app_auth.privilege_users << user2 | 
					
						
							|  |  |  | #     #      | 
					
						
							|  |  |  | #     #     @bulletin_app_auth.auth_users_after_block_list.should include(user1,user2) | 
					
						
							|  |  |  | #     #     @bulletin_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 | 
					
						
							|  |  |  | #     #     @bulletin_app_auth.auth_users.should have(7).item  | 
					
						
							|  |  |  | #     #   end | 
					
						
							|  |  |  | #     #    | 
					
						
							|  |  |  | #     #   it "[Development #1]-4.Authorizing all: blocklist" do | 
					
						
							|  |  |  | #     #     @bad_stu = User.first(conditions:{email:"a_bad_g_stud@rulingcom.com"}) | 
					
						
							|  |  |  | #     #     @new_bulletin_app_auth = (AppAuth.new :all => true) | 
					
						
							|  |  |  | #     #     @new_bulletin_app_auth.blocked_users << @bad_stu  | 
					
						
							|  |  |  | #     #      | 
					
						
							|  |  |  | #     #     @new_bulletin_app_auth.auth_users.should == User.all.entries | 
					
						
							|  |  |  | #     #     @new_bulletin_app_auth.auth_users_after_block_list.should_not include(@bad_stu) | 
					
						
							|  |  |  | #     #     @new_bulletin_app_auth.save! | 
					
						
							|  |  |  | #     #   end | 
					
						
							|  |  |  | #       def check_user_has_app(user_ary) | 
					
						
							|  |  |  | #         user_ary.each do |user| | 
					
						
							|  |  |  | #          user.avb_apps.should include(@bulletin_app_auth)  | 
					
						
							|  |  |  | #         end | 
					
						
							|  |  |  | #       end | 
					
						
							|  |  |  | #      end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  |      | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |      | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | #   end | 
					
						
							| 
									
										
										
										
											2011-12-20 08:47:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-03 21:56:29 +00:00
										 |  |  | # end |