test/dummy/spec/functional/community_spec.rb in inkwell-1.1.1 vs test/dummy/spec/functional/community_spec.rb in inkwell-1.1.7
- old
+ new
@@ -3,28 +3,32 @@
describe "Community" do
before(:each) do
@salkar = User.create :nick => "Salkar"
@morozovm = User.create :nick => "Morozovm"
@talisman = User.create :nick => "Talisman"
+ @spy = User.create :nick => "Spy"
@community_1 = Community.create :name => "Community_1", :owner_id => @talisman.id
@salkar_post = @salkar.posts.create :body => "salkar_post_test_body"
+ @salkar.reload
+ @talisman.reload
+ @morozovm.reload
end
it "user should been added to community" do
users_ids = ActiveSupport::JSON.decode @community_1.users_ids
users_ids.size.should == 1
- communities_ids = ActiveSupport::JSON.decode @salkar.communities_ids
- communities_ids.size.should == 0
+ communities_info = ActiveSupport::JSON.decode @salkar.communities_info
+ communities_info.size.should == 0
@community_1.add_user :user => @salkar
@community_1.reload
@salkar.reload
users_ids = ActiveSupport::JSON.decode @community_1.users_ids
users_ids.size.should == 2
users_ids[1].should == @salkar.id
- communities_ids = ActiveSupport::JSON.decode @salkar.communities_ids
- communities_ids.size.should == 1
- communities_ids[0].should == @community_1.id
+ communities_info = ActiveSupport::JSON.decode @salkar.communities_info
+ communities_info.size.should == 1
+ communities_info[0].should == {"c_id"=>@community_1.id, "a"=>"w"}
end
it "community's posts should been transferred to user timeline" do
@salkar_post1 = @salkar.posts.create :body => "salkar_post_test_body1"
@salkar_post2 = @salkar.posts.create :body => "salkar_post_test_body2"
@@ -142,11 +146,11 @@
expect { @community_1.add_user @salkar }.to raise_error
end
it "user should be in community after added (include_user?)" do
@community_1.include_user?(@salkar).should == false
- @salkar.communities_ids = "[#{@community_1.id}]"
+ @salkar.communities_info = ActiveSupport::JSON.encode [{"c_id"=>@community_1.id, "a"=>"w"}]
@community_1.users_ids = "[#{@salkar.id}]"
@community_1.save
@salkar.save
@community_1.include_user?(@salkar).should == true
end
@@ -154,14 +158,13 @@
it "user should not be admin" do
@community_1.include_admin?(@salkar).should == false
end
it "user should be admin" do
- @salkar.admin_of = ActiveSupport::JSON.encode [{'community_id' => @salkar.id}]
- @salkar.save
- @community_1.admins_info = ActiveSupport::JSON.encode [{'user_id' => @salkar.id}]
+ @community_1.admins_info = ActiveSupport::JSON.encode [{'admin_id' => @salkar.id}]
@community_1.save
+ @community_1.reload
@community_1.include_admin?(@salkar).should == true
end
it "user should remove himself from community" do
@community_1.add_user :user => @salkar
@@ -171,11 +174,10 @@
@community_1.remove_user :user => @salkar
@community_1.reload
@salkar.reload
@community_1.include_user?(@salkar).should == false
ActiveSupport::JSON.decode(@community_1.admins_info).size.should == 1
- ActiveSupport::JSON.decode(@salkar.admin_of).size.should == 0
end
it "community owner should not remove himself from community" do
@community_1.reload
@talisman.reload
@@ -243,24 +245,20 @@
tline.where(:item_id => @morozovm_post2.id, :item_type => ::Inkwell::Constants::ItemTypes::POST).first.should == nil
ActiveSupport::JSON.decode(tline.where(:item_id => @salkar_post8.id, :item_type => ::Inkwell::Constants::ItemTypes::POST).first.from_source).should == [Hash['user_id' => @salkar.id, 'type' => 'following']]
end
it "admin level of user should be returned" do
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 3}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 3}]
@community_1.save
@community_1.admin_level_of(@salkar).should == 3
end
it "admin level of user should not be returned" do
expect { @community_1.admin_level_of(@salkar) }.to raise_error
end
it "admin should be added" do
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 0}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 0}]
@community_1.save
@community_1.add_user :user => @salkar
@community_1.add_user :user => @morozovm
@community_1.reload
@@ -276,12 +274,10 @@
it "admin should not be added" do
expect { @community_1.add_admin(:user => @salkar) }.to raise_error
expect { @community_1.add_admin(:user => @salkar, :admin => @talisman) }.to raise_error
expect { @community_1.add_admin(:user => "@salkar", :admin => "@talisman") }.to raise_error
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 0}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 0}]
@community_1.save
@community_1.add_user :user => @salkar
@community_1.add_user :user => @morozovm
@community_1.reload
@@ -289,16 +285,13 @@
@morozovm.reload
expect { @community_1.add_admin :admin => @salkar, :user => @salkar }.to raise_error
@community_1.reload
@salkar.reload
ActiveSupport::JSON.decode(@community_1.admins_info).size.should == 1
- ActiveSupport::JSON.decode(@salkar.admin_of).size.should == 1
end
it "admin should be removed" do
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 0}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 0}]
@community_1.save
@community_1.add_user :user => @salkar
@community_1.add_user :user => @morozovm
@community_1.reload
@@ -312,11 +305,10 @@
@community_1.reload
@morozovm.reload
@community_1.include_admin?(@salkar).should == true
@community_1.include_admin?(@morozovm).should == false
ActiveSupport::JSON.decode(@community_1.admins_info).size.should == 1
- ActiveSupport::JSON.decode(@morozovm.admin_of).size.should == 0
@community_1.add_admin :admin => @salkar, :user => @morozovm
@community_1.reload
@morozovm.reload
@community_1.include_admin?(@morozovm).should == true
@@ -329,12 +321,10 @@
it "admin should not be removed" do
expect { @community_1.remove_admin :admin => @salkar, :user => @morozovm }.to raise_error
expect { @community_1.remove_admin :admin => "@salkar", :user => "@morozovm" }.to raise_error
expect { @community_1.remove_admin :user => @morozovm }.to raise_error
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 0}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 0}]
@community_1.save
@community_1.add_user :user => @salkar
@community_1.add_user :user => @morozovm
@community_1.reload
@@ -410,11 +400,10 @@
@talisman.reload
@morozovm.reload
@salkar.communities_row.size.should == 0
@talisman.communities_row.size.should == 0
@morozovm.communities_row.size.should == 0
- ActiveSupport::JSON.decode(@talisman.admin_of).size.should == 0
end
it "post should be added to community blogline and user's timeline" do
@community_1.add_user :user => @salkar
::Inkwell::BlogItem.where(:owner_id => @community_1.id, :owner_type => ::Inkwell::Constants::OwnerTypes::COMMUNITY, :item_id => @salkar_post.id, :item_type => ::Inkwell::Constants::ItemTypes::POST).size.should == 0
@@ -558,21 +547,21 @@
end
it "user should join community" do
users_ids = ActiveSupport::JSON.decode @community_1.users_ids
users_ids.size.should == 1
- communities_ids = ActiveSupport::JSON.decode @salkar.communities_ids
- communities_ids.size.should == 0
+ communities_info = ActiveSupport::JSON.decode @salkar.communities_info
+ communities_info.size.should == 0
@salkar.join @community_1
@community_1.reload
@salkar.reload
users_ids = ActiveSupport::JSON.decode @community_1.users_ids
users_ids.size.should == 2
users_ids[1].should == @salkar.id
- communities_ids = ActiveSupport::JSON.decode @salkar.communities_ids
- communities_ids.size.should == 1
- communities_ids[0].should == @community_1.id
+ communities_info = ActiveSupport::JSON.decode @salkar.communities_info
+ communities_info.size.should == 1
+ communities_info[0].should == {"c_id"=>@community_1.id, "a"=>"w"}
end
it "user should leave community" do
@community_1.add_user :user => @salkar
@community_1.reload
@@ -581,11 +570,10 @@
@salkar.leave @community_1
@community_1.reload
@salkar.reload
@community_1.include_user?(@salkar).should == false
ActiveSupport::JSON.decode(@community_1.admins_info).size.should == 1
- ActiveSupport::JSON.decode(@salkar.admin_of).size.should == 0
end
it "user should be kicked from community" do
@community_1.add_user :user => @salkar
@community_1.reload
@@ -595,11 +583,10 @@
@talisman.kick :user => @salkar, :from_community => @community_1
@community_1.reload
@salkar.reload
@community_1.include_user?(@salkar).should == false
ActiveSupport::JSON.decode(@community_1.admins_info).size.should == 1
- ActiveSupport::JSON.decode(@salkar.admin_of).size.should == 0
end
it "post should be sended to community" do
@community_1.add_user :user => @salkar
::Inkwell::BlogItem.where(:owner_id => @community_1.id, :owner_type => ::Inkwell::Constants::OwnerTypes::COMMUNITY, :item_id => @salkar_post.id, :item_type => ::Inkwell::Constants::ItemTypes::POST).size.should == 0
@@ -645,12 +632,10 @@
@salkar_post.reload
ActiveSupport::JSON.decode(@salkar_post.communities_ids).size.should == 0
end
it "admin permissions should be granted" do
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 0}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 0}]
@community_1.save
@community_1.add_user :user => @salkar
@community_1.add_user :user => @morozovm
@community_1.reload
@@ -662,12 +647,10 @@
@community_1.include_admin?(@morozovm).should == true
@community_1.admin_level_of(@morozovm).should == 1
end
it "admin permissions should be revoked" do
- @salkar.admin_of = ActiveSupport::JSON.encode [{:community_id => @community_1.id, :admin_level => 0}]
- @salkar.save
@community_1.admins_info = ActiveSupport::JSON.encode [{:admin_id => @salkar.id, :admin_level => 0}]
@community_1.save
@community_1.add_user :user => @salkar
@community_1.add_user :user => @morozovm
@community_1.reload
@@ -681,9 +664,898 @@
@community_1.reload
@morozovm.reload
@community_1.include_admin?(@salkar).should == true
@community_1.include_admin?(@morozovm).should == false
ActiveSupport::JSON.decode(@community_1.admins_info).size.should == 1
- ActiveSupport::JSON.decode(@morozovm.admin_of).size.should == 0
+ end
+
+ it "community row should be returned for user" do
+ @community_2 = Community.create :name => "Community_1", :owner_id => @talisman.id
+ @community_3 = Community.create :name => "Community_1", :owner_id => @talisman.id
+ @talisman.reload
+ @talisman.communities_row.should == [@community_1.id, @community_2.id, @community_3.id]
+ end
+
+ it "admin should be added to community users in open community" do
+ @community_1.reload
+ @talisman.reload
+ @community_1.include_user?(@talisman).should == true
+ @community_1.include_admin?(@talisman).should == true
+ end
+
+ it "private community with default W access should be created" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.reload
+ @morozovm.reload
+ @private_community.public.should == false
+ @private_community.admins_info.should == "[{\"admin_id\":#{@morozovm.id},\"admin_level\":0}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @private_community.users_ids.should == "[#{@morozovm.id}]"
+ ActiveSupport::JSON.decode(@morozovm.communities_info).should == [{"c_id"=>@private_community.id, "a"=>"w"}]
+ end
+
+ it "private community with default R access should be created" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.default_user_access = 'r'
+ @private_community.save
+ @private_community.reload
+ @morozovm.reload
+ @private_community.public.should == false
+ @private_community.admins_info.should == "[{\"admin_id\":#{@morozovm.id},\"admin_level\":0}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @private_community.users_ids.should == "[#{@morozovm.id}]"
+ ActiveSupport::JSON.decode(@morozovm.communities_info).should == [{"c_id"=>@private_community.id, "a"=>"w"}]
+ end
+
+ it "public community with default W access should be created" do
+ @w_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @w_community.reload
+ @morozovm.reload
+ @w_community.public.should == true
+ @w_community.admins_info.should == "[{\"admin_id\":#{@morozovm.id},\"admin_level\":0}]"
+ @w_community.writers_ids.should == "[#{@morozovm.id}]"
+ @w_community.users_ids.should == "[#{@morozovm.id}]"
+ ActiveSupport::JSON.decode(@morozovm.communities_info).should == [{"c_id"=>@w_community.id, "a"=>"w"}]
+ end
+
+ it "public community with default R access should be created" do
+ @community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @community.default_user_access = 'r'
+ @community.save
+ @community.reload
+ @morozovm.reload
+ @community.public.should == true
+ @community.admins_info.should == "[{\"admin_id\":#{@morozovm.id},\"admin_level\":0}]"
+ @community.writers_ids.should == "[#{@morozovm.id}]"
+ @community.users_ids.should == "[#{@morozovm.id}]"
+ ActiveSupport::JSON.decode(@morozovm.communities_info).should == [{"c_id" => @community.id, "a" => "w"}]
+ end
+
+ it "added to public community with default W access user should have W access" do
+ @w_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @w_community.reload
+ @morozovm.reload
+ @w_community.add_user :user => @salkar
+ @w_community.reload
+ @salkar.reload
+ @w_community.include_user?(@salkar).should == true
+ ActiveSupport::JSON.decode(@salkar.communities_info).should == [{"c_id" => @w_community.id, "a" => "w"}]
+ ActiveSupport::JSON.decode(@w_community.users_ids).should == [@morozovm.id, @salkar.id]
+ ActiveSupport::JSON.decode(@w_community.writers_ids).should == [@morozovm.id, @salkar.id]
+ end
+
+ it "added to public community with default R access user should have R access" do
+ @community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @community.default_user_access = 'r'
+ @community.save
+ @community.reload
+ @morozovm.reload
+ @community.add_user :user => @salkar
+ @community.reload
+ @salkar.reload
+ @community.include_user?(@salkar).should == true
+ ActiveSupport::JSON.decode(@salkar.communities_info).should == [{"c_id" => @community.id, "a" => "r"}]
+ ActiveSupport::JSON.decode(@community.users_ids).should == [@morozovm.id, @salkar.id]
+ ActiveSupport::JSON.decode(@community.writers_ids).should == [@morozovm.id]
+ end
+
+ it "added to private community with default W access user should have W access" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ @private_community.include_user?(@salkar).should == true
+ @private_community.users_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @salkar.communities_row.should == [@private_community.id]
+ ActiveSupport::JSON.decode(@salkar.communities_info).should == [{"c_id" => @private_community.id, "a" => "w"}]
+ end
+
+ it "added to private community with default R access user should have R access" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.default_user_access = 'r'
+ @private_community.save
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ @private_community.include_user?(@salkar).should == true
+ @private_community.users_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @salkar.communities_row.should == [@private_community.id]
+ ActiveSupport::JSON.decode(@salkar.communities_info).should == [{"c_id" => @private_community.id, "a" => "r"}]
+ end
+
+ it "request invitation should be created (include_invitation_request?)" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.invitations_uids.should == "[#{@salkar.id}]"
+ @private_community.include_invitation_request?(@salkar).should == true
+ end
+
+ it "request invitation should be created (include_invitation_request?)" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.reload
+ @private_community.include_invitation_request?(@salkar).should == false
+ @private_community.create_invitation_request @talisman
+ @private_community.reload
+ @private_community.include_invitation_request?(@salkar).should == false
+ end
+
+ it "error should be excepted on try to check invitation request for public community" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @public_community.reload
+ expect { @public_community.include_invitation_request?(@salkar) }.to raise_error
+ end
+
+ it "request invitation should be created" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.invitations_uids.should == "[#{@salkar.id}]"
+ end
+
+ it "request invitation should not be created" do
+ expect { @community_1.create_invitation_request(@salkar) }.to raise_error
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.banned_ids = "[#{@talisman.id}]"
+ @private_community.save
+ expect { @private_community.create_invitation_request(@talisman) }.to raise_error
+ @private_community.create_invitation_request(@salkar)
+ expect { @private_community.create_invitation_request(@salkar) }.to raise_error
+ end
+
+ it "user should not be added to public community cause he is banned" do
+ @community_1.banned_ids = "[#{@morozovm.id}]"
+ @community_1.save
+ expect { @morozovm.join @community_1 }.to raise_error
+ end
+
+ it "error should be raised on trying to add to community user who already added to it" do
+ @salkar.join @community_1
+ expect { @salkar.join @community_1 }.to raise_error
+ end
+
+ it "invitation request should be rejected" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request(@salkar)
+ @private_community.reload
+ @private_community.include_invitation_request?(@salkar).should == true
+ @private_community.reject_invitation_request :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_invitation_request?(@salkar).should == false
+ end
+
+ it "invitation request should not be rejected" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request(@salkar)
+ @private_community.add_user :user => @talisman #only for test
+ @private_community.reload
+ expect { @private_community.reject_invitation_request :user => @spy, :admin => @morozovm }.to raise_error
+ expect { @private_community.reject_invitation_request :user => @salkar }.to raise_error
+ expect { @private_community.reject_invitation_request :admin => @morozovm }.to raise_error
+ expect { @private_community.reject_invitation_request :user => @salkar, :admin => @talisman }.to raise_error
+ end
+
+ it "invitation request should be accepted" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ @private_community.include_user?(@salkar).should == true
+ @private_community.users_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @salkar.communities_row.should == [@private_community.id]
+ end
+
+ it "invitation request should not be accepted" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.add_user :user => @talisman #only for test
+ @private_community.reload
+
+ expect { @private_community.accept_invitation_request :user => @spy, :admin => @morozovm }.to raise_error
+ expect { @private_community.accept_invitation_request :user => @salkar }.to raise_error
+ expect { @private_community.accept_invitation_request :admin => @morozovm }.to raise_error
+ expect { @private_community.accept_invitation_request :user => @salkar, :admin => @talisman }.to raise_error
+ @private_community.add_user :user => @salkar #only for test
+ expect { @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm }.to raise_error
+ end
+
+ it "user should be removed from private community" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.add_user :user => @salkar #only for test
+ @private_community.reload
+ @salkar.reload
+
+ @private_community.include_user?(@salkar).should == true
+ @private_community.users_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @salkar.communities_row.should == [@private_community.id]
+
+ @private_community.remove_user :admin => @morozovm, :user => @salkar
+ @private_community.reload
+ @salkar.reload
+
+ @private_community.include_user?(@salkar).should == false
+ @private_community.users_ids.should == "[#{@morozovm.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @salkar.communities_row.should == []
+ end
+
+ it "admin should be removed from private community" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.add_user :user => @salkar #only for test
+ @private_community.add_admin :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @salkar.reload
+
+ @private_community.include_user?(@salkar).should == true
+ @private_community.include_admin?(@salkar).should == true
+ @private_community.users_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ ActiveSupport::JSON.decode(@private_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should_not == nil
+ @salkar.communities_row.should == [@private_community.id]
+
+ @private_community.remove_user :admin => @morozovm, :user => @salkar
+ @private_community.reload
+ @salkar.reload
+
+ @private_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@private_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should == nil
+ @private_community.users_ids.should == "[#{@morozovm.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @salkar.communities_row.should == []
+ end
+
+ it "user should leave private community" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @salkar.leave @private_community
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@private_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should == nil
+ @private_community.users_ids.should == "[#{@morozovm.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @salkar.communities_row.should == []
+ end
+
+ it "user should be kicked from private community" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @morozovm.kick :user => @salkar, :from_community => @private_community
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@private_community.admins_info).index { |item| item['admin_id'] == @salkar.id }.should == nil
+ @private_community.users_ids.should == "[#{@morozovm.id}]"
+ @private_community.writers_ids.should == "[#{@morozovm.id}]"
+ @salkar.communities_row.should == []
+ end
+
+ it "user should not join private community" do
+ @private_community = Community.create :name => "Private Community", :owner_id => @morozovm.id, :public => false
+ expect { @salkar.join @private_community }.to raise_error
+ end
+
+ it "user info should be deleted from community with W access if user is removed" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @public_community.reload
+ @morozovm.reload
+ @public_community.add_admin :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @public_community.reload
+
+ @public_community.include_user?(@salkar).should == true
+ @public_community.include_admin?(@salkar).should == true
+ @public_community.users_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ @public_community.writers_ids.should == "[#{@morozovm.id},#{@salkar.id}]"
+ ActiveSupport::JSON.decode(@public_community.admins_info).index { |item| item['admin_id'] == @salkar.id }.should_not == nil
+ @salkar.communities_row.should == [@public_community.id]
+
+ @morozovm.kick :user => @salkar, :from_community => @public_community
+ @salkar.reload
+ @public_community.reload
+
+ @public_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@public_community.admins_info).index { |item| item['admin_id'] == @salkar.id }.should == nil
+ @public_community.users_ids.should == "[#{@morozovm.id}]"
+ @public_community.writers_ids.should == "[#{@morozovm.id}]"
+ @salkar.communities_row.should == []
+ end
+
+ it "user should be muted" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_muted_user?(@salkar).should == false
+ @public_community.mute_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == true
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_muted_user?(@salkar).should == false
+ @private_community.mute_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == true
+ end
+
+ it "user should not be muted" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @talisman.join @public_community
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+ @talisman.reload
+
+ expect { @public_community.mute_user :user => @spy, :admin => @morozovm }.to raise_error
+ expect { @public_community.mute_user :user => @salkar }.to raise_error
+ expect { @public_community.mute_user :admin => @morozovm }.to raise_error
+ expect { @public_community.mute_user :user => @salkar, :admin => @talisman }.to raise_error
+ expect { @public_community.mute_user :user => @morozovm, :admin => @morozovm }.to raise_error
+ @public_community.add_admin :user => @talisman, :admin => @morozovm
+ expect { @public_community.mute_user :user => @morozovm, :admin => @talisman }.to raise_error
+ @public_community.add_admin :user => @salkar, :admin => @morozovm
+ expect { @public_community.mute_user :user => @salkar, :admin => @talisman }.to raise_error
+ @public_community.mute_user :user => @salkar, :admin => @morozovm
+ expect { @public_community.mute_user :user => @salkar, :admin => @morozovm }.to raise_error
+ end
+
+ it "user should be unmuted" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_muted_user?(@salkar).should == false
+ @public_community.mute_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == true
+ @public_community.unmute_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == false
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_muted_user?(@salkar).should == false
+ @private_community.mute_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == true
+ @private_community.unmute_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == false
+ end
+
+ it "user should not be unmuted" do
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @talisman
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @talisman, :admin => @morozovm
+ @talisman.reload
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @private_community.mute_user :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ @morozovm.reload
+ @talisman.reload
+
+ expect { @private_community.unmute_user :user => @spy, :admin => @morozovm }.to raise_error
+
+ expect { @private_community.unmute_user :user => @salkar }.to raise_error
+ expect { @private_community.unmute_user :admin => @morozovm }.to raise_error
+ expect { @private_community.unmute_user :user => @salkar, :admin => @talisman }.to raise_error
+ end
+
+ it "user should be unmuted when he is become admin" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_muted_user?(@salkar).should == false
+ @public_community.mute_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == true
+ @public_community.add_admin :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == false
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_muted_user?(@salkar).should == false
+ @private_community.mute_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == true
+ @private_community.add_admin :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == false
+ end
+
+ it "user should be banned" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_banned_user?(@salkar).should == false
+ @public_community.ban_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_banned_user?(@salkar).should == true
+ @public_community.include_user?(@salkar).should == false
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_banned_user?(@salkar).should == false
+ @private_community.ban_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == true
+ @private_community.include_user?(@salkar).should == false
+ end
+
+ it "admin should be banned" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @public_community.add_admin :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ ActiveSupport::JSON.decode(@public_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should_not == nil
+ @public_community.include_banned_user?(@salkar).should == false
+ @public_community.ban_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_banned_user?(@salkar).should == true
+ @public_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@public_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should == nil
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @private_community.add_admin :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ ActiveSupport::JSON.decode(@private_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should_not == nil
+ @private_community.include_banned_user?(@salkar).should == false
+ @private_community.ban_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == true
+ @private_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@private_community.admins_info).index{|item| item['admin_id'] == @salkar.id}.should == nil
+ end
+
+ it "user with request invitation should be banned" do
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == false
+ @private_community.ban_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == true
+ @private_community.include_user?(@salkar).should == false
+ end
+
+ it "user should not be banned" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @talisman.join @public_community
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+ @talisman.reload
+
+ expect { @public_community.ban_user :user => @spy, :admin => @morozovm }.to raise_error
+ expect { @public_community.ban_user :user => @salkar }.to raise_error
+ expect { @public_community.ban_user :admin => @morozovm }.to raise_error
+ expect { @public_community.ban_user :user => @salkar, :admin => @talisman }.to raise_error
+ expect { @public_community.ban_user :user => @morozovm, :admin => @morozovm }.to raise_error
+ @public_community.add_admin :user => @talisman, :admin => @morozovm
+ expect { @public_community.ban_user :user => @morozovm, :admin => @talisman }.to raise_error
+ @public_community.add_admin :user => @salkar, :admin => @morozovm
+ expect { @public_community.ban_user :user => @salkar, :admin => @talisman }.to raise_error
+ @public_community.ban_user :user => @salkar, :admin => @morozovm
+ expect { @public_community.ban_user :user => @salkar, :admin => @morozovm }.to raise_error
+ end
+
+ it "user should be unbanned" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_banned_user?(@salkar).should == false
+ @public_community.ban_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_banned_user?(@salkar).should == true
+ @public_community.unban_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_banned_user?(@salkar).should == false
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_banned_user?(@salkar).should == false
+ @private_community.ban_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == true
+ @private_community.unban_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == false
+ end
+
+ it "user should not be unbanned" do
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @talisman
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @talisman, :admin => @morozovm
+ @talisman.reload
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @private_community.ban_user :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ @morozovm.reload
+ @talisman.reload
+
+ expect { @private_community.unban_user :user => @spy, :admin => @morozovm }.to raise_error
+
+ expect { @private_community.unban_user :user => @salkar }.to raise_error
+ expect { @private_community.unban_user :admin => @morozovm }.to raise_error
+ expect { @private_community.unban_user :user => @salkar, :admin => @talisman }.to raise_error
+ end
+
+ it "admin should ban another user" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @public_community.add_admin :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ ActiveSupport::JSON.decode(@public_community.admins_info).index { |item| item['admin_id'] == @salkar.id }.should_not == nil
+ @public_community.include_banned_user?(@salkar).should == false
+ @morozovm.ban :user => @salkar, :in_community => @public_community
+ @public_community.reload
+ @public_community.include_banned_user?(@salkar).should == true
+ @public_community.include_user?(@salkar).should == false
+ ActiveSupport::JSON.decode(@public_community.admins_info).index { |item| item['admin_id'] == @salkar.id }.should == nil
+ end
+
+ it "user should unban another user" do
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_banned_user?(@salkar).should == false
+ @private_community.ban_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == true
+ @morozovm.unban :user => @salkar, :in_community => @private_community
+ @private_community.reload
+ @private_community.include_banned_user?(@salkar).should == false
+ end
+
+ it "user should muted another user" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_muted_user?(@salkar).should == false
+ @morozovm.mute :user => @salkar, :in_community => @public_community
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == true
+ end
+
+ it "user should unmute another user" do
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_muted_user?(@salkar).should == false
+ @private_community.mute_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == true
+ @morozovm.unmute :user => @salkar, :in_community => @private_community
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == false
+ end
+
+ it "muted user should not be able to add post to community" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_muted_user?(@salkar).should == false
+ @public_community.mute_user :user => @salkar, :admin => @morozovm
+ @public_community.reload
+ @public_community.include_muted_user?(@salkar).should == true
+ expect { @public_community.add_post :user => @salkar, :post => @salkar_post }.to raise_error
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_muted_user?(@salkar).should == false
+ @private_community.mute_user :user => @salkar, :admin => @morozovm
+ @private_community.reload
+ @private_community.include_muted_user?(@salkar).should == true
+ expect { @private_community.add_post :user => @salkar, :post => @salkar_post }.to raise_error
+ end
+
+ it "user should be writer in community (include_writer?)" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_writer?(@morozovm).should == true
+ @public_community.include_writer?(@salkar).should == true
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_writer?(@morozovm).should == true
+ @private_community.include_writer?(@salkar).should == true
+ end
+
+ it "user should not be writer in community (include_writer?)" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @public_community.default_user_access = 'r'
+ @public_community.save
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @public_community.include_writer?(@morozovm).should == true
+ @public_community.include_writer?(@salkar).should == false
+ @public_community.include_writer?(@talisman).should == false
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.default_user_access = 'r'
+ @private_community.save
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.include_writer?(@morozovm).should == true
+ @private_community.include_writer?(@salkar).should == false
+ @private_community.include_writer?(@talisman).should == false
+ end
+
+ it "user should be able to send post to community (can_send_post_to_community?)" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @morozovm.can_send_post_to_community?(@public_community).should == true
+ @salkar.can_send_post_to_community?(@public_community).should == true
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @morozovm.reload
+ @private_community.reload
+
+ @morozovm.can_send_post_to_community?(@private_community).should == true
+ @salkar.can_send_post_to_community?(@private_community).should == true
+ end
+
+ it "user should be able to send post to community (can_send_post_to_community?)" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+
+ @morozovm.mute :user => @salkar, :in_community => @public_community
+ @public_community.reload
+ @salkar.can_send_post_to_community?(@public_community).should == false
+ @talisman.can_send_post_to_community?(@public_community).should == false
+ @public_community.default_user_access = 'r'
+ @public_community.save
+ @talisman.join @public_community
+ @public_community.reload
+ @talisman.reload
+ @talisman.can_send_post_to_community?(@public_community).should == false
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.default_user_access = 'r'
+ @private_community.save
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @morozovm.mute :user => @salkar, :in_community => @private_community
+ @private_community.reload
+ @salkar.can_send_post_to_community?(@private_community).should == false
+ @talisman.can_send_post_to_community?(@private_community).should == false
+ @private_community.default_user_access = 'r'
+ @private_community.save
+ @private_community.create_invitation_request @talisman
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @talisman, :admin => @morozovm
+ @talisman.reload
+ @private_community.reload
+ @talisman.can_send_post_to_community?(@private_community).should == false
+ end
+
+ it "post should be sended to community" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @salkar.send_post_to_community :to_community => @public_community, :post => @salkar_post
+ @salkar_post.communities_row.should == [@public_community.id]
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ @salkar.send_post_to_community :to_community => @private_community, :post => @salkar_post
+ @salkar_post.communities_row.should == [@public_community.id, @private_community.id]
+ end
+
+ it "post should not be sended to community" do
+ @public_community_r = Community.create :name => "Community", :owner_id => @morozovm.id
+ @talisman.join @public_community_r
+ @public_community_r.default_user_access = 'r'
+ @public_community_r.save
+ @salkar.join @public_community_r
+ @salkar.reload
+ @public_community_r.reload
+ expect {@salkar.send_post_to_community :to_community => @public_community_r, :post => @salkar_post}.to raise_error
+ @salkar_post.communities_row.should == []
+
+ @private_community = Community.create :name => "Community", :owner_id => @morozovm.id, :public => false
+
+ @private_community.create_invitation_request @talisman
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @talisman, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+
+ @private_community.default_user_access = 'r'
+ @private_community.save
+ @private_community.create_invitation_request @salkar
+ @private_community.reload
+ @private_community.accept_invitation_request :user => @salkar, :admin => @morozovm
+ @salkar.reload
+ @private_community.reload
+ expect {@salkar.send_post_to_community :to_community => @private_community, :post => @salkar_post}.to raise_error
+ @salkar_post.communities_row.should == []
+
+ @spy_post = @spy.posts.create :body => "spy_post_test_body"
+ expect {@spy.send_post_to_community :to_community => @public_community_r, :post => @spy_post}.to raise_error
+ expect {@spy.send_post_to_community :to_community => @private_community, :post => @spy_post}.to raise_error
+
+ @talisman_post = @talisman.posts.create :body => "morozovm_post_test_body"
+ @morozovm.mute :user => @talisman, :in_community => @public_community_r
+ @morozovm.mute :user => @talisman, :in_community => @private_community
+ @public_community_r.reload
+ @private_community.reload
+ expect {@talisman.send_post_to_community :to_community => @public_community_r, :post => @talisman_post}.to raise_error
+ expect {@talisman.send_post_to_community :to_community => @private_community, :post => @talisman_post}.to raise_error
+ end
+
+ it "admin should be a writer" do
+ @public_community = Community.create :name => "Community", :owner_id => @morozovm.id
+ @public_community.default_user_access = 'r'
+ @public_community.save
+ @salkar.join @public_community
+ @salkar.reload
+ @public_community.reload
+ @morozovm.reload
+ @public_community.include_writer?(@salkar).should == false
+
+ @public_community.add_admin :admin => @morozovm, :user => @salkar
+ @public_community.reload
+ @salkar.reload
+ @public_community.include_writer?(@salkar).should == true
end
end
\ No newline at end of file