Commit 194e82123933fea0ec16ba786b74988856a0a55c
1 parent
6fbde715
Exists in
master
and in
29 other branches
ActionItem36: adding a friends block
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1506 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
3 changed files
with
61 additions
and
0 deletions
Show diff stats
app/controllers/my_profile/profile_design_controller.rb
... | ... | @@ -5,10 +5,15 @@ class ProfileDesignController < BoxOrganizerController |
5 | 5 | def available_blocks |
6 | 6 | blocks = [ ArticleBlock, TagsBlock, RecentDocumentsBlock, ProfileInfoBlock ] |
7 | 7 | |
8 | + # blocks exclusive for organizations | |
8 | 9 | if profile.has_members? |
9 | 10 | blocks << MembersBlock |
10 | 11 | end |
11 | 12 | |
13 | + if profile.person? | |
14 | + blocks << FriendsBlock | |
15 | + end | |
16 | + | |
12 | 17 | blocks |
13 | 18 | end |
14 | 19 | ... | ... |
... | ... | @@ -0,0 +1,22 @@ |
1 | +class FriendsBlock < ProfileListBlock | |
2 | + | |
3 | + def self.description | |
4 | + _('A block that displays your friends') | |
5 | + end | |
6 | + | |
7 | + def title | |
8 | + _('Friends') | |
9 | + end | |
10 | + | |
11 | + class FriendsBlock::Finder < ProfileListBlock::Finder | |
12 | + def ids | |
13 | + self.block.owner.friend_ids | |
14 | + end | |
15 | + end | |
16 | + | |
17 | + def profile_finder | |
18 | + @profile_finder ||= FriendsBlock::Finder.new(self) | |
19 | + end | |
20 | + | |
21 | + | |
22 | +end | ... | ... |
... | ... | @@ -0,0 +1,34 @@ |
1 | +require File.dirname(__FILE__) + '/../test_helper' | |
2 | + | |
3 | +class FriendsBlockTest < ActiveSupport::TestCase | |
4 | + | |
5 | + should 'describe itself' do | |
6 | + assert_not_equal ProfileListBlock.description, FriendsBlock.description | |
7 | + end | |
8 | + | |
9 | + should 'declare its title' do | |
10 | + assert_not_equal ProfileListBlock.new.title, FriendsBlock.new.title | |
11 | + end | |
12 | + | |
13 | + should 'use its own finder' do | |
14 | + assert_not_equal ProfileListBlock::Finder, FriendsBlock::Finder | |
15 | + assert_kind_of FriendsBlock::Finder, FriendsBlock.new.profile_finder | |
16 | + end | |
17 | + | |
18 | + should 'list owner friends' do | |
19 | + p1 = create_user('testuser1').person | |
20 | + p2 = create_user('testuser2').person | |
21 | + p3 = create_user('testuser3').person | |
22 | + p4 = create_user('testuser4').person | |
23 | + | |
24 | + p1.add_friend(p2) | |
25 | + p1.add_friend(p3) | |
26 | + p1.add_friend(p4) | |
27 | + | |
28 | + block = FriendsBlock.new | |
29 | + block.expects(:owner).returns(p1) | |
30 | + | |
31 | + assert_equivalent [p2, p3, p4], block.profiles | |
32 | + end | |
33 | + | |
34 | +end | ... | ... |