Commit b2764fd63a0173985cc72cf847fcc55ce3b63bb8

Authored by AntonioTerceiro
1 parent 35a5443d

ActionItem41: adding a block to display profiles


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1333 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/profile_list_block.rb 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 +class ProfileListBlock < Block
  2 +
  3 + settings_items :limit, :default => 10
  4 +
  5 + def self.description
  6 + _('A block that displays random profiles')
  7 + end
  8 +
  9 + def content
  10 + profiles = self.profiles
  11 + lambda do
  12 + profiles.map {|item| profile_image_link(item) }
  13 + end
  14 + end
  15 +
  16 +end
... ...
test/unit/profile_list_block_test.rb 0 → 100644
... ... @@ -0,0 +1,39 @@
  1 +require File.dirname(__FILE__) + '/../test_helper'
  2 +
  3 +class ProfileListBlockTest < Test::Unit::TestCase
  4 +
  5 + should 'describe itself' do
  6 + assert_not_equal Block.description, ProfileListBlock.description
  7 + end
  8 +
  9 + should 'accept a limit of people to be displayed (and default to 10)' do
  10 + block = ProfileListBlock.new
  11 + assert_equal 10, block.limit
  12 +
  13 + block.limit = 20
  14 + assert_equal 20, block.limit
  15 + end
  16 +
  17 + should 'list people' do
  18 + User.destroy_all
  19 + person1 = create_user('testperson1').person
  20 + person2 = create_user('testperson2').person
  21 + person3 = create_user('testperson3').person
  22 +
  23 + owner = create_user('mytestuser').person
  24 + block = ProfileListBlock.new
  25 + owner.boxes.first.blocks << block
  26 + block.save!
  27 +
  28 + # faking that we are picking random people
  29 + profiles = [person1, person3]
  30 + block.expects(:profiles).returns(profiles)
  31 +
  32 + self.expects(:profile_image_link).with(person1).once
  33 + self.expects(:profile_image_link).with(person2).never
  34 + self.expects(:profile_image_link).with(person3).once
  35 +
  36 + instance_eval(&block.content)
  37 + end
  38 +
  39 +end
... ...