Compare View

switch
from
...
to
 
Commits (2)
app/models/add_member.rb
@@ -22,7 +22,7 @@ class AddMember < Task @@ -22,7 +22,7 @@ class AddMember < Task
22 self.roles = [Profile::Roles.member(organization.environment.id).id] 22 self.roles = [Profile::Roles.member(organization.environment.id).id]
23 end 23 end
24 target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)}) 24 target.affiliate(requestor, self.roles.select{|r| !r.to_i.zero? }.map{|i| Role.find(i)})
25 - person.follow(organization, Circle.find_or_create_by(:person => person, :name =>_('memberships'), :profile_type => 'Community')) 25 + person.follow(organization, Circle.find_or_create_by(:owner => person, :name =>_('memberships'), :profile_type => 'Community'))
26 end 26 end
27 27
28 def title 28 def title
app/models/circle.rb
@@ -25,7 +25,8 @@ class Circle < ApplicationRecord @@ -25,7 +25,8 @@ class Circle < ApplicationRecord
25 { 25 {
26 _("Person") => Person.name, 26 _("Person") => Person.name,
27 _("Community") => Community.name, 27 _("Community") => Community.name,
28 - _("Enterprise") => Enterprise.name 28 + _("Enterprise") => Enterprise.name,
  29 + _("Organization") => Organization.name
29 } 30 }
30 end 31 end
31 32
app/models/concerns/followable.rb 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +module Followable
  2 + extend ActiveSupport::Concern
  3 +
  4 + def followers
  5 + person_followers = Person.joins(:owned_circles).merge(circles).uniq
  6 + external_person_followers = ExternalPerson.joins(:owned_circles).merge(circles).uniq
  7 +
  8 + person_followers + external_person_followers
  9 + end
  10 +
  11 + def followed_by?(person)
  12 + (person == self) || (person.in? self.followers)
  13 + end
  14 +
  15 + def in_circle?(circle)
  16 + circle.in? self.circles
  17 + end
  18 +end
app/models/concerns/follower.rb
@@ -4,14 +4,14 @@ module Follower @@ -4,14 +4,14 @@ module Follower
4 def follow(profile, circles) 4 def follow(profile, circles)
5 circles = [circles] unless circles.is_a?(Array) 5 circles = [circles] unless circles.is_a?(Array)
6 circles.each do |new_circle| 6 circles.each do |new_circle|
7 - next if new_circle.owner != self || new_circle.profile_type != profile.class.name 7 + next if new_circle.owner != self || !profile.kind_of?(new_circle.profile_type.constantize)
8 ProfileFollower.create(profile: profile, circle: new_circle) 8 ProfileFollower.create(profile: profile, circle: new_circle)
9 end 9 end
10 end 10 end
11 11
12 def follows?(profile) 12 def follows?(profile)
13 return false if profile.nil? 13 return false if profile.nil?
14 - p profile.followed_by?(self) 14 + profile.followed_by?(self)
15 end 15 end
16 16
17 def unfollow(profile) 17 def unfollow(profile)
@@ -19,7 +19,10 @@ module Follower @@ -19,7 +19,10 @@ module Follower
19 end 19 end
20 20
21 def followed_profiles 21 def followed_profiles
22 - Profile.followed_by self 22 + external_people = ExternalPerson.joins(:circles).where("circles.owner_id = ?", self.id)
  23 + profiles = Profile.joins(:circles).where("circles.owner_id = ?", self.id)
  24 +
  25 + external_people.uniq + profiles.uniq
23 end 26 end
24 27
25 def update_profile_circles(profile, new_circles) 28 def update_profile_circles(profile, new_circles)
@@ -37,4 +40,8 @@ module Follower @@ -37,4 +40,8 @@ module Follower
37 ProfileFollower.with_profile(profile).with_circle(circle).destroy_all 40 ProfileFollower.with_profile(profile).with_circle(circle).destroy_all
38 end 41 end
39 42
  43 + def in_circle?(circle)
  44 + circle.in? self.circles
  45 + end
  46 +
40 end 47 end
app/models/external_person.rb
@@ -4,9 +4,10 @@ class ExternalPerson < ActiveRecord::Base @@ -4,9 +4,10 @@ class ExternalPerson < ActiveRecord::Base
4 include Human 4 include Human
5 include ProfileEntity 5 include ProfileEntity
6 include Follower 6 include Follower
  7 + include Followable
7 8
8 - has_many :profile_followers  
9 - has_many :circles, :through => :profile_followers, :as => :profile 9 + has_many :profile_followers, :as => :profile
  10 + has_many :circles, :through => :profile_followers
10 has_many :owned_circles, as: :owner, :class_name => "Circle" 11 has_many :owned_circles, as: :owner, :class_name => "Circle"
11 12
12 validates_uniqueness_of :identifier, scope: :source 13 validates_uniqueness_of :identifier, scope: :source
@@ -204,7 +205,7 @@ class ExternalPerson < ActiveRecord::Base @@ -204,7 +205,7 @@ class ExternalPerson < ActiveRecord::Base
204 each_friend: nil, is_last_admin?: false, is_last_admin_leaving?: false, 205 each_friend: nil, is_last_admin?: false, is_last_admin_leaving?: false,
205 leave: nil, last_notification: nil, notification_time: 0, notifier: nil, 206 leave: nil, last_notification: nil, notification_time: 0, notifier: nil,
206 remove_suggestion: nil, allow_invitation_from?: false, in_social_circle?: false, 207 remove_suggestion: nil, allow_invitation_from?: false, in_social_circle?: false,
207 - allow_followers: false, in_circles: Circle.none, followers: [], in_circle?: false 208 + allow_followers: false
208 } 209 }
209 210
210 derivated_methods = generate_derivated_methods(methods_and_responses) 211 derivated_methods = generate_derivated_methods(methods_and_responses)
@@ -258,7 +259,7 @@ class ExternalPerson < ActiveRecord::Base @@ -258,7 +259,7 @@ class ExternalPerson < ActiveRecord::Base
258 more_popular_label: _('no members'), profile_custom_image: nil, 259 more_popular_label: _('no members'), profile_custom_image: nil,
259 is_on_homepage?: false, activities: ProfileActivity.none, 260 is_on_homepage?: false, activities: ProfileActivity.none,
260 may_display_field_to?: true, may_display_location_to?: true, public_fields: 261 may_display_field_to?: true, may_display_location_to?: true, public_fields:
261 - {}, followed_by?: false, display_private_info_to?: true, can_view_field?: 262 + {}, display_private_info_to?: true, can_view_field?:
262 true, remove_from_suggestion_list: nil, layout_template: 'default', 263 true, remove_from_suggestion_list: nil, layout_template: 'default',
263 is_admin?: false, add_friend: false, is_a_friend?: false, 264 is_admin?: false, add_friend: false, is_a_friend?: false,
264 already_request_friendship?: false, tracked_actions: ActionTracker::Record.none 265 already_request_friendship?: false, tracked_actions: ActionTracker::Record.none
@@ -275,6 +276,7 @@ class ExternalPerson < ActiveRecord::Base @@ -275,6 +276,7 @@ class ExternalPerson < ActiveRecord::Base
275 if profile_instance_methods.keys.include? method 276 if profile_instance_methods.keys.include? method
276 return profile_instance_methods[method] 277 return profile_instance_methods[method]
277 end 278 end
  279 + super
278 end 280 end
279 281
280 def respond_to_missing?(method_name, include_private = false) 282 def respond_to_missing?(method_name, include_private = false)
@@ -283,6 +285,10 @@ class ExternalPerson < ActiveRecord::Base @@ -283,6 +285,10 @@ class ExternalPerson < ActiveRecord::Base
283 super 285 super
284 end 286 end
285 287
  288 + def kind_of?(klass)
  289 + (klass == Person) ? true : super
  290 + end
  291 +
286 private 292 private
287 293
288 def generate_derivated_methods(methods) 294 def generate_derivated_methods(methods)
app/models/person.rb
@@ -570,10 +570,6 @@ class Person < Profile @@ -570,10 +570,6 @@ class Person < Profile
570 } 570 }
571 end 571 end
572 572
573 - def followed_profiles  
574 - Profile.followed_by self  
575 - end  
576 -  
577 def in_social_circle?(person) 573 def in_social_circle?(person)
578 self.is_a_friend?(person) || super 574 self.is_a_friend?(person) || super
579 end 575 end
app/models/profile.rb
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
4 class Profile < ApplicationRecord 4 class Profile < ApplicationRecord
5 5
6 include ProfileEntity 6 include ProfileEntity
  7 + include Followable
7 8
8 attr_accessible :public_profile, :nickname, :custom_footer, :custom_header, :address, :zip_code, :contact_phone, :image_builder, :description, :closed, :template_id, :lat, :lng, :is_template, :fields_privacy, :preferred_domain_id, :category_ids, :country, :city, :state, :national_region_code, :email, :contact_email, :redirect_l10n, :notification_time, 9 attr_accessible :public_profile, :nickname, :custom_footer, :custom_header, :address, :zip_code, :contact_phone, :image_builder, :description, :closed, :template_id, :lat, :lng, :is_template, :fields_privacy, :preferred_domain_id, :category_ids, :country, :city, :state, :national_region_code, :email, :contact_email, :redirect_l10n, :notification_time,
9 :custom_url_redirection, :email_suggestions, :allow_members_to_invite, :invite_friends_only, :secret, :profile_admin_mail_notification, :redirection_after_login, :allow_followers 10 :custom_url_redirection, :email_suggestions, :allow_members_to_invite, :invite_friends_only, :secret, :profile_admin_mail_notification, :redirection_after_login, :allow_followers
@@ -219,13 +220,6 @@ class Profile &lt; ApplicationRecord @@ -219,13 +220,6 @@ class Profile &lt; ApplicationRecord
219 scope :more_active, -> { order 'activities_count DESC' } 220 scope :more_active, -> { order 'activities_count DESC' }
220 scope :more_recent, -> { order "created_at DESC" } 221 scope :more_recent, -> { order "created_at DESC" }
221 222
222 - scope :followed_by, -> person{  
223 - distinct.select('profiles.*').  
224 - joins('left join profiles_circles ON profiles_circles.profile_id = profiles.id').  
225 - joins('left join circles ON circles.id = profiles_circles.circle_id').  
226 - where('circles.owner_id = ?', person.id)  
227 - }  
228 -  
229 settings_items :allow_followers, :type => :boolean, :default => true 223 settings_items :allow_followers, :type => :boolean, :default => true
230 alias_method :allow_followers?, :allow_followers 224 alias_method :allow_followers?, :allow_followers
231 225
@@ -241,15 +235,8 @@ class Profile &lt; ApplicationRecord @@ -241,15 +235,8 @@ class Profile &lt; ApplicationRecord
241 235
242 has_many :email_templates, :foreign_key => :owner_id 236 has_many :email_templates, :foreign_key => :owner_id
243 237
244 - has_many :profile_followers  
245 - has_many :circles, :through => :profile_followers, :as => :profile  
246 -  
247 - def followers  
248 - person_followers = Person.joins(:owned_circles).merge(circles).uniq  
249 - external_person_followers = ExternalPerson.joins(:owned_circles).merge(circles).uniq  
250 -  
251 - person_followers + external_person_followers  
252 - end 238 + has_many :profile_followers, :as => :profile
  239 + has_many :circles, :through => :profile_followers
253 240
254 # has_many :followers, -> { uniq }, :through => :profile_followers, :source => :person 241 # has_many :followers, -> { uniq }, :through => :profile_followers, :source => :person
255 242
@@ -1010,10 +997,6 @@ private :generate_url, :url_options @@ -1010,10 +997,6 @@ private :generate_url, :url_options
1010 self.active_fields 997 self.active_fields
1011 end 998 end
1012 999
1013 - def followed_by?(person)  
1014 - (person == self) || (person.in? self.followers)  
1015 - end  
1016 -  
1017 def in_social_circle?(person) 1000 def in_social_circle?(person)
1018 (person == self) || (person.is_member_of?(self)) 1001 (person == self) || (person.is_member_of?(self))
1019 end 1002 end
@@ -1057,7 +1040,4 @@ private :generate_url, :url_options @@ -1057,7 +1040,4 @@ private :generate_url, :url_options
1057 person.kind_of?(Profile) && person.has_permission?('destroy_profile', self) 1040 person.kind_of?(Profile) && person.has_permission?('destroy_profile', self)
1058 end 1041 end
1059 1042
1060 - def in_circle?(circle)  
1061 - circle.in? self.circles  
1062 - end  
1063 end 1043 end
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 # 11 #
12 # It's strongly recommended that you check this file into your version control system. 12 # It's strongly recommended that you check this file into your version control system.
13 13
14 -ActiveRecord::Schema.define(version: 20160608123748) do 14 +ActiveRecord::Schema.define(version: 20160822184703) do
15 15
16 # These are extensions that must be enabled in order to support this database 16 # These are extensions that must be enabled in order to support this database
17 enable_extension "plpgsql" 17 enable_extension "plpgsql"
@@ -277,11 +277,13 @@ ActiveRecord::Schema.define(version: 20160608123748) do @@ -277,11 +277,13 @@ ActiveRecord::Schema.define(version: 20160608123748) do
277 277
278 create_table "circles", force: :cascade do |t| 278 create_table "circles", force: :cascade do |t|
279 t.string "name" 279 t.string "name"
280 - t.integer "person_id"  
281 - t.string "profile_type", null: false 280 + t.integer "owner_id"
  281 + t.string "profile_type", null: false
  282 + t.string "owner_type", default: "Person"
282 end 283 end
283 284
284 - add_index "circles", ["person_id", "name"], name: "circles_composite_key_index", unique: true, using: :btree 285 + add_index "circles", ["owner_id", "name"], name: "circles_composite_key_index", unique: true, using: :btree
  286 + add_index "circles", ["owner_id", "owner_type"], name: "index_circles_on_owner_id_and_owner_type", using: :btree
285 287
286 create_table "comments", force: :cascade do |t| 288 create_table "comments", force: :cascade do |t|
287 t.string "title" 289 t.string "title"
@@ -553,6 +555,11 @@ ActiveRecord::Schema.define(version: 20160608123748) do @@ -553,6 +555,11 @@ ActiveRecord::Schema.define(version: 20160608123748) do
553 t.datetime "updated_at" 555 t.datetime "updated_at"
554 end 556 end
555 557
  558 + create_table "private_scraps", force: :cascade do |t|
  559 + t.integer "person_id"
  560 + t.integer "scrap_id"
  561 + end
  562 +
556 create_table "product_qualifiers", force: :cascade do |t| 563 create_table "product_qualifiers", force: :cascade do |t|
557 t.integer "product_id" 564 t.integer "product_id"
558 t.integer "qualifier_id" 565 t.integer "qualifier_id"
@@ -681,9 +688,11 @@ ActiveRecord::Schema.define(version: 20160608123748) do @@ -681,9 +688,11 @@ ActiveRecord::Schema.define(version: 20160608123748) do
681 t.integer "circle_id" 688 t.integer "circle_id"
682 t.datetime "created_at" 689 t.datetime "created_at"
683 t.datetime "updated_at" 690 t.datetime "updated_at"
  691 + t.string "profile_type", default: "Person"
684 end 692 end
685 693
686 add_index "profiles_circles", ["profile_id", "circle_id"], name: "profiles_circles_composite_key_index", unique: true, using: :btree 694 add_index "profiles_circles", ["profile_id", "circle_id"], name: "profiles_circles_composite_key_index", unique: true, using: :btree
  695 + add_index "profiles_circles", ["profile_id", "profile_type"], name: "index_profiles_circles_on_profile_id_and_profile_type", using: :btree
687 696
688 create_table "qualifier_certifiers", force: :cascade do |t| 697 create_table "qualifier_certifiers", force: :cascade do |t|
689 t.integer "qualifier_id" 698 t.integer "qualifier_id"
test/unit/article_test.rb
@@ -1101,7 +1101,7 @@ class ArticleTest &lt; ActiveSupport::TestCase @@ -1101,7 +1101,7 @@ class ArticleTest &lt; ActiveSupport::TestCase
1101 1101
1102 should 'create notifications to followers when creating an article' do 1102 should 'create notifications to followers when creating an article' do
1103 friend = fast_create(Person) 1103 friend = fast_create(Person)
1104 - circle = Circle.create!(:person=> friend, :name => "Zombies", :profile_type => 'Person') 1104 + circle = Circle.create!(:owner=> friend, :name => "Zombies", :profile_type => 'Person')
1105 friend.follow(profile, circle) 1105 friend.follow(profile, circle)
1106 Article.destroy_all 1106 Article.destroy_all
1107 ActionTracker::Record.destroy_all 1107 ActionTracker::Record.destroy_all
@@ -1115,7 +1115,7 @@ class ArticleTest &lt; ActiveSupport::TestCase @@ -1115,7 +1115,7 @@ class ArticleTest &lt; ActiveSupport::TestCase
1115 1115
1116 should 'create the notification to the follower when one follower has the notification and the other no' do 1116 should 'create the notification to the follower when one follower has the notification and the other no' do
1117 f1 = fast_create(Person) 1117 f1 = fast_create(Person)
1118 - circle = Circle.create!(:person=> f1, :name => "Zombies", :profile_type => 'Person') 1118 + circle = Circle.create!(:owner=> f1, :name => "Zombies", :profile_type => 'Person')
1119 f1.follow(profile, circle) 1119 f1.follow(profile, circle)
1120 1120
1121 User.current = profile.user 1121 User.current = profile.user
@@ -1125,7 +1125,7 @@ class ArticleTest &lt; ActiveSupport::TestCase @@ -1125,7 +1125,7 @@ class ArticleTest &lt; ActiveSupport::TestCase
1125 assert_equal 2, ActionTrackerNotification.where(action_tracker_id: article.activity.id).count 1125 assert_equal 2, ActionTrackerNotification.where(action_tracker_id: article.activity.id).count
1126 1126
1127 f2 = fast_create(Person) 1127 f2 = fast_create(Person)
1128 - circle2 = Circle.create!(:person=> f2, :name => "Zombies", :profile_type => 'Person') 1128 + circle2 = Circle.create!(:owner=> f2, :name => "Zombies", :profile_type => 'Person')
1129 f2.follow(profile, circle2) 1129 f2.follow(profile, circle2)
1130 1130
1131 article2 = create TinyMceArticle, :name => 'Tracked Article 2', :profile_id => profile.id 1131 article2 = create TinyMceArticle, :name => 'Tracked Article 2', :profile_id => profile.id
@@ -1137,7 +1137,7 @@ class ArticleTest &lt; ActiveSupport::TestCase @@ -1137,7 +1137,7 @@ class ArticleTest &lt; ActiveSupport::TestCase
1137 should 'destroy activity and notifications of followers when destroying an article' do 1137 should 'destroy activity and notifications of followers when destroying an article' do
1138 friend = fast_create(Person) 1138 friend = fast_create(Person)
1139 1139
1140 - circle = Circle.create!(:person=> friend, :name => "Zombies", :profile_type => 'Person') 1140 + circle = Circle.create!(:owner=> friend, :name => "Zombies", :profile_type => 'Person')
1141 1141
1142 friend.follow(profile, circle) 1142 friend.follow(profile, circle)
1143 1143
test/unit/follower_test.rb
@@ -8,6 +8,7 @@ class FollowerTest &lt; ActiveSupport::TestCase @@ -8,6 +8,7 @@ class FollowerTest &lt; ActiveSupport::TestCase
8 8
9 @circle1 = Circle.create!(owner: @person1, name: "Zombies", profile_type: 'Person') 9 @circle1 = Circle.create!(owner: @person1, name: "Zombies", profile_type: 'Person')
10 @circle2 = Circle.create!(owner: @person1, name: "Humans", profile_type: 'Person') 10 @circle2 = Circle.create!(owner: @person1, name: "Humans", profile_type: 'Person')
  11 + @circle3 = Circle.create!(owner: @person1, name: "Crypt", profile_type: 'Community')
11 12
12 @external_person = ExternalPerson.create!(identifier: 'johnlocke', 13 @external_person = ExternalPerson.create!(identifier: 'johnlocke',
13 name: 'John Locke', 14 name: 'John Locke',
@@ -85,27 +86,32 @@ class FollowerTest &lt; ActiveSupport::TestCase @@ -85,27 +86,32 @@ class FollowerTest &lt; ActiveSupport::TestCase
85 86
86 should 'get the followed profiles for a regular user' do 87 should 'get the followed profiles for a regular user' do
87 person3 = create_user('person-test-3').person 88 person3 = create_user('person-test-3').person
  89 + community = fast_create(Community)
88 90
89 @person1.follow(@person2, @circle1) 91 @person1.follow(@person2, @circle1)
90 @person1.follow(person3, @circle1) 92 @person1.follow(person3, @circle1)
91 - assert_equivalent [@person2, person3], @person1.followed_profiles 93 + @person1.follow(community, @circle3)
  94 + assert_equivalent [@person2, person3, community], @person1.followed_profiles
92 end 95 end
93 96
94 should 'get the followed profiles for an external user' do 97 should 'get the followed profiles for an external user' do
95 person3 = create_user('person-test-3').person 98 person3 = create_user('person-test-3').person
  99 + community = fast_create(Community)
96 @circle1.update_attributes(owner: @external_person) 100 @circle1.update_attributes(owner: @external_person)
  101 + @circle3.update_attributes(owner: @external_person)
97 102
98 @external_person.follow(@person2, @circle1) 103 @external_person.follow(@person2, @circle1)
99 @external_person.follow(person3, @circle1) 104 @external_person.follow(person3, @circle1)
100 - assert_equivalent [@person2, person3], @external_person.followed_profiles 105 + @external_person.follow(community, @circle3)
  106 + assert_equivalent [@person2, person3, community], @external_person.followed_profiles
101 end 107 end
102 108
103 should 'not follow same person twice even with different circles' do 109 should 'not follow same person twice even with different circles' do
104 - circle3 = Circle.create!(owner: @person1, name: "Free Folk", profile_type: 'Person') 110 + circle4 = Circle.create!(owner: @person1, name: "Free Folk", profile_type: 'Person')
105 111
106 @person1.follow(@person2, @circle1) 112 @person1.follow(@person2, @circle1)
107 @person1.follow(@person2, @circle2) 113 @person1.follow(@person2, @circle2)
108 - @person1.follow(@person2, circle3) 114 + @person1.follow(@person2, circle4)
109 assert_equivalent [@person2], @person1.followed_profiles 115 assert_equivalent [@person2], @person1.followed_profiles
110 end 116 end
111 117
@@ -118,21 +124,21 @@ class FollowerTest &lt; ActiveSupport::TestCase @@ -118,21 +124,21 @@ class FollowerTest &lt; ActiveSupport::TestCase
118 end 124 end
119 125
120 should 'update profile circles for a person' do 126 should 'update profile circles for a person' do
121 - circle3 = Circle.create!(owner: @person1, name: "Brains", profile_type: 'Person') 127 + circle4 = Circle.create!(owner: @person1, name: "Brains", profile_type: 'Person')
122 @person1.follow(@person2, [@circle1, @circle2]) 128 @person1.follow(@person2, [@circle1, @circle2])
123 129
124 - @person1.update_profile_circles(@person2, [@circle2, circle3])  
125 - assert_equivalent [@circle2, circle3], @person2.circles 130 + @person1.update_profile_circles(@person2, [@circle2, circle4])
  131 + assert_equivalent [@circle2, circle4], @person2.circles
126 end 132 end
127 133
128 should 'keep other follower circles after update' do 134 should 'keep other follower circles after update' do
129 person3 = create_user('person-test-3').person 135 person3 = create_user('person-test-3').person
130 - circle3 = Circle.create!(owner: person3, name: "Humans", profile_type: 'Person') 136 + circle4 = Circle.create!(owner: person3, name: "Humans", profile_type: 'Person')
131 @person1.follow(@person2, @circle1) 137 @person1.follow(@person2, @circle1)
132 - person3.follow(@person2, circle3) 138 + person3.follow(@person2, circle4)
133 139
134 @person1.update_profile_circles(@person2, [@circle1, @circle2]) 140 @person1.update_profile_circles(@person2, [@circle1, @circle2])
135 - assert_equivalent [@circle1, @circle2, circle3], @person2.circles 141 + assert_equivalent [@circle1, @circle2, circle4], @person2.circles
136 end 142 end
137 143
138 should 'remove a person from a circle' do 144 should 'remove a person from a circle' do
@@ -150,14 +156,10 @@ class FollowerTest &lt; ActiveSupport::TestCase @@ -150,14 +156,10 @@ class FollowerTest &lt; ActiveSupport::TestCase
150 assert_equivalent [@circle1, @circle2], @person2.circles 156 assert_equivalent [@circle1, @circle2], @person2.circles
151 end 157 end
152 158
153 - should 'external person be followable' do  
154 - person = fast_create(Person, :environment_id => Environment.default.id)  
155 - circle = Circle.create(owner: @external_person, profile_type: "Person", name: "FRIENDSSS")  
156 - pf = ProfileFollower.create(profile: @external_person, circle: circle)  
157 - assert person.follows? @external_person  
158 -  
159 - # assert_difference 'ProfileFollower.all.count' do  
160 - # person.follow(@external_person, circle)  
161 - # end 159 + should 'follow External Person' do
  160 + assert_difference 'ProfileFollower.count' do
  161 + @person1.follow(@external_person, @circle1)
  162 + end
  163 + assert @person1.follows? @external_person
162 end 164 end
163 end 165 end
test/unit/friendship_test.rb
@@ -115,8 +115,8 @@ class FriendshipTest &lt; ActiveSupport::TestCase @@ -115,8 +115,8 @@ class FriendshipTest &lt; ActiveSupport::TestCase
115 p1 = create_user('testuser1').person 115 p1 = create_user('testuser1').person
116 p2 = create_user('testuser2').person 116 p2 = create_user('testuser2').person
117 117
118 - circle1 = Circle.create!(:person=> p1, :name => "Zombies", :profile_type => 'Person')  
119 - circle2 = Circle.create!(:person=> p2, :name => "Zombies", :profile_type => 'Person') 118 + circle1 = Circle.create!(:owner=> p1, :name => "Zombies", :profile_type => 'Person')
  119 + circle2 = Circle.create!(:owner=> p2, :name => "Zombies", :profile_type => 'Person')
120 p1.follow(p2, circle1) 120 p1.follow(p2, circle1)
121 p2.follow(p1, circle2) 121 p2.follow(p1, circle2)
122 122
test/unit/notify_activity_to_profiles_job_test.rb
@@ -31,9 +31,9 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase @@ -31,9 +31,9 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase
31 refute NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb) 31 refute 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) 32 p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person)
33 33
34 - circle1 = Circle.create!(:person=> p1, :name => "Zombies", :profile_type => 'Person')  
35 - circle2 = Circle.create!(:person=> p2, :name => "Zombies", :profile_type => 'Person')  
36 - circle = Circle.create!(:person=> person, :name => "Zombies", :profile_type => 'Person') 34 + circle1 = Circle.create!(:owner=> p1, :name => "Zombies", :profile_type => 'Person')
  35 + circle2 = Circle.create!(:owner=> p2, :name => "Zombies", :profile_type => 'Person')
  36 + circle = Circle.create!(:owner=> person, :name => "Zombies", :profile_type => 'Person')
37 37
38 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle1.id) 38 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle1.id)
39 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle2.id) 39 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle2.id)
@@ -79,7 +79,7 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase @@ -79,7 +79,7 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase
79 refute NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb) 79 refute NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb)
80 p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person) 80 p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person)
81 81
82 - circle1 = Circle.create!(:person=> p1, :name => "Zombies", :profile_type => 'Person') 82 + circle1 = Circle.create!(:owner=> p1, :name => "Zombies", :profile_type => 'Person')
83 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle1.id) 83 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle1.id)
84 84
85 fast_create(RoleAssignment, :accessor_id => m1.id, :role_id => 3, :resource_id => community.id) 85 fast_create(RoleAssignment, :accessor_id => m1.id, :role_id => 3, :resource_id => community.id)
@@ -127,8 +127,8 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase @@ -127,8 +127,8 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase
127 refute NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb) 127 refute NotifyActivityToProfilesJob::NOTIFY_ONLY_COMMUNITY.include?(action_tracker.verb)
128 p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person) 128 p1, p2, m1, m2 = fast_create(Person), fast_create(Person), fast_create(Person), fast_create(Person)
129 129
130 - circle1 = Circle.create!(:person=> p1, :name => "Zombies", :profile_type => 'Person')  
131 - circle2 = Circle.create!(:person=> p2, :name => "Zombies", :profile_type => 'Person') 130 + circle1 = Circle.create!(:owner=> p1, :name => "Zombies", :profile_type => 'Person')
  131 + circle2 = Circle.create!(:owner=> p2, :name => "Zombies", :profile_type => 'Person')
132 132
133 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle1.id) 133 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle1.id)
134 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle2.id) 134 fast_create(ProfileFollower, :profile_id => person.id, :circle_id => circle2.id)
test/unit/organization_test.rb
@@ -267,9 +267,9 @@ class OrganizationTest &lt; ActiveSupport::TestCase @@ -267,9 +267,9 @@ class OrganizationTest &lt; ActiveSupport::TestCase
267 o.add_member(p3) 267 o.add_member(p3)
268 assert p3.is_member_of?(o) 268 assert p3.is_member_of?(o)
269 269
270 - assert_equal true, o.send(:followed_by?,p1)  
271 - assert_equal true, o.send(:followed_by?,p3)  
272 - assert_equal false, o.send(:followed_by?,p2) 270 + assert o.followed_by? p1
  271 + assert o.followed_by? p3
  272 + refute o.followed_by? p2
273 end 273 end
274 274
275 should "compose bare jabber id by identifier plus 'conference' and default hostname" do 275 should "compose bare jabber id by identifier plus 'conference' and default hostname" do
test/unit/profile_test.rb
@@ -2249,30 +2249,4 @@ class ProfileTest &lt; ActiveSupport::TestCase @@ -2249,30 +2249,4 @@ class ProfileTest &lt; ActiveSupport::TestCase
2249 assert_equivalent person3.followers, [person1, person2] 2249 assert_equivalent person3.followers, [person1, person2]
2250 end 2250 end
2251 2251
2252 - should 'return all profiles followed by a regular person' do  
2253 - person1 = create_user('testperson-1').person  
2254 - person2 = create_user('testperson-2').person  
2255 - community = fast_create(Community)  
2256 - circle1 = Circle.create!(:owner => person1, :name => "Night's Watch", :profile_type => 'Person')  
2257 - circle2 = Circle.create!(:owner => person1, :name => "Free Folk", :profile_type => 'Community')  
2258 -  
2259 - person1.follow(person2, circle1)  
2260 - person1.follow(community, circle2)  
2261 - assert_equivalent [person2, community], Profile.followed_by(person1)  
2262 - end  
2263 -  
2264 - should 'return all profiles followed by an external person' do  
2265 - external_person = ExternalPerson.create!(identifier: 'johnlocke', name: 'John Locke',  
2266 - source: 'anerenvironment.org', email: 'locke@island.org',  
2267 - created_at: Date.yesterday)  
2268 - person = create_user('testperson-2').person  
2269 - community = fast_create(Community)  
2270 - circle1 = Circle.create!(:owner => external_person, :name => "Night's Watch", :profile_type => 'Person')  
2271 - circle2 = Circle.create!(:owner => external_person, :name => "Free Folk", :profile_type => 'Community')  
2272 -  
2273 - external_person.follow(person, circle1)  
2274 - external_person.follow(community, circle2)  
2275 - assert_equivalent [person, community], Profile.followed_by(external_person)  
2276 - end  
2277 -  
2278 end 2252 end