Commit 3da8991d18aed857ac9a2563c21af9aaa2914fbe
Exists in
master
and in
29 other branches
Merge commit 'refs/merge-requests/341' of git://gitorious.org/noosfero/noosfero …
…into merge-requests/341
Showing
2 changed files
with
26 additions
and
1 deletions
Show diff stats
lib/notify_activity_to_profiles_job.rb
@@ -10,7 +10,7 @@ class NotifyActivityToProfilesJob < Struct.new(:tracked_action_id) | @@ -10,7 +10,7 @@ class NotifyActivityToProfilesJob < Struct.new(:tracked_action_id) | ||
10 | return unless ActionTracker::Record.exists?(tracked_action_id) | 10 | return unless ActionTracker::Record.exists?(tracked_action_id) |
11 | tracked_action = ActionTracker::Record.find(tracked_action_id) | 11 | tracked_action = ActionTracker::Record.find(tracked_action_id) |
12 | target = tracked_action.target | 12 | target = tracked_action.target |
13 | - if target.is_a?(Community) && NOTIFY_ONLY_COMMUNITY.include?(tracked_action.verb) | 13 | + if target.is_a?(Community) && ( NOTIFY_ONLY_COMMUNITY.include?(tracked_action.verb) || ! target.public_profile ) |
14 | ActionTrackerNotification.create(:profile_id => target.id, :action_tracker_id => tracked_action.id) | 14 | ActionTrackerNotification.create(:profile_id => target.id, :action_tracker_id => tracked_action.id) |
15 | return | 15 | return |
16 | end | 16 | end |
test/unit/notify_activity_to_profiles_job_test.rb
@@ -88,6 +88,31 @@ class NotifyActivityToProfilesJobTest < ActiveSupport::TestCase | @@ -88,6 +88,31 @@ class NotifyActivityToProfilesJobTest < ActiveSupport::TestCase | ||
88 | end | 88 | end |
89 | end | 89 | end |
90 | 90 | ||
91 | + should 'notify only the community if it is private' do | ||
92 | + person = fast_create(Person) | ||
93 | + private_community = fast_create(Community, :public_profile => false) | ||
94 | + action_tracker = fast_create(ActionTracker::Record, :user_type => 'Profile', :user_id => person.id, :target_type => 'Profile', :target_id => private_community.id, :verb => 'create_article') | ||
95 | + assert !NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb) | ||
96 | + p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person) | ||
97 | + fast_create(Friendship, :person_id => person.id, :friend_id => p1.id) | ||
98 | + fast_create(Friendship, :person_id => person.id, :friend_id => p2.id) | ||
99 | + fast_create(RoleAssignment, :accessor_id => m1.id, :role_id => 3, :resource_id => private_community.id) | ||
100 | + fast_create(RoleAssignment, :accessor_id => m2.id, :role_id => 3, :resource_id => private_community.id) | ||
101 | + ActionTrackerNotification.delete_all | ||
102 | + job = NotifyActivityToProfilesJob.new(action_tracker.id) | ||
103 | + job.perform | ||
104 | + process_delayed_job_queue | ||
105 | + | ||
106 | + assert_equal 1, ActionTrackerNotification.count | ||
107 | + [person, p1, p2, m1, m2].each do |profile| | ||
108 | + notification = ActionTrackerNotification.find_by_profile_id profile.id | ||
109 | + assert notification.nil? | ||
110 | + end | ||
111 | + | ||
112 | + notification = ActionTrackerNotification.find_by_profile_id private_community.id | ||
113 | + assert_equal action_tracker, notification.action_tracker | ||
114 | + end | ||
115 | + | ||
91 | should 'not notify the community tracking join_community verb' do | 116 | should 'not notify the community tracking join_community verb' do |
92 | person = fast_create(Person) | 117 | person = fast_create(Person) |
93 | community = fast_create(Community) | 118 | community = fast_create(Community) |