Commit 286e4b52a330b57f75a613143f1eff6f060d76e3

Authored by Rodrigo Souto
1 parent bc5af220

rails3: fix person tests

PS: tests failing due to birth_date lib and action_tracker problem
app/models/article.rb
... ... @@ -147,7 +147,7 @@ class Article < ActiveRecord::Base
147 147 self.profile
148 148 end
149 149  
150   - def self.human_attribute_name(attrib)
  150 + def self.human_attribute_name(attrib, options = {})
151 151 case attrib.to_sym
152 152 when :name
153 153 _('Title')
... ...
app/models/person.rb
... ... @@ -158,8 +158,9 @@ class Person < Profile
158 158 FIELDS
159 159 end
160 160  
161   - def validate
162   - super
  161 + validate :presence_of_required_fields
  162 +
  163 + def presence_of_required_fields
163 164 self.required_fields.each do |field|
164 165 if self.send(field).blank?
165 166 unless (field == 'custom_area_of_study' && self.area_of_study != 'Others') || (field == 'custom_formation' && self.formation != 'Others')
... ...
app/models/task.rb
... ... @@ -235,6 +235,29 @@ class Task < ActiveRecord::Base
235 235 end
236 236 end
237 237  
  238 + scope :pending, :conditions => { :status => Task::Status::ACTIVE }
  239 + scope :hidden, :conditions => { :status => Task::Status::HIDDEN }
  240 + scope :finished, :conditions => { :status => Task::Status::FINISHED }
  241 + scope :canceled, :conditions => { :status => Task::Status::CANCELLED }
  242 + scope :closed, :conditions => { :status => [Task::Status::CANCELLED, Task::Status::FINISHED] }
  243 + scope :opened, :conditions => { :status => [Task::Status::ACTIVE, Task::Status::HIDDEN] }
  244 + scope :of, lambda { |type| conditions = type ? "type LIKE '#{type}'" : "1=1"; {:conditions => [conditions]} }
  245 + scope :order_by, lambda { |attribute, ord| {:order => "#{attribute} #{ord}"} }
  246 +
  247 + scope :to, lambda { |profile|
  248 + environment_condition = nil
  249 + if profile.person?
  250 + envs_ids = Environment.find(:all).select{ |env| profile.is_admin?(env) }.map { |env| "target_id = #{env.id}"}.join(' OR ')
  251 + environment_condition = envs_ids.blank? ? nil : "(target_type = 'Environment' AND (#{envs_ids}))"
  252 + end
  253 + profile_condition = "(target_type = 'Profile' AND target_id = #{profile.id})"
  254 + { :conditions => [environment_condition, profile_condition].compact.join(' OR ') }
  255 + }
  256 +
  257 + def opened?
  258 + status == Task::Status::ACTIVE || status == Task::Status::HIDDEN
  259 + end
  260 +
238 261 protected
239 262  
240 263 # This method must be overrided in subclasses, and its implementation must do
... ... @@ -266,29 +289,6 @@ class Task < ActiveRecord::Base
266 289 end
267 290 end
268 291  
269   - scope :pending, :conditions => { :status => Task::Status::ACTIVE }
270   - scope :hidden, :conditions => { :status => Task::Status::HIDDEN }
271   - scope :finished, :conditions => { :status => Task::Status::FINISHED }
272   - scope :canceled, :conditions => { :status => Task::Status::CANCELLED }
273   - scope :closed, :conditions => { :status => [Task::Status::CANCELLED, Task::Status::FINISHED] }
274   - scope :opened, :conditions => { :status => [Task::Status::ACTIVE, Task::Status::HIDDEN] }
275   - scope :of, lambda { |type| conditions = type ? "type LIKE '#{type}'" : "1=1"; {:conditions => [conditions]} }
276   - scope :order_by, lambda { |attribute, ord| {:order => "#{attribute} #{ord}"} }
277   -
278   - scope :to, lambda { |profile|
279   - environment_condition = nil
280   - if profile.person?
281   - envs_ids = Environment.find(:all).select{ |env| profile.is_admin?(env) }.map { |env| "target_id = #{env.id}"}.join(' OR ')
282   - environment_condition = envs_ids.blank? ? nil : "(target_type = 'Environment' AND (#{envs_ids}))"
283   - end
284   - profile_condition = "(target_type = 'Profile' AND target_id = #{profile.id})"
285   - { :conditions => [environment_condition, profile_condition].compact.join(' OR ') }
286   - }
287   -
288   - def opened?
289   - status == Task::Status::ACTIVE || status == Task::Status::HIDDEN
290   - end
291   -
292 292 class << self
293 293  
294 294 # generates a random code string consisting of length characters (or 36 by
... ...
test/unit/person_test.rb
... ... @@ -5,7 +5,7 @@ class PersonTest &lt; ActiveSupport::TestCase
5 5 fixtures :profiles, :users, :environments
6 6  
7 7 def test_person_must_come_form_the_cration_of_an_user
8   - p = Person.new(:environment => Environment.default, :name => 'John', :identifier => 'john')
  8 + p = build(Person, :environment => Environment.default, :name => 'John', :identifier => 'john')
9 9 assert !p.valid?
10 10 p.user = create_user('john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe')
11 11 assert !p.valid?
... ... @@ -14,22 +14,22 @@ class PersonTest &lt; ActiveSupport::TestCase
14 14 end
15 15  
16 16 def test_can_associate_to_a_profile
17   - pr = Profile.new(:identifier => 'mytestprofile', :name => 'My test profile')
  17 + pr = build(Profile, :identifier => 'mytestprofile', :name => 'My test profile')
18 18 pr.save!
19 19 pe = create_user('person', :email => 'person@test.net', :password => 'dhoe', :password_confirmation => 'dhoe').person
20 20 pe.save!
21   - member_role = Role.create(:name => 'somerandomrole')
  21 + member_role = create(Role, :name => 'somerandomrole')
22 22 pr.affiliate(pe, member_role)
23 23  
24 24 assert pe.memberships.include?(pr)
25 25 end
26 26  
27 27 def test_can_belong_to_an_enterprise
28   - e = Enterprise.new(:identifier => 'enterprise', :name => 'enterprise')
  28 + e = build(Enterprise, :identifier => 'enterprise', :name => 'enterprise')
29 29 e.save!
30 30 p = create_user('person', :email => 'person@test.net', :password => 'dhoe', :password_confirmation => 'dhoe').person
31 31 p.save!
32   - member_role = Role.create(:name => 'somerandomrole')
  32 + member_role = create(Role, :name => 'somerandomrole')
33 33 e.affiliate(p, member_role)
34 34  
35 35 assert p.memberships.include?(e)
... ... @@ -46,7 +46,7 @@ class PersonTest &lt; ActiveSupport::TestCase
46 46 end
47 47  
48 48 should 'be associated with a user' do
49   - u = User.new(:login => 'john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe')
  49 + u = build(User, :login => 'john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe')
50 50 u.save!
51 51 assert_equal u, Person['john'].user
52 52 end
... ... @@ -57,21 +57,21 @@ class PersonTest &lt; ActiveSupport::TestCase
57 57 p1 = u.person
58 58 assert_equal u, p1.user
59 59  
60   - p2 = Person.new(:environment => Environment.default)
  60 + p2 = build(Person, :environment => Environment.default)
61 61 p2.user = u
62 62 assert !p2.valid?
63 63 assert p2.errors[:user_id.to_s].present?
64 64 end
65 65  
66 66 should "have person info fields" do
67   - p = Person.new(:environment => Environment.default)
  67 + p = build(Person, :environment => Environment.default)
68 68 [ :name, :photo, :contact_information, :birth_date, :sex, :address, :city, :state, :country, :zip_code, :image, :district, :address_reference ].each do |i|
69 69 assert_respond_to p, i
70 70 end
71 71 end
72 72  
73 73 should 'not have person_info class' do
74   - p = Person.new(:environment => Environment.default)
  74 + p = build(Person, :environment => Environment.default)
75 75 assert_raise NoMethodError do
76 76 p.person_info
77 77 end
... ... @@ -80,9 +80,9 @@ class PersonTest &lt; ActiveSupport::TestCase
80 80 should 'change the roles of the user' do
81 81 p = create_user('jonh', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe').person
82 82 e = fast_create(Enterprise)
83   - r1 = Role.create(:name => 'associate')
  83 + r1 = create(Role, :name => 'associate')
84 84 assert e.affiliate(p, r1)
85   - r2 = Role.create(:name => 'partner')
  85 + r2 = create(Role, :name => 'partner')
86 86 assert p.define_roles([r2], e)
87 87 p = Person.find(p.id)
88 88 assert p.role_assignments.any? {|ra| ra.role == r2}
... ... @@ -91,7 +91,7 @@ class PersonTest &lt; ActiveSupport::TestCase
91 91  
92 92 should 'report that the user has the permission' do
93 93 p = create_user('john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe').person
94   - r = Role.create(:name => 'associate', :permissions => ['edit_profile'])
  94 + r = create(Role, :name => 'associate', :permissions => ['edit_profile'])
95 95 e = fast_create(Enterprise)
96 96 assert e.affiliate(p, r)
97 97 p = Person.find(p.id)
... ... @@ -106,7 +106,7 @@ class PersonTest &lt; ActiveSupport::TestCase
106 106 end
107 107  
108 108 should 'get no email address when there is no associated user' do
109   - p = Person.new(:environment => Environment.default)
  109 + p = build(Person, :environment => Environment.default)
110 110 assert_nil p.email
111 111 end
112 112  
... ... @@ -134,7 +134,7 @@ class PersonTest &lt; ActiveSupport::TestCase
134 134 other.email = 'user@domain.com'
135 135 other.valid?
136 136 assert other.errors[:email.to_s].present?
137   - assert_no_match /\{fn\}/, other.errors.on(:email)
  137 + assert_no_match /\{fn\}/, other.errors[:email].first
138 138 end
139 139  
140 140 should 'be able to use an e-mail already used in other environment' do
... ... @@ -148,7 +148,7 @@ class PersonTest &lt; ActiveSupport::TestCase
148 148 end
149 149  
150 150 should 'be an admin if have permission of environment administration' do
151   - role = Role.create!(:name => 'just_another_admin_role')
  151 + role = create(Role, :name => 'just_another_admin_role')
152 152 env = fast_create(Environment)
153 153 person = create_user('just_another_person').person
154 154 env.affiliate(person, role)
... ... @@ -163,7 +163,7 @@ class PersonTest &lt; ActiveSupport::TestCase
163 163 env2 = fast_create(Environment)
164 164  
165 165 # role is an admin role
166   - role = Role.create!(:name => 'just_another_admin_role')
  166 + role = create(Role, :name => 'just_another_admin_role')
167 167 role.update_attributes(:permissions => ['view_environment_admin_panel'])
168 168  
169 169 # user is admin of env1, but not of env2
... ... @@ -176,15 +176,16 @@ class PersonTest &lt; ActiveSupport::TestCase
176 176 end
177 177  
178 178 should 'create a default set of articles' do
179   - Person.any_instance.stubs(:default_set_of_articles).returns([Blog.new(:name => 'blog')])
180   - person = create_user_full('mytestuser').person
  179 + blog = build(Blog)
  180 + Person.any_instance.stubs(:default_set_of_articles).returns([blog])
  181 + person = create(User).person
181 182  
182   - assert_kind_of Blog, person.articles.find_by_path('blog')
183   - assert_kind_of RssFeed, person.articles.find_by_path('blog/feed')
  183 + assert_kind_of Blog, person.articles.find_by_path(blog.path)
  184 + assert_kind_of RssFeed, person.articles.find_by_path(blog.feed.path)
184 185 end
185 186  
186 187 should 'create a default set of blocks' do
187   - p = create_user_full('testingblocks').person
  188 + p = create(User).person
188 189  
189 190 assert !p.boxes[0].blocks.empty?, 'person must have blocks in area 1'
190 191 assert !p.boxes[1].blocks.empty?, 'person must have blocks in area 2'
... ... @@ -192,7 +193,7 @@ class PersonTest &lt; ActiveSupport::TestCase
192 193 end
193 194  
194 195 should 'link to all articles created by default' do
195   - p = create_user_full('testingblocks').person
  196 + p = create(User).person
196 197 blocks = p.blocks.select { |b| b.is_a?(LinkListBlock) }
197 198 p.articles.reject { |a| a.is_a?(RssFeed) }.each do |article|
198 199 path = '/' + p.identifier + '/' + article.path
... ... @@ -213,22 +214,21 @@ class PersonTest &lt; ActiveSupport::TestCase
213 214 p1.add_friend(p3)
214 215  
215 216 assert_equal [p2,p3], p1.friends(true) # force reload
216   -
217 217 end
218 218  
219 219 should 'suggest default friend groups list' do
220   - p = Person.new(:environment => Environment.default)
  220 + p = build(Person, :environment => Environment.default)
221 221 assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups
222 222 end
223 223  
224 224 should 'suggest current groups as well' do
225   - p = Person.new(:environment => Environment.default)
  225 + p = build(Person, :environment => Environment.default)
226 226 p.expects(:friend_groups).returns(['group1', 'group2'])
227 227 assert_equivalent [ 'friends', 'work', 'school', 'family', 'group1', 'group2' ], p.suggested_friend_groups
228 228 end
229 229  
230 230 should 'accept nil friend groups when suggesting friend groups' do
231   - p = Person.new(:environment => Environment.default)
  231 + p = build(Person, :environment => Environment.default)
232 232 p.expects(:friend_groups).returns([nil])
233 233 assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups
234 234 end
... ... @@ -309,29 +309,29 @@ class PersonTest &lt; ActiveSupport::TestCase
309 309 end
310 310  
311 311 should 'provide desired info fields' do
312   - p = Person.new(:environment => Environment.default)
  312 + p = build(Person, :environment => Environment.default)
313 313 assert p.respond_to?(:photo)
314 314 assert p.respond_to?(:address)
315 315 assert p.respond_to?(:contact_information)
316 316 end
317 317  
318 318 should 'required name' do
319   - person = Person.new(:environment => Environment.default)
  319 + person = Person.new
320 320 assert !person.valid?
321   - assert person.errors[:name.to_s].present?
  321 + assert person.errors[:name].present?
322 322 end
323 323  
324 324 should 'already request friendship' do
325 325 p1 = create_user('testuser1').person
326 326 p2 = create_user('testuser2').person
327   - AddFriend.create!(:person => p1, :friend => p2)
  327 + create(AddFriend, :person => p1, :friend => p2)
328 328 assert p1.already_request_friendship?(p2)
329 329 end
330 330  
331 331 should 'have e-mail addresses' do
332 332 env = fast_create(Environment)
333   - env.domains << Domain.new(:name => 'somedomain.com')
334   - person = Person.new(:environment => env, :identifier => 'testuser')
  333 + env.domains << build(Domain, :name => 'somedomain.com')
  334 + person = build(Person, :environment => env, :identifier => 'testuser')
335 335 person.expects(:environment).returns(env)
336 336  
337 337 assert_equal ['testuser@somedomain.com'], person.email_addresses
... ... @@ -339,9 +339,9 @@ class PersonTest &lt; ActiveSupport::TestCase
339 339  
340 340 should 'not show www in e-mail addresses when force_www=true' do
341 341 env = fast_create(Environment)
342   - env.domains << Domain.new(:name => 'somedomain.com')
  342 + env.domains << build(Domain, :name => 'somedomain.com')
343 343 env.update_attribute(:force_www, true)
344   - person = Person.new(:environment => env, :identifier => 'testuser')
  344 + person = build(Person, :environment => env, :identifier => 'testuser')
345 345 person.expects(:environment).returns(env)
346 346  
347 347 assert_equal ['testuser@somedomain.com'], person.email_addresses
... ... @@ -366,7 +366,7 @@ class PersonTest &lt; ActiveSupport::TestCase
366 366 end
367 367  
368 368 should 'have a default person template' do
369   - env = Environment.create!(:name => 'test env')
  369 + env = create(Environment, :name => 'test env')
370 370 p = create_user('test_user', :environment => env).person
371 371 assert_kind_of Person, p.template
372 372 end
... ... @@ -375,7 +375,7 @@ class PersonTest &lt; ActiveSupport::TestCase
375 375 p = create_user('test_profile').person
376 376  
377 377 assert_no_difference Task, :count do
378   - Task.create(:requestor => p)
  378 + create(Task, :requestor => p)
379 379 p.destroy
380 380 end
381 381 end
... ... @@ -437,7 +437,7 @@ class PersonTest &lt; ActiveSupport::TestCase
437 437 should 'return active_person_fields' do
438 438 e = Environment.default
439 439 e.expects(:active_person_fields).returns(['cell_phone', 'comercial_phone']).at_least_once
440   - person = Person.new(:environment => e)
  440 + person = build(Person, :environment => e)
441 441  
442 442 assert_equal e.active_person_fields, person.active_fields
443 443 end
... ... @@ -445,7 +445,7 @@ class PersonTest &lt; ActiveSupport::TestCase
445 445 should 'return email as active_person_fields' do
446 446 e = Environment.default
447 447 e.expects(:active_person_fields).returns(['nickname']).at_least_once
448   - person = Person.new(:environment => e)
  448 + person = build(Person, :environment => e)
449 449  
450 450 assert_equal ['nickname', 'email'], person.active_fields
451 451 end
... ... @@ -453,7 +453,7 @@ class PersonTest &lt; ActiveSupport::TestCase
453 453 should 'return required_person_fields' do
454 454 e = Environment.default
455 455 e.expects(:required_person_fields).returns(['cell_phone', 'comercial_phone']).at_least_once
456   - person = Person.new(:environment => e)
  456 + person = build(Person, :environment => e)
457 457  
458 458 assert_equal e.required_person_fields, person.required_fields
459 459 end
... ... @@ -461,7 +461,7 @@ class PersonTest &lt; ActiveSupport::TestCase
461 461 should 'require fields if person needs' do
462 462 e = Environment.default
463 463 e.expects(:required_person_fields).returns(['cell_phone']).at_least_once
464   - person = Person.new(:environment => e)
  464 + person = build(Person, :environment => e)
465 465 assert ! person.valid?
466 466 assert person.errors[:cell_phone.to_s].present?
467 467  
... ... @@ -474,7 +474,7 @@ class PersonTest &lt; ActiveSupport::TestCase
474 474 e = Environment.default
475 475 e.expects(:required_person_fields).returns(['area_of_study', 'custom_area_of_study']).at_least_once
476 476  
477   - person = Person.new(:environment => e, :area_of_study => 'Others')
  477 + person = build(Person, :environment => e, :area_of_study => 'Others')
478 478 assert !person.valid?
479 479 assert person.errors[:custom_area_of_study.to_s].present?
480 480  
... ... @@ -487,7 +487,7 @@ class PersonTest &lt; ActiveSupport::TestCase
487 487 e = Environment.default
488 488 e.expects(:required_person_fields).returns(['area_of_study']).at_least_once
489 489  
490   - person = Person.new(:environment => e, :area_of_study => 'Agrometeorology')
  490 + person = build(Person, :environment => e, :area_of_study => 'Agrometeorology')
491 491 person.valid?
492 492 assert ! person.errors[:custom_area_of_study.to_s].present?
493 493 end
... ... @@ -496,7 +496,7 @@ class PersonTest &lt; ActiveSupport::TestCase
496 496 e = Environment.default
497 497 e.expects(:required_person_fields).returns(['formation', 'custom_formation']).at_least_once
498 498  
499   - person = Person.new(:environment => e, :formation => 'Others')
  499 + person = build(Person, :environment => e, :formation => 'Others')
500 500 assert !person.valid?
501 501 assert person.errors[:custom_formation.to_s].present?
502 502  
... ... @@ -509,7 +509,7 @@ class PersonTest &lt; ActiveSupport::TestCase
509 509 e = Environment.default
510 510 e.expects(:required_person_fields).returns(['formation']).at_least_once
511 511  
512   - person = Person.new(:environment => e, :formation => 'Agrometeorology')
  512 + person = build(Person, :environment => e, :formation => 'Agrometeorology')
513 513 assert !person.valid?
514 514 assert ! person.errors[:custom_formation.to_s].present?
515 515 end
... ... @@ -548,7 +548,7 @@ class PersonTest &lt; ActiveSupport::TestCase
548 548 should 'not ask to join if already asked' do
549 549 p = create_user('test_user').person
550 550 c = fast_create(Community)
551   - AddMember.create!(:person => p, :organization => c)
  551 + create(AddMember, :person => p, :organization => c)
552 552  
553 553 assert !p.ask_to_join?(c)
554 554 end
... ... @@ -651,8 +651,8 @@ class PersonTest &lt; ActiveSupport::TestCase
651 651 p1.add_friend(p2)
652 652 p2.add_friend(p1)
653 653 p2.add_friend(p3)
654   - assert_equal p2, Person.more_popular[0]
655   - assert_equal p1, Person.more_popular[1]
  654 + assert_equal p2, Person.more_popular.all[0]
  655 + assert_equal p1, Person.more_popular.all[1]
656 656 end
657 657  
658 658 should 'list people that have no friends in more popular list' do
... ... @@ -1183,12 +1183,12 @@ class PersonTest &lt; ActiveSupport::TestCase
1183 1183 p2 = create_user('user2').person
1184 1184 profile = fast_create(Profile)
1185 1185  
1186   - abuse_report1 = AbuseReport.new(:reason => 'some reason')
  1186 + abuse_report1 = build(AbuseReport, :reason => 'some reason')
1187 1187 assert_difference AbuseComplaint, :count, 1 do
1188 1188 p1.register_report(abuse_report1, profile)
1189 1189 end
1190 1190  
1191   - abuse_report2 = AbuseReport.new(:reason => 'some reason')
  1191 + abuse_report2 = build(AbuseReport, :reason => 'some reason')
1192 1192 assert_no_difference AbuseComplaint, :count do
1193 1193 p2.register_report(abuse_report2, profile)
1194 1194 end
... ... @@ -1206,7 +1206,7 @@ class PersonTest &lt; ActiveSupport::TestCase
1206 1206 profile = fast_create(Profile)
1207 1207 assert !person.already_reported?(profile)
1208 1208  
1209   - person.register_report(AbuseReport.new(:reason => 'some reason'), profile)
  1209 + person.register_report(build(AbuseReport, :reason => 'some reason'), profile)
1210 1210 person.reload
1211 1211 assert person.already_reported?(profile)
1212 1212 end
... ... @@ -1226,9 +1226,9 @@ class PersonTest &lt; ActiveSupport::TestCase
1226 1226 person = fast_create(Person)
1227 1227 another_person = fast_create(Person)
1228 1228  
1229   - scrap = Scrap.create!(defaults_for_scrap(:sender => another_person, :receiver => person, :content => 'A scrap'))
  1229 + scrap = create(Scrap, defaults_for_scrap(:sender => another_person, :receiver => person, :content => 'A scrap'))
1230 1230 UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once
1231   - article = TinyMceArticle.create!(:profile => person, :name => 'An article about free software')
  1231 + article = create(TinyMceArticle, :profile => person, :name => 'An article about free software')
1232 1232  
1233 1233 assert_equivalent [scrap,article.activity], person.activities.map { |a| a.klass.constantize.find(a.id) }
1234 1234 end
... ... @@ -1237,14 +1237,14 @@ class PersonTest &lt; ActiveSupport::TestCase
1237 1237 person = fast_create(Person)
1238 1238 another_person = fast_create(Person)
1239 1239  
1240   - person_scrap = Scrap.create!(defaults_for_scrap(:sender => person, :receiver => person, :content => 'A scrap from person'))
1241   - another_person_scrap = Scrap.create!(defaults_for_scrap(:sender => another_person, :receiver => another_person, :content => 'A scrap from another person'))
  1240 + person_scrap = create(Scrap, defaults_for_scrap(:sender => person, :receiver => person, :content => 'A scrap from person'))
  1241 + another_person_scrap = create(Scrap, defaults_for_scrap(:sender => another_person, :receiver => another_person, :content => 'A scrap from another person'))
1242 1242  
1243   - TinyMceArticle.create!(:profile => another_person, :name => 'An article about free software from another person')
  1243 + create(TinyMceArticle, :profile => another_person, :name => 'An article about free software from another person')
1244 1244 another_person_activity = ActionTracker::Record.last
1245 1245  
1246 1246 UserStampSweeper.any_instance.stubs(:current_user).returns(person)
1247   - TinyMceArticle.create!(:profile => person, :name => 'An article about free software')
  1247 + create(TinyMceArticle, :profile => person, :name => 'An article about free software')
1248 1248 person_activity = ActionTracker::Record.last
1249 1249  
1250 1250 assert_equivalent [person_scrap,person_activity], person.activities.map { |a| a.klass.constantize.find(a.id) }
... ... @@ -1288,7 +1288,7 @@ class PersonTest &lt; ActiveSupport::TestCase
1288 1288  
1289 1289 should 'define abuser?' do
1290 1290 abuser = create_user('abuser').person
1291   - AbuseComplaint.create!(:reported => abuser).finish
  1291 + create(AbuseComplaint, :reported => abuser).finish
1292 1292 person = create_user('person').person
1293 1293  
1294 1294 assert abuser.abuser?
... ... @@ -1297,21 +1297,21 @@ class PersonTest &lt; ActiveSupport::TestCase
1297 1297  
1298 1298 should 'be able to retrieve abusers and non abusers' do
1299 1299 abuser1 = create_user('abuser1').person
1300   - AbuseComplaint.create!(:reported => abuser1).finish
  1300 + create(AbuseComplaint, :reported => abuser1).finish
1301 1301 abuser2 = create_user('abuser2').person
1302   - AbuseComplaint.create!(:reported => abuser2).finish
  1302 + create(AbuseComplaint, :reported => abuser2).finish
1303 1303 person = create_user('person').person
1304 1304  
1305 1305 abusers = Person.abusers
1306 1306  
1307   - assert_equal ActiveRecord::NamedScope::Scope, abusers.class
  1307 + assert_equal ActiveRecord::Relation, abusers.class
1308 1308 assert_includes abusers, abuser1
1309 1309 assert_includes abusers, abuser2
1310 1310 assert_not_includes abusers, person
1311 1311  
1312 1312 non_abusers = Person.non_abusers
1313 1313  
1314   - assert_equal ActiveRecord::NamedScope::Scope, non_abusers.class
  1314 + assert_equal ActiveRecord::Relation, non_abusers.class
1315 1315 assert_not_includes non_abusers, abuser1
1316 1316 assert_not_includes non_abusers, abuser2
1317 1317 assert_includes non_abusers, person
... ... @@ -1319,9 +1319,9 @@ class PersonTest &lt; ActiveSupport::TestCase
1319 1319  
1320 1320 should 'not return canceled complaints as abusers' do
1321 1321 abuser = create_user('abuser1').person
1322   - AbuseComplaint.create!(:reported => abuser).finish
  1322 + create(AbuseComplaint, :reported => abuser).finish
1323 1323 not_abuser = create_user('abuser2').person
1324   - AbuseComplaint.create!(:reported => not_abuser).cancel
  1324 + create(AbuseComplaint, :reported => not_abuser).cancel
1325 1325  
1326 1326 abusers = Person.abusers
1327 1327 assert_includes abusers, abuser
... ...
vendor/plugins/action_tracker/lib/action_tracker.rb
... ... @@ -74,7 +74,7 @@ module ActionTracker
74 74 end
75 75  
76 76 def acts_as_trackable(options = {})
77   - has_many :tracked_actions, { :class_name => "ActionTracker::Record", :order => "updated_at DESC", :foreign_key => :user_id }.merge(options)
  77 + has_many :tracked_actions, { :class_name => "ActionTracker::Record", :order => "updated_at DESC", :foreign_key => :user_id, :dependent => :destroy }.merge(options)
78 78 send :include, InstanceMethods
79 79 end
80 80 end
... ...