Commit 286e4b52a330b57f75a613143f1eff6f060d76e3
1 parent
bc5af220
Exists in
master
and in
22 other branches
rails3: fix person tests
PS: tests failing due to birth_date lib and action_tracker problem
Showing
5 changed files
with
91 additions
and
90 deletions
Show diff stats
app/models/article.rb
| @@ -147,7 +147,7 @@ class Article < ActiveRecord::Base | @@ -147,7 +147,7 @@ class Article < ActiveRecord::Base | ||
| 147 | self.profile | 147 | self.profile |
| 148 | end | 148 | end |
| 149 | 149 | ||
| 150 | - def self.human_attribute_name(attrib) | 150 | + def self.human_attribute_name(attrib, options = {}) |
| 151 | case attrib.to_sym | 151 | case attrib.to_sym |
| 152 | when :name | 152 | when :name |
| 153 | _('Title') | 153 | _('Title') |
app/models/person.rb
| @@ -158,8 +158,9 @@ class Person < Profile | @@ -158,8 +158,9 @@ class Person < Profile | ||
| 158 | FIELDS | 158 | FIELDS |
| 159 | end | 159 | end |
| 160 | 160 | ||
| 161 | - def validate | ||
| 162 | - super | 161 | + validate :presence_of_required_fields |
| 162 | + | ||
| 163 | + def presence_of_required_fields | ||
| 163 | self.required_fields.each do |field| | 164 | self.required_fields.each do |field| |
| 164 | if self.send(field).blank? | 165 | if self.send(field).blank? |
| 165 | unless (field == 'custom_area_of_study' && self.area_of_study != 'Others') || (field == 'custom_formation' && self.formation != 'Others') | 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,6 +235,29 @@ class Task < ActiveRecord::Base | ||
| 235 | end | 235 | end |
| 236 | end | 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 | protected | 261 | protected |
| 239 | 262 | ||
| 240 | # This method must be overrided in subclasses, and its implementation must do | 263 | # This method must be overrided in subclasses, and its implementation must do |
| @@ -266,29 +289,6 @@ class Task < ActiveRecord::Base | @@ -266,29 +289,6 @@ class Task < ActiveRecord::Base | ||
| 266 | end | 289 | end |
| 267 | end | 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 | class << self | 292 | class << self |
| 293 | 293 | ||
| 294 | # generates a random code string consisting of length characters (or 36 by | 294 | # generates a random code string consisting of length characters (or 36 by |
test/unit/person_test.rb
| @@ -5,7 +5,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -5,7 +5,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 5 | fixtures :profiles, :users, :environments | 5 | fixtures :profiles, :users, :environments |
| 6 | 6 | ||
| 7 | def test_person_must_come_form_the_cration_of_an_user | 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 | assert !p.valid? | 9 | assert !p.valid? |
| 10 | p.user = create_user('john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe') | 10 | p.user = create_user('john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe') |
| 11 | assert !p.valid? | 11 | assert !p.valid? |
| @@ -14,22 +14,22 @@ class PersonTest < ActiveSupport::TestCase | @@ -14,22 +14,22 @@ class PersonTest < ActiveSupport::TestCase | ||
| 14 | end | 14 | end |
| 15 | 15 | ||
| 16 | def test_can_associate_to_a_profile | 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 | pr.save! | 18 | pr.save! |
| 19 | pe = create_user('person', :email => 'person@test.net', :password => 'dhoe', :password_confirmation => 'dhoe').person | 19 | pe = create_user('person', :email => 'person@test.net', :password => 'dhoe', :password_confirmation => 'dhoe').person |
| 20 | pe.save! | 20 | pe.save! |
| 21 | - member_role = Role.create(:name => 'somerandomrole') | 21 | + member_role = create(Role, :name => 'somerandomrole') |
| 22 | pr.affiliate(pe, member_role) | 22 | pr.affiliate(pe, member_role) |
| 23 | 23 | ||
| 24 | assert pe.memberships.include?(pr) | 24 | assert pe.memberships.include?(pr) |
| 25 | end | 25 | end |
| 26 | 26 | ||
| 27 | def test_can_belong_to_an_enterprise | 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 | e.save! | 29 | e.save! |
| 30 | p = create_user('person', :email => 'person@test.net', :password => 'dhoe', :password_confirmation => 'dhoe').person | 30 | p = create_user('person', :email => 'person@test.net', :password => 'dhoe', :password_confirmation => 'dhoe').person |
| 31 | p.save! | 31 | p.save! |
| 32 | - member_role = Role.create(:name => 'somerandomrole') | 32 | + member_role = create(Role, :name => 'somerandomrole') |
| 33 | e.affiliate(p, member_role) | 33 | e.affiliate(p, member_role) |
| 34 | 34 | ||
| 35 | assert p.memberships.include?(e) | 35 | assert p.memberships.include?(e) |
| @@ -46,7 +46,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -46,7 +46,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 46 | end | 46 | end |
| 47 | 47 | ||
| 48 | should 'be associated with a user' do | 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 | u.save! | 50 | u.save! |
| 51 | assert_equal u, Person['john'].user | 51 | assert_equal u, Person['john'].user |
| 52 | end | 52 | end |
| @@ -57,21 +57,21 @@ class PersonTest < ActiveSupport::TestCase | @@ -57,21 +57,21 @@ class PersonTest < ActiveSupport::TestCase | ||
| 57 | p1 = u.person | 57 | p1 = u.person |
| 58 | assert_equal u, p1.user | 58 | assert_equal u, p1.user |
| 59 | 59 | ||
| 60 | - p2 = Person.new(:environment => Environment.default) | 60 | + p2 = build(Person, :environment => Environment.default) |
| 61 | p2.user = u | 61 | p2.user = u |
| 62 | assert !p2.valid? | 62 | assert !p2.valid? |
| 63 | assert p2.errors[:user_id.to_s].present? | 63 | assert p2.errors[:user_id.to_s].present? |
| 64 | end | 64 | end |
| 65 | 65 | ||
| 66 | should "have person info fields" do | 66 | should "have person info fields" do |
| 67 | - p = Person.new(:environment => Environment.default) | 67 | + p = build(Person, :environment => Environment.default) |
| 68 | [ :name, :photo, :contact_information, :birth_date, :sex, :address, :city, :state, :country, :zip_code, :image, :district, :address_reference ].each do |i| | 68 | [ :name, :photo, :contact_information, :birth_date, :sex, :address, :city, :state, :country, :zip_code, :image, :district, :address_reference ].each do |i| |
| 69 | assert_respond_to p, i | 69 | assert_respond_to p, i |
| 70 | end | 70 | end |
| 71 | end | 71 | end |
| 72 | 72 | ||
| 73 | should 'not have person_info class' do | 73 | should 'not have person_info class' do |
| 74 | - p = Person.new(:environment => Environment.default) | 74 | + p = build(Person, :environment => Environment.default) |
| 75 | assert_raise NoMethodError do | 75 | assert_raise NoMethodError do |
| 76 | p.person_info | 76 | p.person_info |
| 77 | end | 77 | end |
| @@ -80,9 +80,9 @@ class PersonTest < ActiveSupport::TestCase | @@ -80,9 +80,9 @@ class PersonTest < ActiveSupport::TestCase | ||
| 80 | should 'change the roles of the user' do | 80 | should 'change the roles of the user' do |
| 81 | p = create_user('jonh', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe').person | 81 | p = create_user('jonh', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe').person |
| 82 | e = fast_create(Enterprise) | 82 | e = fast_create(Enterprise) |
| 83 | - r1 = Role.create(:name => 'associate') | 83 | + r1 = create(Role, :name => 'associate') |
| 84 | assert e.affiliate(p, r1) | 84 | assert e.affiliate(p, r1) |
| 85 | - r2 = Role.create(:name => 'partner') | 85 | + r2 = create(Role, :name => 'partner') |
| 86 | assert p.define_roles([r2], e) | 86 | assert p.define_roles([r2], e) |
| 87 | p = Person.find(p.id) | 87 | p = Person.find(p.id) |
| 88 | assert p.role_assignments.any? {|ra| ra.role == r2} | 88 | assert p.role_assignments.any? {|ra| ra.role == r2} |
| @@ -91,7 +91,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -91,7 +91,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 91 | 91 | ||
| 92 | should 'report that the user has the permission' do | 92 | should 'report that the user has the permission' do |
| 93 | p = create_user('john', :email => 'john@doe.org', :password => 'dhoe', :password_confirmation => 'dhoe').person | 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 | e = fast_create(Enterprise) | 95 | e = fast_create(Enterprise) |
| 96 | assert e.affiliate(p, r) | 96 | assert e.affiliate(p, r) |
| 97 | p = Person.find(p.id) | 97 | p = Person.find(p.id) |
| @@ -106,7 +106,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -106,7 +106,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 106 | end | 106 | end |
| 107 | 107 | ||
| 108 | should 'get no email address when there is no associated user' do | 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 | assert_nil p.email | 110 | assert_nil p.email |
| 111 | end | 111 | end |
| 112 | 112 | ||
| @@ -134,7 +134,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -134,7 +134,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 134 | other.email = 'user@domain.com' | 134 | other.email = 'user@domain.com' |
| 135 | other.valid? | 135 | other.valid? |
| 136 | assert other.errors[:email.to_s].present? | 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 | end | 138 | end |
| 139 | 139 | ||
| 140 | should 'be able to use an e-mail already used in other environment' do | 140 | should 'be able to use an e-mail already used in other environment' do |
| @@ -148,7 +148,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -148,7 +148,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 148 | end | 148 | end |
| 149 | 149 | ||
| 150 | should 'be an admin if have permission of environment administration' do | 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 | env = fast_create(Environment) | 152 | env = fast_create(Environment) |
| 153 | person = create_user('just_another_person').person | 153 | person = create_user('just_another_person').person |
| 154 | env.affiliate(person, role) | 154 | env.affiliate(person, role) |
| @@ -163,7 +163,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -163,7 +163,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 163 | env2 = fast_create(Environment) | 163 | env2 = fast_create(Environment) |
| 164 | 164 | ||
| 165 | # role is an admin role | 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 | role.update_attributes(:permissions => ['view_environment_admin_panel']) | 167 | role.update_attributes(:permissions => ['view_environment_admin_panel']) |
| 168 | 168 | ||
| 169 | # user is admin of env1, but not of env2 | 169 | # user is admin of env1, but not of env2 |
| @@ -176,15 +176,16 @@ class PersonTest < ActiveSupport::TestCase | @@ -176,15 +176,16 @@ class PersonTest < ActiveSupport::TestCase | ||
| 176 | end | 176 | end |
| 177 | 177 | ||
| 178 | should 'create a default set of articles' do | 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 | end | 185 | end |
| 185 | 186 | ||
| 186 | should 'create a default set of blocks' do | 187 | should 'create a default set of blocks' do |
| 187 | - p = create_user_full('testingblocks').person | 188 | + p = create(User).person |
| 188 | 189 | ||
| 189 | assert !p.boxes[0].blocks.empty?, 'person must have blocks in area 1' | 190 | assert !p.boxes[0].blocks.empty?, 'person must have blocks in area 1' |
| 190 | assert !p.boxes[1].blocks.empty?, 'person must have blocks in area 2' | 191 | assert !p.boxes[1].blocks.empty?, 'person must have blocks in area 2' |
| @@ -192,7 +193,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -192,7 +193,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 192 | end | 193 | end |
| 193 | 194 | ||
| 194 | should 'link to all articles created by default' do | 195 | should 'link to all articles created by default' do |
| 195 | - p = create_user_full('testingblocks').person | 196 | + p = create(User).person |
| 196 | blocks = p.blocks.select { |b| b.is_a?(LinkListBlock) } | 197 | blocks = p.blocks.select { |b| b.is_a?(LinkListBlock) } |
| 197 | p.articles.reject { |a| a.is_a?(RssFeed) }.each do |article| | 198 | p.articles.reject { |a| a.is_a?(RssFeed) }.each do |article| |
| 198 | path = '/' + p.identifier + '/' + article.path | 199 | path = '/' + p.identifier + '/' + article.path |
| @@ -213,22 +214,21 @@ class PersonTest < ActiveSupport::TestCase | @@ -213,22 +214,21 @@ class PersonTest < ActiveSupport::TestCase | ||
| 213 | p1.add_friend(p3) | 214 | p1.add_friend(p3) |
| 214 | 215 | ||
| 215 | assert_equal [p2,p3], p1.friends(true) # force reload | 216 | assert_equal [p2,p3], p1.friends(true) # force reload |
| 216 | - | ||
| 217 | end | 217 | end |
| 218 | 218 | ||
| 219 | should 'suggest default friend groups list' do | 219 | should 'suggest default friend groups list' do |
| 220 | - p = Person.new(:environment => Environment.default) | 220 | + p = build(Person, :environment => Environment.default) |
| 221 | assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups | 221 | assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups |
| 222 | end | 222 | end |
| 223 | 223 | ||
| 224 | should 'suggest current groups as well' do | 224 | should 'suggest current groups as well' do |
| 225 | - p = Person.new(:environment => Environment.default) | 225 | + p = build(Person, :environment => Environment.default) |
| 226 | p.expects(:friend_groups).returns(['group1', 'group2']) | 226 | p.expects(:friend_groups).returns(['group1', 'group2']) |
| 227 | assert_equivalent [ 'friends', 'work', 'school', 'family', 'group1', 'group2' ], p.suggested_friend_groups | 227 | assert_equivalent [ 'friends', 'work', 'school', 'family', 'group1', 'group2' ], p.suggested_friend_groups |
| 228 | end | 228 | end |
| 229 | 229 | ||
| 230 | should 'accept nil friend groups when suggesting friend groups' do | 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 | p.expects(:friend_groups).returns([nil]) | 232 | p.expects(:friend_groups).returns([nil]) |
| 233 | assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups | 233 | assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups |
| 234 | end | 234 | end |
| @@ -309,29 +309,29 @@ class PersonTest < ActiveSupport::TestCase | @@ -309,29 +309,29 @@ class PersonTest < ActiveSupport::TestCase | ||
| 309 | end | 309 | end |
| 310 | 310 | ||
| 311 | should 'provide desired info fields' do | 311 | should 'provide desired info fields' do |
| 312 | - p = Person.new(:environment => Environment.default) | 312 | + p = build(Person, :environment => Environment.default) |
| 313 | assert p.respond_to?(:photo) | 313 | assert p.respond_to?(:photo) |
| 314 | assert p.respond_to?(:address) | 314 | assert p.respond_to?(:address) |
| 315 | assert p.respond_to?(:contact_information) | 315 | assert p.respond_to?(:contact_information) |
| 316 | end | 316 | end |
| 317 | 317 | ||
| 318 | should 'required name' do | 318 | should 'required name' do |
| 319 | - person = Person.new(:environment => Environment.default) | 319 | + person = Person.new |
| 320 | assert !person.valid? | 320 | assert !person.valid? |
| 321 | - assert person.errors[:name.to_s].present? | 321 | + assert person.errors[:name].present? |
| 322 | end | 322 | end |
| 323 | 323 | ||
| 324 | should 'already request friendship' do | 324 | should 'already request friendship' do |
| 325 | p1 = create_user('testuser1').person | 325 | p1 = create_user('testuser1').person |
| 326 | p2 = create_user('testuser2').person | 326 | p2 = create_user('testuser2').person |
| 327 | - AddFriend.create!(:person => p1, :friend => p2) | 327 | + create(AddFriend, :person => p1, :friend => p2) |
| 328 | assert p1.already_request_friendship?(p2) | 328 | assert p1.already_request_friendship?(p2) |
| 329 | end | 329 | end |
| 330 | 330 | ||
| 331 | should 'have e-mail addresses' do | 331 | should 'have e-mail addresses' do |
| 332 | env = fast_create(Environment) | 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 | person.expects(:environment).returns(env) | 335 | person.expects(:environment).returns(env) |
| 336 | 336 | ||
| 337 | assert_equal ['testuser@somedomain.com'], person.email_addresses | 337 | assert_equal ['testuser@somedomain.com'], person.email_addresses |
| @@ -339,9 +339,9 @@ class PersonTest < ActiveSupport::TestCase | @@ -339,9 +339,9 @@ class PersonTest < ActiveSupport::TestCase | ||
| 339 | 339 | ||
| 340 | should 'not show www in e-mail addresses when force_www=true' do | 340 | should 'not show www in e-mail addresses when force_www=true' do |
| 341 | env = fast_create(Environment) | 341 | env = fast_create(Environment) |
| 342 | - env.domains << Domain.new(:name => 'somedomain.com') | 342 | + env.domains << build(Domain, :name => 'somedomain.com') |
| 343 | env.update_attribute(:force_www, true) | 343 | env.update_attribute(:force_www, true) |
| 344 | - person = Person.new(:environment => env, :identifier => 'testuser') | 344 | + person = build(Person, :environment => env, :identifier => 'testuser') |
| 345 | person.expects(:environment).returns(env) | 345 | person.expects(:environment).returns(env) |
| 346 | 346 | ||
| 347 | assert_equal ['testuser@somedomain.com'], person.email_addresses | 347 | assert_equal ['testuser@somedomain.com'], person.email_addresses |
| @@ -366,7 +366,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -366,7 +366,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 366 | end | 366 | end |
| 367 | 367 | ||
| 368 | should 'have a default person template' do | 368 | should 'have a default person template' do |
| 369 | - env = Environment.create!(:name => 'test env') | 369 | + env = create(Environment, :name => 'test env') |
| 370 | p = create_user('test_user', :environment => env).person | 370 | p = create_user('test_user', :environment => env).person |
| 371 | assert_kind_of Person, p.template | 371 | assert_kind_of Person, p.template |
| 372 | end | 372 | end |
| @@ -375,7 +375,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -375,7 +375,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 375 | p = create_user('test_profile').person | 375 | p = create_user('test_profile').person |
| 376 | 376 | ||
| 377 | assert_no_difference Task, :count do | 377 | assert_no_difference Task, :count do |
| 378 | - Task.create(:requestor => p) | 378 | + create(Task, :requestor => p) |
| 379 | p.destroy | 379 | p.destroy |
| 380 | end | 380 | end |
| 381 | end | 381 | end |
| @@ -437,7 +437,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -437,7 +437,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 437 | should 'return active_person_fields' do | 437 | should 'return active_person_fields' do |
| 438 | e = Environment.default | 438 | e = Environment.default |
| 439 | e.expects(:active_person_fields).returns(['cell_phone', 'comercial_phone']).at_least_once | 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 | assert_equal e.active_person_fields, person.active_fields | 442 | assert_equal e.active_person_fields, person.active_fields |
| 443 | end | 443 | end |
| @@ -445,7 +445,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -445,7 +445,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 445 | should 'return email as active_person_fields' do | 445 | should 'return email as active_person_fields' do |
| 446 | e = Environment.default | 446 | e = Environment.default |
| 447 | e.expects(:active_person_fields).returns(['nickname']).at_least_once | 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 | assert_equal ['nickname', 'email'], person.active_fields | 450 | assert_equal ['nickname', 'email'], person.active_fields |
| 451 | end | 451 | end |
| @@ -453,7 +453,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -453,7 +453,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 453 | should 'return required_person_fields' do | 453 | should 'return required_person_fields' do |
| 454 | e = Environment.default | 454 | e = Environment.default |
| 455 | e.expects(:required_person_fields).returns(['cell_phone', 'comercial_phone']).at_least_once | 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 | assert_equal e.required_person_fields, person.required_fields | 458 | assert_equal e.required_person_fields, person.required_fields |
| 459 | end | 459 | end |
| @@ -461,7 +461,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -461,7 +461,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 461 | should 'require fields if person needs' do | 461 | should 'require fields if person needs' do |
| 462 | e = Environment.default | 462 | e = Environment.default |
| 463 | e.expects(:required_person_fields).returns(['cell_phone']).at_least_once | 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 | assert ! person.valid? | 465 | assert ! person.valid? |
| 466 | assert person.errors[:cell_phone.to_s].present? | 466 | assert person.errors[:cell_phone.to_s].present? |
| 467 | 467 | ||
| @@ -474,7 +474,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -474,7 +474,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 474 | e = Environment.default | 474 | e = Environment.default |
| 475 | e.expects(:required_person_fields).returns(['area_of_study', 'custom_area_of_study']).at_least_once | 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 | assert !person.valid? | 478 | assert !person.valid? |
| 479 | assert person.errors[:custom_area_of_study.to_s].present? | 479 | assert person.errors[:custom_area_of_study.to_s].present? |
| 480 | 480 | ||
| @@ -487,7 +487,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -487,7 +487,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 487 | e = Environment.default | 487 | e = Environment.default |
| 488 | e.expects(:required_person_fields).returns(['area_of_study']).at_least_once | 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 | person.valid? | 491 | person.valid? |
| 492 | assert ! person.errors[:custom_area_of_study.to_s].present? | 492 | assert ! person.errors[:custom_area_of_study.to_s].present? |
| 493 | end | 493 | end |
| @@ -496,7 +496,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -496,7 +496,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 496 | e = Environment.default | 496 | e = Environment.default |
| 497 | e.expects(:required_person_fields).returns(['formation', 'custom_formation']).at_least_once | 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 | assert !person.valid? | 500 | assert !person.valid? |
| 501 | assert person.errors[:custom_formation.to_s].present? | 501 | assert person.errors[:custom_formation.to_s].present? |
| 502 | 502 | ||
| @@ -509,7 +509,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -509,7 +509,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 509 | e = Environment.default | 509 | e = Environment.default |
| 510 | e.expects(:required_person_fields).returns(['formation']).at_least_once | 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 | assert !person.valid? | 513 | assert !person.valid? |
| 514 | assert ! person.errors[:custom_formation.to_s].present? | 514 | assert ! person.errors[:custom_formation.to_s].present? |
| 515 | end | 515 | end |
| @@ -548,7 +548,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -548,7 +548,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 548 | should 'not ask to join if already asked' do | 548 | should 'not ask to join if already asked' do |
| 549 | p = create_user('test_user').person | 549 | p = create_user('test_user').person |
| 550 | c = fast_create(Community) | 550 | c = fast_create(Community) |
| 551 | - AddMember.create!(:person => p, :organization => c) | 551 | + create(AddMember, :person => p, :organization => c) |
| 552 | 552 | ||
| 553 | assert !p.ask_to_join?(c) | 553 | assert !p.ask_to_join?(c) |
| 554 | end | 554 | end |
| @@ -651,8 +651,8 @@ class PersonTest < ActiveSupport::TestCase | @@ -651,8 +651,8 @@ class PersonTest < ActiveSupport::TestCase | ||
| 651 | p1.add_friend(p2) | 651 | p1.add_friend(p2) |
| 652 | p2.add_friend(p1) | 652 | p2.add_friend(p1) |
| 653 | p2.add_friend(p3) | 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 | end | 656 | end |
| 657 | 657 | ||
| 658 | should 'list people that have no friends in more popular list' do | 658 | should 'list people that have no friends in more popular list' do |
| @@ -1183,12 +1183,12 @@ class PersonTest < ActiveSupport::TestCase | @@ -1183,12 +1183,12 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1183 | p2 = create_user('user2').person | 1183 | p2 = create_user('user2').person |
| 1184 | profile = fast_create(Profile) | 1184 | profile = fast_create(Profile) |
| 1185 | 1185 | ||
| 1186 | - abuse_report1 = AbuseReport.new(:reason => 'some reason') | 1186 | + abuse_report1 = build(AbuseReport, :reason => 'some reason') |
| 1187 | assert_difference AbuseComplaint, :count, 1 do | 1187 | assert_difference AbuseComplaint, :count, 1 do |
| 1188 | p1.register_report(abuse_report1, profile) | 1188 | p1.register_report(abuse_report1, profile) |
| 1189 | end | 1189 | end |
| 1190 | 1190 | ||
| 1191 | - abuse_report2 = AbuseReport.new(:reason => 'some reason') | 1191 | + abuse_report2 = build(AbuseReport, :reason => 'some reason') |
| 1192 | assert_no_difference AbuseComplaint, :count do | 1192 | assert_no_difference AbuseComplaint, :count do |
| 1193 | p2.register_report(abuse_report2, profile) | 1193 | p2.register_report(abuse_report2, profile) |
| 1194 | end | 1194 | end |
| @@ -1206,7 +1206,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -1206,7 +1206,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1206 | profile = fast_create(Profile) | 1206 | profile = fast_create(Profile) |
| 1207 | assert !person.already_reported?(profile) | 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 | person.reload | 1210 | person.reload |
| 1211 | assert person.already_reported?(profile) | 1211 | assert person.already_reported?(profile) |
| 1212 | end | 1212 | end |
| @@ -1226,9 +1226,9 @@ class PersonTest < ActiveSupport::TestCase | @@ -1226,9 +1226,9 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1226 | person = fast_create(Person) | 1226 | person = fast_create(Person) |
| 1227 | another_person = fast_create(Person) | 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 | UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | 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 | assert_equivalent [scrap,article.activity], person.activities.map { |a| a.klass.constantize.find(a.id) } | 1233 | assert_equivalent [scrap,article.activity], person.activities.map { |a| a.klass.constantize.find(a.id) } |
| 1234 | end | 1234 | end |
| @@ -1237,14 +1237,14 @@ class PersonTest < ActiveSupport::TestCase | @@ -1237,14 +1237,14 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1237 | person = fast_create(Person) | 1237 | person = fast_create(Person) |
| 1238 | another_person = fast_create(Person) | 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 | another_person_activity = ActionTracker::Record.last | 1244 | another_person_activity = ActionTracker::Record.last |
| 1245 | 1245 | ||
| 1246 | UserStampSweeper.any_instance.stubs(:current_user).returns(person) | 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 | person_activity = ActionTracker::Record.last | 1248 | person_activity = ActionTracker::Record.last |
| 1249 | 1249 | ||
| 1250 | assert_equivalent [person_scrap,person_activity], person.activities.map { |a| a.klass.constantize.find(a.id) } | 1250 | assert_equivalent [person_scrap,person_activity], person.activities.map { |a| a.klass.constantize.find(a.id) } |
| @@ -1288,7 +1288,7 @@ class PersonTest < ActiveSupport::TestCase | @@ -1288,7 +1288,7 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1288 | 1288 | ||
| 1289 | should 'define abuser?' do | 1289 | should 'define abuser?' do |
| 1290 | abuser = create_user('abuser').person | 1290 | abuser = create_user('abuser').person |
| 1291 | - AbuseComplaint.create!(:reported => abuser).finish | 1291 | + create(AbuseComplaint, :reported => abuser).finish |
| 1292 | person = create_user('person').person | 1292 | person = create_user('person').person |
| 1293 | 1293 | ||
| 1294 | assert abuser.abuser? | 1294 | assert abuser.abuser? |
| @@ -1297,21 +1297,21 @@ class PersonTest < ActiveSupport::TestCase | @@ -1297,21 +1297,21 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1297 | 1297 | ||
| 1298 | should 'be able to retrieve abusers and non abusers' do | 1298 | should 'be able to retrieve abusers and non abusers' do |
| 1299 | abuser1 = create_user('abuser1').person | 1299 | abuser1 = create_user('abuser1').person |
| 1300 | - AbuseComplaint.create!(:reported => abuser1).finish | 1300 | + create(AbuseComplaint, :reported => abuser1).finish |
| 1301 | abuser2 = create_user('abuser2').person | 1301 | abuser2 = create_user('abuser2').person |
| 1302 | - AbuseComplaint.create!(:reported => abuser2).finish | 1302 | + create(AbuseComplaint, :reported => abuser2).finish |
| 1303 | person = create_user('person').person | 1303 | person = create_user('person').person |
| 1304 | 1304 | ||
| 1305 | abusers = Person.abusers | 1305 | abusers = Person.abusers |
| 1306 | 1306 | ||
| 1307 | - assert_equal ActiveRecord::NamedScope::Scope, abusers.class | 1307 | + assert_equal ActiveRecord::Relation, abusers.class |
| 1308 | assert_includes abusers, abuser1 | 1308 | assert_includes abusers, abuser1 |
| 1309 | assert_includes abusers, abuser2 | 1309 | assert_includes abusers, abuser2 |
| 1310 | assert_not_includes abusers, person | 1310 | assert_not_includes abusers, person |
| 1311 | 1311 | ||
| 1312 | non_abusers = Person.non_abusers | 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 | assert_not_includes non_abusers, abuser1 | 1315 | assert_not_includes non_abusers, abuser1 |
| 1316 | assert_not_includes non_abusers, abuser2 | 1316 | assert_not_includes non_abusers, abuser2 |
| 1317 | assert_includes non_abusers, person | 1317 | assert_includes non_abusers, person |
| @@ -1319,9 +1319,9 @@ class PersonTest < ActiveSupport::TestCase | @@ -1319,9 +1319,9 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1319 | 1319 | ||
| 1320 | should 'not return canceled complaints as abusers' do | 1320 | should 'not return canceled complaints as abusers' do |
| 1321 | abuser = create_user('abuser1').person | 1321 | abuser = create_user('abuser1').person |
| 1322 | - AbuseComplaint.create!(:reported => abuser).finish | 1322 | + create(AbuseComplaint, :reported => abuser).finish |
| 1323 | not_abuser = create_user('abuser2').person | 1323 | not_abuser = create_user('abuser2').person |
| 1324 | - AbuseComplaint.create!(:reported => not_abuser).cancel | 1324 | + create(AbuseComplaint, :reported => not_abuser).cancel |
| 1325 | 1325 | ||
| 1326 | abusers = Person.abusers | 1326 | abusers = Person.abusers |
| 1327 | assert_includes abusers, abuser | 1327 | assert_includes abusers, abuser |
vendor/plugins/action_tracker/lib/action_tracker.rb
| @@ -74,7 +74,7 @@ module ActionTracker | @@ -74,7 +74,7 @@ module ActionTracker | ||
| 74 | end | 74 | end |
| 75 | 75 | ||
| 76 | def acts_as_trackable(options = {}) | 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 | send :include, InstanceMethods | 78 | send :include, InstanceMethods |
| 79 | end | 79 | end |
| 80 | end | 80 | end |