Commit 70f901d4685b58463325017dadf98ebd41931a98

Authored by Daniela Feitosa
1 parent 5aa38f73

Fixing tests

app/models/scrap.rb
... ... @@ -11,7 +11,7 @@ class Scrap < ActiveRecord::Base
11 11  
12 12 named_scope :not_replies, :conditions => {:scrap_id => nil}
13 13  
14   - track_actions :leave_scrap, :after_create, :keep_params => ['sender.name', 'content', 'receiver.name', 'receiver.url'], :if => Proc.new{|s| s.receiver != s.sender}
  14 + track_actions :leave_scrap, :after_create, :keep_params => ['sender.name', 'content', 'receiver.name', 'receiver.url'], :if => Proc.new{|s| s.receiver != s.sender}, :custom_target => :action_tracker_target
15 15 track_actions :leave_scrap_to_self, :after_create, :keep_params => ['sender.name', 'content'], :if => Proc.new{|s| s.receiver == s.sender}
16 16  
17 17 after_create do |scrap|
... ...
lib/notify_activity_to_profiles_job.rb
... ... @@ -19,7 +19,7 @@ class NotifyActivityToProfilesJob < Struct.new(:tracked_action_id)
19 19  
20 20 ActionTrackerNotification.connection.execute("insert into action_tracker_notifications(profile_id, action_tracker_id) select f.friend_id, #{tracked_action.id} from friendships as f where person_id=#{tracked_action.user.id} and f.friend_id not in (select atn.profile_id from action_tracker_notifications as atn where atn.action_tracker_id = #{tracked_action.id})")
21 21  
22   - if target.is_a?(Community)
  22 + if target.is_a?(Community) || (target.is_a?(Article) && target.profile.is_a?(Community))
23 23 ActionTrackerNotification.connection.execute("insert into action_tracker_notifications(profile_id, action_tracker_id) select distinct profiles.id, #{tracked_action.id} from role_assignments, profiles where profiles.type = 'Person' and profiles.id = role_assignments.accessor_id and profiles.id != #{tracked_action.user.id} and role_assignments.resource_type = 'Profile' and role_assignments.resource_id = #{target.id}")
24 24  
25 25 ActionTrackerNotification.create(:profile_id => target.id, :action_tracker_id => tracked_action.id) unless NOT_NOTIFY_COMMUNITY.include?(tracked_action.verb)
... ...
test/unit/action_tracker_notification_test.rb
... ... @@ -77,11 +77,27 @@ class ActionTrackerNotificationTest < ActiveSupport::TestCase
77 77 end
78 78  
79 79 should "have comments through action_tracker" do
80   - action = fast_create(ActionTracker::Record)
81   - notification = fast_create(ActionTrackerNotification, :action_tracker_id => action.id, :profile_id => 1)
  80 + person = fast_create(Person)
  81 + community = fast_create(Community)
  82 + community.add_member(person)
  83 + activity = ActionTracker::Record.last
  84 + process_delayed_job_queue
  85 + notification = ActionTrackerNotification.last
  86 +
  87 + comment = create(Comment, :source => activity, :author => person)
  88 +
  89 + assert_equal activity.comments, notification.comments
  90 + end
  91 +
  92 + should "have comments through article action_tracker" do
  93 + person = fast_create(Person)
  94 + article = create(TextileArticle, :profile_id => person.id)
  95 + process_delayed_job_queue
  96 + notification = ActionTrackerNotification.last
  97 +
  98 + comment = create(Comment, :source => article, :author => person)
82 99  
83   - comment = fast_create(Comment, :source_id => action.id)
84   - assert_equal action.comments, notification.comments
  100 + assert_equal article.activity.comments, notification.comments
85 101 end
86 102  
87 103 end
... ...
test/unit/approve_article_test.rb
... ... @@ -250,7 +250,7 @@ class ApproveArticleTest < ActiveSupport::TestCase
250 250 assert_equal 1, ActionTracker::Record.count
251 251 end
252 252  
253   - should 'notify with different trackers activity create with different targets' do
  253 + should 'not group trackers activity of article\'s creation' do
254 254 ActionTracker::Record.delete_all
255 255  
256 256 article = fast_create(TextileArticle)
... ... @@ -260,28 +260,29 @@ class ApproveArticleTest < ActiveSupport::TestCase
260 260 article = fast_create(TextileArticle)
261 261 a = ApproveArticle.create!(:name => 'another bar', :article => article, :target => community, :requestor => profile)
262 262 a.finish
263   - assert_equal 1, ActionTracker::Record.count
264 263  
265 264 article = fast_create(TextileArticle)
266 265 other_community = fast_create(Community)
267 266 a = ApproveArticle.create!(:name => 'another bar', :article => article, :target => other_community, :requestor => profile)
268 267 a.finish
269   - assert_equal 2, ActionTracker::Record.count
  268 + assert_equal 3, ActionTracker::Record.count
270 269 end
271 270  
272   - should 'notify activity on update' do
  271 + should 'update activity on update of an article' do
273 272 ActionTracker::Record.delete_all
274 273 a = ApproveArticle.create!(:name => 'bar', :article => article, :target => community, :requestor => profile)
275 274 a.finish
276   - assert_equal 1, ActionTracker::Record.count
277   -
278   - published = article.class.last
279   - published.name = 'foo'
280   - published.save!
281   - assert_equal 2, ActionTracker::Record.count
  275 + published = community.articles.find_by_name(a.name)
  276 + time = published.activity.updated_at
  277 + Time.stubs(:now).returns(time + 1.day)
  278 + assert_no_difference ActionTracker::Record, :count do
  279 + published.name = 'foo'
  280 + published.save!
  281 + end
  282 + assert_equal time + 1.day, published.activity.updated_at
282 283 end
283 284  
284   - should 'notify with different trackers activity update with different targets' do
  285 + should 'not create trackers activity when updating articles' do
285 286 ActionTracker::Record.delete_all
286 287 article1 = fast_create(TextileArticle)
287 288 a = ApproveArticle.create!(:name => 'bar', :article => article1, :target => community, :requestor => profile)
... ... @@ -293,16 +294,16 @@ class ApproveArticleTest < ActiveSupport::TestCase
293 294 a.finish
294 295 assert_equal 2, ActionTracker::Record.count
295 296  
296   - published = article1.class.last
297   - published.name = 'foo';published.save!
298   - assert_equal 3, ActionTracker::Record.count
299   -
300   - published = article2.class.last
301   - published.name = 'another foo';published.save!
302   - assert_equal 4, ActionTracker::Record.count
  297 + assert_no_difference ActionTracker::Record, :count do
  298 + published = article1.class.last
  299 + published.name = 'foo';published.save!
  300 +
  301 + published = article2.class.last
  302 + published.name = 'another foo';published.save!
  303 + end
303 304 end
304 305  
305   - should "the tracker action target be defined as Community by custom_target method on articles'creation in communities" do
  306 + should "the tracker action target be defined as the article on articles'creation in communities" do
306 307 ActionTracker::Record.delete_all
307 308 person = fast_create(Person)
308 309 community.add_member(person)
... ... @@ -310,17 +311,21 @@ class ApproveArticleTest < ActiveSupport::TestCase
310 311 a = ApproveArticle.create!(:article => article, :target => community, :requestor => profile)
311 312 a.finish
312 313  
313   - assert_equal Community, ActionTracker::Record.last.target.class
  314 + approved_article = community.articles.find_by_name(article.name)
  315 +
  316 + assert_equal approved_article, ActionTracker::Record.last.target
314 317 end
315 318  
316   - should "the tracker action target be defined as person by custom_target method on articles'creation in profile" do
  319 + should "the tracker action target be defined as the article on articles'creation in profile" do
317 320 ActionTracker::Record.delete_all
318 321 person = fast_create(Person)
319 322  
320 323 a = ApproveArticle.create!(:article => article, :target => person, :requestor => profile)
321 324 a.finish
322 325  
323   - assert_equal Person, ActionTracker::Record.last.target.class
  326 + approved_article = person.articles.find_by_name(article.name)
  327 +
  328 + assert_equal approved_article, ActionTracker::Record.last.target
324 329 end
325 330  
326 331 should "have the same is_trackable method as original article" do
... ...
test/unit/article_test.rb
... ... @@ -934,66 +934,31 @@ class ArticleTest < ActiveSupport::TestCase
934 934 end
935 935  
936 936 should 'track action when a published article is created outside a community' do
937   - article = TinyMceArticle.create! :name => 'Tracked Article', :profile_id => profile.id
938   - assert article.published?
939   - assert_kind_of Person, article.profile
940   - ta = ActionTracker::Record.last
941   - assert_equal 'Tracked Article', ta.get_name.last
942   - assert_equal article.url, ta.get_url.last
943   - assert_kind_of Person, ta.user
944   - ta.created_at = Time.now.ago(26.hours); ta.save!
945   - article = TinyMceArticle.create! :name => 'Another Tracked Article', :profile_id => profile.id
946   - ta = ActionTracker::Record.last
947   - assert_equal ['Another Tracked Article'], ta.get_name
948   - assert_equal [article.url], ta.get_url
  937 + article = create(TinyMceArticle, :profile_id => profile.id)
  938 + ta = article.activity
  939 + assert_equal article.name, ta.get_name
  940 + assert_equal article.url, ta.get_url
949 941 end
950 942  
951 943 should 'track action when a published article is created in a community' do
952 944 community = fast_create(Community)
953   - p1 = ActionTracker::Record.current_user_from_model
  945 + p1 = fast_create(Person)
954 946 p2 = fast_create(Person)
955 947 p3 = fast_create(Person)
956 948 community.add_member(p1)
957 949 community.add_member(p2)
958   - assert p1.is_member_of?(community)
959   - assert p2.is_member_of?(community)
960   - assert !p3.is_member_of?(community)
961 950 Article.destroy_all
962 951 ActionTracker::Record.destroy_all
963   - article = TinyMceArticle.create! :name => 'Tracked Article', :profile_id => community.id
964   - assert article.published?
965   - assert_kind_of Community, article.profile
966   - ta = ActionTracker::Record.last
967   - assert_equal 'Tracked Article', ta.get_name.last
968   - assert_equal article.url, ta.get_url.last
969   - assert_kind_of Person, ta.user
  952 + UserStampSweeper.any_instance.expects(:current_user).returns(p1).at_least_once
  953 + article = create(TinyMceArticle, :profile_id => community.id)
  954 +
970 955 process_delayed_job_queue
971   - assert_equal 3, ActionTrackerNotification.count
  956 + assert_equal 3, ActionTrackerNotification.all
972 957 ActionTrackerNotification.all.map{|a|a.profile}.map do |profile|
973 958 assert [p1,p2,community].include?(profile)
974 959 end
975 960 end
976 961  
977   - should 'track action when a published article is updated' do
978   - a = TinyMceArticle.create! :name => 'a', :profile_id => profile.id
979   - a.update_attributes! :name => 'b'
980   - ta = ActionTracker::Record.last
981   - assert_equal ['b'], ta.get_name
982   - assert_equal [a.reload.url], ta.get_url
983   - a.update_attributes! :name => 'c'
984   - ta = ActionTracker::Record.last
985   - assert_equal ['b','c'], ta.get_name
986   - assert_equal [a.url,a.reload.url], ta.get_url
987   - a.update_attributes! :body => 'test'
988   - ta = ActionTracker::Record.last
989   - assert_equal ['b','c','c'], ta.get_name
990   - assert_equal [a.url,a.reload.url,a.reload.url], ta.get_url
991   - a.update_attributes! :hits => 50
992   - ta = ActionTracker::Record.last
993   - assert_equal ['b','c','c'], ta.get_name
994   - assert_equal [a.url,a.reload.url,a.reload.url], ta.get_url
995   - end
996   -
997 962 should 'track action when a published article is removed' do
998 963 a = TinyMceArticle.create! :name => 'a', :profile_id => profile.id
999 964 a.destroy
... ... @@ -1022,13 +987,13 @@ class ArticleTest < ActiveSupport::TestCase
1022 987  
1023 988 should 'update action when comment is created' do
1024 989 article = create(TinyMceArticle, :profile => profile)
1025   - action = ActionTracker::Record.last
  990 + action = article.activity
1026 991 time = action.updated_at
1027 992  
1028 993 Time.stubs(:now).returns(time + 1.day)
1029 994  
1030   - article.comments << Comment.create(:name => 'Guest', :email => 'guest@example.com', :title => 'test comment', :body => 'hello!')
1031   - assert_not_equal time, ActionTracker::Record.last.updated_at
  995 + comment = create(Comment, :source => article, :author => profile)
  996 + assert_equal time + 1.day, article.activity.updated_at
1032 997 end
1033 998  
1034 999 should 'notifiable is false by default' do
... ... @@ -1162,36 +1127,17 @@ class ArticleTest &lt; ActiveSupport::TestCase
1162 1127 assert_equal 6, ActionTrackerNotification.count
1163 1128 end
1164 1129  
1165   - should 'not create more than one notification track action to friends when update more than one artile' do
1166   - p1 = Person.first || fast_create(Person)
  1130 + should 'create notifications to friends when creating an article' do
1167 1131 friend = fast_create(Person)
1168   - p1.add_friend(friend)
  1132 + profile.add_friend(friend)
1169 1133 Article.destroy_all
1170 1134 ActionTracker::Record.destroy_all
1171 1135 ActionTrackerNotification.destroy_all
1172   - article = TinyMceArticle.create! :name => 'Tracked Article 1', :profile_id => p1.id
1173   - assert article.published?
1174   - assert_kind_of Person, article.profile
1175   - assert_equal 1, ActionTracker::Record.count
1176   - ta = ActionTracker::Record.last
1177   - assert_equal 'Tracked Article 1', ta.get_name.last
1178   - assert_equal article.url, ta.get_url.last
1179   - assert p1, ta.user
1180   - assert p1, ta.target
1181   - process_delayed_job_queue
1182   - assert_equal 2, ActionTrackerNotification.count
  1136 + UserStampSweeper.any_instance.expects(:current_user).returns(profile).at_least_once
  1137 + article = create(TinyMceArticle, :profile_id => profile.id)
1183 1138  
1184   - article = TinyMceArticle.create! :name => 'Tracked Article 2', :profile_id => p1.id
1185   - assert article.published?
1186   - assert_kind_of Person, article.profile
1187   - assert_equal 1, ActionTracker::Record.count
1188   - ta = ActionTracker::Record.last
1189   - assert_equal 'Tracked Article 2', ta.get_name.last
1190   - assert_equal article.url, ta.get_url.last
1191   - assert_equal p1, ta.user
1192   - assert_equal p1, ta.target
1193 1139 process_delayed_job_queue
1194   - assert_equal 2, ActionTrackerNotification.count
  1140 + assert_equal friend, ActionTrackerNotification.last.profile
1195 1141 end
1196 1142  
1197 1143 should 'create the notification to the friend when one friend has the notification and the other no' do
... ... @@ -1582,7 +1528,7 @@ class ArticleTest &lt; ActiveSupport::TestCase
1582 1528 should 'survive to a invalid src attribute while looking for images in body' do
1583 1529 article = Article.new(:body => "An article with invalid src in img tag <img src='path with spaces.png' />", :profile => @profile)
1584 1530 assert_nothing_raised URI::InvalidURIError do
1585   - assert_equal ['http://localhost/path%20with%20spaces.png'], article.body_images_paths
  1531 + assert_equal ["http://#{profile.environment.default_hostname}/path%20with%20spaces.png"], article.body_images_paths
1586 1532 end
1587 1533 end
1588 1534  
... ...
test/unit/comment_test.rb
... ... @@ -74,11 +74,13 @@ class CommentTest &lt; ActiveSupport::TestCase
74 74 assert_equal cc + 1, Article.find(art.id).comments_count
75 75 end
76 76  
77   - should 'update counter cache in activity' do
78   - action = fast_create(ActionTracker::Record)
79   - cc = action.comments_count
80   - comment = fast_create(Comment, :source_id => action.id)
  77 + should 'update counter cache in article activity' do
  78 + owner = create_user('testuser').person
  79 + article = create(TextileArticle, :profile_id => owner.id)
81 80  
  81 + action = article.activity
  82 + cc = action.comments_count
  83 + comment = create(Comment, :source => action, :author_id => owner.id)
82 84 assert_equal cc + 1, ActionTracker::Record.find(action.id).comments_count
83 85 end
84 86  
... ...
test/unit/community_test.rb
... ... @@ -345,7 +345,7 @@ class CommunityTest &lt; ActiveSupport::TestCase
345 345 scrap = Scrap.create!(defaults_for_scrap(:sender => person, :receiver => community, :content => 'A scrap'))
346 346 activity = ActionTracker::Record.last
347 347  
348   - assert_equal [scrap], community.activities.map { |a| a.klass.constantize.find(a.id) }
  348 + assert_equal [activity,scrap], community.activities.map { |a| a.klass.constantize.find(a.id) }
349 349 end
350 350  
351 351 should 'return tracked_actions of community as activities' do
... ...
test/unit/notify_activity_to_profiles_job_test.rb
... ... @@ -24,28 +24,6 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase
24 24 end
25 25 end
26 26  
27   - should 'notify just the community in tracker with remove_member_in_community verb' do
28   - person = fast_create(Person)
29   - community = fast_create(Community)
30   - action_tracker = fast_create(ActionTracker::Record, :user_type => 'Profile', :user_id => person.id, :target_type => 'Profile', :target_id => community.id, :verb => 'remove_member_in_community')
31   - assert NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb)
32   - p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person)
33   - fast_create(Friendship, :person_id => person.id, :friend_id => p1.id)
34   - fast_create(Friendship, :person_id => person.id, :friend_id => p2.id)
35   - fast_create(RoleAssignment, :accessor_id => m1.id, :role_id => 3, :resource_id => community.id)
36   - fast_create(RoleAssignment, :accessor_id => m2.id, :role_id => 3, :resource_id => community.id)
37   - ActionTrackerNotification.delete_all
38   - job = NotifyActivityToProfilesJob.new(action_tracker.id)
39   - job.perform
40   - process_delayed_job_queue
41   -
42   - assert_equal 1, ActionTrackerNotification.count
43   - [community].each do |profile|
44   - notification = ActionTrackerNotification.find_by_profile_id profile.id
45   - assert_equal action_tracker, notification.action_tracker
46   - end
47   - end
48   -
49 27 should 'notify just the users and his friends tracking user actions' do
50 28 person = fast_create(Person)
51 29 community = fast_create(Community)
... ... @@ -132,36 +110,14 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase
132 110 end
133 111 end
134 112  
135   - should 'not notify the community tracking leave_community verb' do
136   - person = fast_create(Person)
137   - community = fast_create(Community)
138   - action_tracker = fast_create(ActionTracker::Record, :user_type => 'Profile', :user_id => person.id, :target_type => 'Profile', :target_id => community.id, :verb => 'leave_community')
139   - assert !NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb)
140   - p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person)
141   - fast_create(Friendship, :person_id => person.id, :friend_id => p1.id)
142   - fast_create(Friendship, :person_id => person.id, :friend_id => p2.id)
143   - fast_create(RoleAssignment, :accessor_id => m1.id, :role_id => 3, :resource_id => community.id)
144   - fast_create(RoleAssignment, :accessor_id => m2.id, :role_id => 3, :resource_id => community.id)
145   - ActionTrackerNotification.delete_all
146   - job = NotifyActivityToProfilesJob.new(action_tracker.id)
147   - job.perform
148   - process_delayed_job_queue
149   -
150   - assert_equal 5, ActionTrackerNotification.count
151   - [person, p1, p2, m1, m2].each do |profile|
152   - notification = ActionTrackerNotification.find_by_profile_id profile.id
153   - assert_equal action_tracker, notification.action_tracker
154   - end
155   - end
156   -
157 113 should "the NOTIFY_ONLY_COMMUNITY constant has all the verbs tested" do
158   - notify_community_verbs = ['add_member_in_community', 'remove_member_in_community']
  114 + notify_community_verbs = ['add_member_in_community']
159 115 assert_equal [], notify_community_verbs - NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY
160 116 assert_equal [], NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY - notify_community_verbs
161 117 end
162 118  
163 119 should "the NOT_NOTIFY_COMMUNITY constant has all the verbs tested" do
164   - not_notify_community_verbs = ['join_community', 'leave_community']
  120 + not_notify_community_verbs = ['join_community']
165 121 assert_equal [], not_notify_community_verbs - NotifyActivityToProfilesJob::NOT_NOTIFY_COMMUNITY
166 122 assert_equal [], NotifyActivityToProfilesJob::NOT_NOTIFY_COMMUNITY - not_notify_community_verbs
167 123 end
... ...
test/unit/textile_article_test.rb
... ... @@ -38,80 +38,72 @@ class TextileArticleTest &lt; ActiveSupport::TestCase
38 38 assert_equal 1, ActionTracker::Record.count
39 39 end
40 40  
41   - should 'notify with different trackers activity create with different targets' do
  41 + should 'not group trackers activity of article\'s creation' do
42 42 ActionTracker::Record.delete_all
43 43 profile = fast_create(Profile)
44 44 TextileArticle.create! :name => 'bar', :profile_id => profile.id, :published => true
45 45 TextileArticle.create! :name => 'another bar', :profile_id => profile.id, :published => true
46   - assert_equal 1, ActionTracker::Record.count
47 46 TextileArticle.create! :name => 'another bar', :profile_id => fast_create(Profile).id, :published => true
48   - assert_equal 2, ActionTracker::Record.count
  47 + assert_equal 3, ActionTracker::Record.count
49 48 end
50 49  
51   - should 'notify activity on update' do
  50 + should 'update activity on update of an article' do
52 51 ActionTracker::Record.delete_all
53   - a = TextileArticle.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true
54   - assert_equal 1, ActionTracker::Record.count
55   - a.name = 'foo'
56   - a.save!
57   - assert_equal 2, ActionTracker::Record.count
  52 + profile = fast_create(Profile)
  53 + article = create(TextileArticle, :profile_id => profile.id)
  54 + time = article.activity.updated_at
  55 + Time.stubs(:now).returns(time + 1.day)
  56 + assert_no_difference ActionTracker::Record, :count do
  57 + article.name = 'foo'
  58 + article.save!
  59 + end
  60 + assert_equal time + 1.day, article.activity.updated_at
58 61 end
59 62  
60   - should 'notify with different trackers activity update with different targets' do
  63 + should 'not create trackers activity when updating articles' do
61 64 ActionTracker::Record.delete_all
62 65 a1 = TextileArticle.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true
63 66 a2 = TextileArticle.create! :name => 'another bar', :profile_id => fast_create(Profile).id, :published => true
64   - assert_equal 2, ActionTracker::Record.count
65   - a1.name = 'foo'
66   - a1.save!
67   - assert_equal 3, ActionTracker::Record.count
68   - a2.name = 'another foo'
69   - a2.save!
70   - assert_equal 4, ActionTracker::Record.count
  67 + assert_no_difference ActionTracker::Record, :count do
  68 + a1.name = 'foo';a1.save!
  69 + a2.name = 'another foo';a2.save!
  70 + end
71 71 end
72 72  
73   - should 'notify activity on destroy' do
  73 + should 'not notify activity on destroy' do
74 74 ActionTracker::Record.delete_all
75 75 a = TextileArticle.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true
76   - assert_equal 1, ActionTracker::Record.count
77   - a.destroy
78   - assert_equal 2, ActionTracker::Record.count
  76 + assert_no_difference ActionTracker::Record, :count do
  77 + a.destroy
  78 + end
79 79 end
80 80  
81   - should 'notify different activities when destroy articles with diferrents targets' do
  81 + should 'not notify when an article is destroyed' do
82 82 ActionTracker::Record.delete_all
83 83 a1 = TextileArticle.create! :name => 'bar', :profile_id => fast_create(Profile).id, :published => true
84 84 a2 = TextileArticle.create! :name => 'another bar', :profile_id => fast_create(Profile).id, :published => true
85 85 assert_equal 2, ActionTracker::Record.count
86   - a1.destroy
87   - assert_equal 3, ActionTracker::Record.count
88   - a2.destroy
89   - assert_equal 4, ActionTracker::Record.count
  86 + assert_no_difference ActionTracker::Record, :count do
  87 + a1.destroy
  88 + a2.destroy
  89 + end
90 90 end
91 91  
92   - should "the tracker action target be defined as Community by custom_target method on articles'creation in communities" do
  92 + should "the tracker action target be defined as the article on articles'creation in communities" do
93 93 ActionTracker::Record.delete_all
94 94 community = fast_create(Community)
95 95 p1 = Person.first
96 96 community.add_member(p1)
97 97 assert p1.is_member_of?(community)
98 98 article = TextileArticle.create! :name => 'test', :profile_id => community.id
99   - assert_equal true, article.published?
100   - assert_equal true, article.notifiable?
101   - assert_equal false, article.image?
102   - assert_equal Community, article.profile.class
103   - assert_equal Community, ActionTracker::Record.last.target.class
  99 + assert_equal article, ActionTracker::Record.last.target
104 100 end
105 101  
106   - should "the tracker action target be defined as person by custom_target method on articles'creation in profile" do
  102 + should "the tracker action target be defined as the article on articles'creation in profile" do
107 103 ActionTracker::Record.delete_all
108 104 person = Person.first
109 105 article = TextileArticle.create! :name => 'test', :profile_id => person.id
110   - assert_equal true, article.published?
111   - assert_equal true, article.notifiable?
112   - assert_equal false, article.image?
113   - assert_equal Person, article.profile.class
114   - assert_equal person, ActionTracker::Record.last.target
  106 + assert_equal article, ActionTracker::Record.last.target
115 107 end
116 108  
117 109 should 'not notify activity if the article is not advertise' do
... ...
test/unit/tiny_mce_article_test.rb
... ... @@ -147,7 +147,7 @@ class TinyMceArticleTest &lt; ActiveSupport::TestCase
147 147 should 'update activity on update of an article' do
148 148 ActionTracker::Record.delete_all
149 149 profile = fast_create(Profile)
150   - article = create(TextileArticle, :profile_id => profile.id)
  150 + article = create(TinyMceArticle, :profile_id => profile.id)
151 151 time = article.activity.updated_at
152 152 Time.stubs(:now).returns(time + 1.day)
153 153 assert_no_difference ActionTracker::Record, :count do
... ...
vendor/plugins/action_tracker_has_comments/init.rb
... ... @@ -2,7 +2,7 @@
2 2  
3 3 ActionTracker::Record.module_eval do
4 4  
5   - has_many :comments, :class_name => 'Comment', :dependent => :destroy, :finder_sql => 'SELECT * FROM comments WHERE #{conditions_for_comments} ORDER BY created_at ASC'
  5 + has_many :comments, :class_name => 'Comment', :foreign_key => 'source_id', :dependent => :destroy, :finder_sql => 'SELECT * FROM comments WHERE #{conditions_for_comments} ORDER BY created_at ASC'
6 6  
7 7 def conditions_for_comments
8 8 type, id = (self.target_type == 'Article' ? ['Article', self.target_id] : [self.class.to_s, self.id])
... ...