From 1acfe65499b4f37a52817154db449955cf963d05 Mon Sep 17 00:00:00 2001 From: albert Date: Tue, 26 Feb 2013 22:45:56 -0800 Subject: [PATCH] fix score updates for favoriting --- app/models/post.rb | 2 ++ test/unit/post_test.rb | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 0ffede02d..76ef75139 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -491,6 +491,7 @@ class Post < ActiveRecord::Base return if favorited_by?(user.id) append_user_to_fav_string(user.id) increment!(:fav_count) + increment!(:score) if CurrentUser.is_privileged? user.add_favorite!(self) end @@ -501,6 +502,7 @@ class Post < ActiveRecord::Base def remove_favorite!(user) return unless favorited_by?(user.id) decrement!(:fav_count) + decrement!(:score) if CurrentUser.is_privileged? delete_user_from_fav_string(user.id) user.remove_favorite!(self) end diff --git a/test/unit/post_test.rb b/test/unit/post_test.rb index e91020cc7..aec42ffb7 100644 --- a/test/unit/post_test.rb +++ b/test/unit/post_test.rb @@ -567,7 +567,7 @@ class PostTest < ActiveSupport::TestCase context "Favorites:" do context "Removing a post from a user's favorites" do setup do - @user = FactoryGirl.create(:user) + @user = FactoryGirl.create(:contributor_user) CurrentUser.user = @user CurrentUser.ip_addr = "127.0.0.1" @post = FactoryGirl.create(:post) @@ -586,6 +586,21 @@ class PostTest < ActiveSupport::TestCase end end + should "decrement the post's score for privileged users" do + @post.remove_favorite!(@user) + @post.reload + assert_equal(0, @post.score) + end + + should "not decrement the post's score for basic users" do + @member = FactoryGirl.create(:user) + CurrentUser.scoped(@member, "127.0.0.1") do + @post.remove_favorite!(@user) + end + @post.reload + assert_equal(1, @post.score) + end + should "not decrement the user's favorite_count if the user did not favorite the post" do @post2 = FactoryGirl.create(:post) assert_difference("CurrentUser.favorite_count", 0) do @@ -597,7 +612,7 @@ class PostTest < ActiveSupport::TestCase context "Adding a post to a user's favorites" do setup do - @user = FactoryGirl.create(:user) + @user = FactoryGirl.create(:contributor_user) CurrentUser.user = @user CurrentUser.ip_addr = "127.0.0.1" @post = FactoryGirl.create(:post) @@ -615,6 +630,21 @@ class PostTest < ActiveSupport::TestCase end end + should "increment the post's score for privileged users" do + @post.add_favorite!(@user) + @post.reload + assert_equal(1, @post.score) + end + + should "not increment the post's score for basic users" do + @member = FactoryGirl.create(:user) + CurrentUser.scoped(@member, "127.0.0.1") do + @post.add_favorite!(@user) + end + @post.reload + assert_equal(0, @post.score) + end + should "update the fav strings ont he post" do @post.add_favorite!(@user) @post.reload @@ -963,3 +993,4 @@ class PostTest < ActiveSupport::TestCase end end end +