Commit 50267ca4a0de5c8dfdc9ead272e5d67870463851

Authored by JoenioCosta
1 parent 30af8808

ActionItem441: tests for add member task done!


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2024 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/views/tasks/_add_member.rhtml
... ... @@ -27,7 +27,7 @@
27 27 @roles = Role.find(:all).select{ |r| r.has_kind?('Profile') }
28 28 %>
29 29 <% @roles.each do |r| %>
30   - <%= labelled_check_box(r.name, 'task[roles][]', r.id, task.target.members.nil?) %><br/>
  30 + <%= labelled_check_box(r.name, 'task[roles][]', r.id, ( task.target.members.empty? ? true : ( r.id == Profile::Roles.member.id ) ) ) %><br/>
31 31 <% end %>
32 32 </p>
33 33 </div>
... ...
test/fixtures/roles.yml
... ... @@ -37,6 +37,10 @@ profile_member:
37 37 key: 'profile_member'
38 38 name: 'Profile Member'
39 39 system: true
  40 + permissions:
  41 + - edit_profile
  42 + - post_content
  43 + - manage_products
40 44 profile_moderator:
41 45 id: 7
42 46 key: 'profile_moderator'
... ...
test/functional/tasks_controller_test.rb
... ... @@ -62,12 +62,45 @@ class TasksControllerTest &lt; Test::Unit::TestCase
62 62 ok('task should be cancelled') { t.status == Task::Status::CANCELLED }
63 63 end
64 64  
65   - should 'affiliate roles to user after finish add member task'
  65 + should 'affiliate roles to user after finish add member task' do
  66 + t = AddMember.create!(:person => profile, :community => profile)
  67 + count = profile.members.size
  68 + post :close, :decision => 'finish', :id => t.id
  69 + profile.reload
  70 + assert_equal count + 1, profile.members.size
  71 + end
66 72  
67   - should 'display form to add members task'
  73 + should 'display custom form to add members task' do
  74 + t = AddMember.create!(:person => profile, :community => profile)
  75 + get :index, :profile => profile.identifier
  76 + assert_tag :tag => 'form', :attributes => { :action => "/myprofile/#{profile.identifier}/tasks/close/#{t.id}" }
  77 + end
68 78  
69   - should 'display all roles checked if target has no members'
  79 + should 'display member role checked if target has members' do
  80 + profile.affiliate(profile, Profile::Roles.admin)
  81 + assert_equal 1, profile.members.size
  82 + t = AddMember.create!(:person => profile, :community => profile)
  83 + get :index, :profile => profile.identifier
  84 + assert_tag :tag => 'input', :attributes => { :name => 'task[roles][]', :checked => 'checked', :value => Profile::Roles.member.id }
  85 + end
70 86  
71   - should 'display member role checked if target has members'
  87 + should 'display roles besides role member unchecked if target has members' do
  88 + profile.affiliate(profile, Profile::Roles.admin)
  89 + assert_equal 1, profile.members.size
  90 + t = AddMember.create!(:person => profile, :community => profile)
  91 + get :index, :profile => profile.identifier
  92 + Role.find(:all).select{ |r| r.has_kind?('Profile') and r.id != Profile::Roles.member.id }.each do |i|
  93 + assert_no_tag :tag => 'input', :attributes => { :name => 'task[roles][]', :checked => 'checked', :value => i.id }
  94 + end
  95 + end
  96 +
  97 + should 'display all roles checked if target has no members' do
  98 + assert_equal 0, profile.members.size
  99 + t = AddMember.create!(:person => profile, :community => profile)
  100 + get :index, :profile => profile.identifier
  101 + Role.find(:all).select{ |r| r.has_kind?('Profile') }.each do |i|
  102 + assert_tag :tag => 'input', :attributes => { :name => 'task[roles][]', :checked => 'checked', :value => i.id }
  103 + end
  104 + end
72 105  
73 106 end
... ...