Commit 565789d3f6d9a9c08fa087dc1a667ddd8bbb76ef

Authored by Francisco Marcelo A. Lima Júnior
1 parent 5acb61dd

improved functional tests in community block plugin

app/helpers/application_helper.rb
... ... @@ -1250,11 +1250,19 @@ module ApplicationHelper
1250 1250 already_reported_message = _('You already reported this profile.')
1251 1251 report_profile_message = _('Report this profile for abusive behaviour')
1252 1252  
1253   - if type == :button
  1253 + if type == :button || type == :button_without_text
1254 1254 if user.already_reported?(profile)
1255   - button(:alert, text, url, :class => klass+' disabled', :disabled => true, :title => already_reported_message)
  1255 + if type == :button
  1256 + button(:alert, text, url, :class => klass+' disabled', :disabled => true, :title => already_reported_message)
  1257 + elsif type == :button_without_text
  1258 + button_without_text(:alert, text, url, :class => klass+' disabled', :disabled => true, :title => already_reported_message)
  1259 + end
1256 1260 else
1257   - button(:alert, text, url, :class => klass, :title => report_profile_message)
  1261 + if type == :button
  1262 + button(:alert, text, url, :class => klass, :title => report_profile_message)
  1263 + elsif type == :button_without_text
  1264 + button_without_text(:alert, text, url, :class => klass, :title => report_profile_message)
  1265 + end
1258 1266 end
1259 1267 elsif type == :link
1260 1268 if user.already_reported?(profile)
... ...
plugins/community_block/public/style.css
... ... @@ -38,6 +38,8 @@
38 38  
39 39 #content .box-1 .community-block .community-block-buttons {
40 40 //border: 1px solid #F00;
41   - text-align: right;
  41 + text-align: left;
  42 + margin-top: 3px;
  43 + margin-left: 22px;
42 44 }
43 45  
... ...
plugins/community_block/test/functional/commmunity_block_plugin_profile_design_controller_test.rb
... ... @@ -15,10 +15,12 @@ class ProfileControllerTest < ActionController::TestCase
15 15 @request = ActionController::TestRequest.new
16 16 @response = ActionController::TestResponse.new
17 17  
18   - #user = create_user('testinguser')
19   - #login_as(user.login)
  18 + @user = create_user('testinguser').person
  19 + login_as(@user.identifier)
20 20  
21 21 @community = fast_create(Community, :environment_id => Environment.default)
  22 + @community.add_member @user
  23 + @community.add_admin @user
22 24  
23 25 @environment = @community.environment
24 26 @environment.enabled_plugins = ['CommunityBlock']
... ... @@ -36,31 +38,81 @@ class ProfileControllerTest < ActionController::TestCase
36 38 @community.save!
37 39 end
38 40  
39   - attr_accessor :profile, :block, :community
40   -
41   - should 'display community-block-logo class in community block' do
42   - get :index, :profile => community.identifier
  41 + should 'display community-block' do
  42 + get :index, :profile => @community.identifier
43 43 assert_tag :div, :attributes => {:class => 'community-block-logo'}
  44 + assert_tag :div, :attributes => {:class => 'community-block-info'}
  45 + assert_tag :h1, :attributes => {:class => 'community-block-title'}
  46 + assert_tag :div, :attributes => {:class => 'community-block-description'}
  47 + assert_tag :div, :attributes => {:class => 'community-block-buttons'}
44 48 end
45 49  
46   - should 'display community-block-info class in community block' do
47   - get :index, :profile => community.identifier
48   - assert_tag :div, :attributes => {:class => 'community-block-info'}
  50 +
  51 + # USER LOGGED IN AND COMMUNITY MEMBER #
  52 +
  53 + should 'display *leave* button when the user is logged in and is a member of the community' do
  54 + get :index, :profile => @community.identifier
  55 + assert_tag :a, :attributes => {:class => 'button icon-remove'}
49 56 end
50 57  
51   - should 'display community-block-title class in community block' do
52   - get :index, :profile => community.identifier
53   - assert_tag :h1, :attributes => {:class => 'community-block-title'}
  58 + should 'display *send email to administrators* button when the user is logged in and is a member of the community' do
  59 + get :index, :profile => @community.identifier
  60 + assert_tag :a, :attributes => {:class => 'button icon-menu-mail'}
54 61 end
55 62  
56   - should 'display community-block-description class in community block' do
57   - get :index, :profile => community.identifier
58   - assert_tag :div, :attributes => {:class => 'community-block-description'}
  63 + should 'display *report* button when the user is logged in and is a member of the community' do
  64 + get :index, :profile => @community.identifier
  65 + assert_tag :a, :attributes => {:class => 'button icon-alert report-abuse-action'}
59 66 end
60 67  
61   - should 'display community-block-buttons class in community block' do
62   - get :index, :profile => community.identifier
63   - assert_tag :div, :attributes => {:class => 'community-block-buttons'}
  68 +
  69 + # USER LOGGED IN AND NOT MEMBER OF THE COMMUNITY
  70 +
  71 + should 'display *join* button when the user is logged in and is not a member of the community' do
  72 + @community.remove_member @user
  73 + get :index, :profile => @community.identifier
  74 + assert_tag :a, :attributes => {:class => 'button icon-add'}
  75 + end
  76 +
  77 + should 'display *send email to administrators* button when the user is logged in and is not a member of the community' do
  78 + @community.remove_member @user
  79 + get :index, :profile => @community.identifier
  80 + assert_tag :a, :attributes => {:class => 'button icon-menu-mail'}
  81 + end
  82 +
  83 + should 'display *report* button when the user is logged in and is not a member of the community' do
  84 + @community.remove_member @user
  85 + get :index, :profile => @community.identifier
  86 + assert_tag :a, :attributes => {:class => 'button icon-alert report-abuse-action'}
  87 + end
  88 +
  89 +
  90 + # USER LOGGED IN AND COMMUNITY ADMIN
  91 +
  92 + should 'display *configure* button when the user is logged in and is community admin' do
  93 + get :index, :profile => @community.identifier
  94 + assert_tag :a, :attributes => {:class => 'button icon-menu-ctrl-panel'}
  95 + end
  96 +
  97 +
  98 + # USER NOT LOGGED IN
  99 +
  100 + should 'not display *send email to administrators* button when the user is not logged in' do
  101 + logout
  102 + get :index, :profile => @community.identifier
  103 + assert_no_tag :a, :attributes => {:class => 'button icon-menu-mail'}
  104 + end
  105 +
  106 + should 'not display *report* button when the user is not logged in' do
  107 + logout
  108 + get :index, :profile => @community.identifier
  109 + assert_no_tag :a, :attributes => {:class => 'button icon-alert report-abuse-action'}
  110 + end
  111 +
  112 + should 'not display *configure* button when the user is logged in and is admin of the community' do
  113 + logout
  114 + get :index, :profile => @community.identifier
  115 + assert_no_tag :a, :attributes => {:class => 'button icon-menu-ctrl-panel link-this-page'}
64 116 end
65 117  
66 118 end
... ...
plugins/community_block/views/community_block.rhtml
... ... @@ -5,34 +5,58 @@
5 5 <div class="community-block-info">
6 6 <h1 class="community-block-title"><%=profile.name%></h1>
7 7 <div class="community-block-description"><%= profile.description %></div>
8   - <div class="community-block-buttons">
9   - <% if logged_in? %>
10   - <% if profile.members.include?(user) %>
11   - <%= button(:delete, content_tag('span', __('Leave community')), profile.leave_url,
12   - :class => 'leave-community',
13   - :title => _("Leave community"),
  8 + </div>
  9 + <div style="clear:both"></div>
  10 + <div class="community-block-buttons">
  11 + <% if logged_in? %>
  12 +
  13 + <% if profile.members.include?(user) || profile.already_request_membership?(user) %>
  14 + <%= button_without_text(
  15 + :remove,
  16 + __('Leave community'),
  17 + profile.leave_url,
  18 + :title => _("Leave community"),
  19 + :style => 'position: relative;') %>
  20 + <% else %>
  21 + <%= button_without_text(
  22 + :add,
  23 + __('Join community'),
  24 + profile.join_url,
  25 + :title => _("Join community"),
  26 + :style => 'position: relative;') %>
  27 + <% end %>
  28 +
  29 + <% if profile.enable_contact? %>
  30 + <%= button_without_text(
  31 + :'menu-mail',
  32 + __('Send an e-mail'),
  33 + { :profile => profile.identifier,
  34 + :controller => 'contact',
  35 + :action => 'new' },
  36 + :title => _('Send an e-mail to the administrators'),
  37 + :stle => 'position: relative;') %>
  38 + <% end %>
  39 +
  40 + <%= report_abuse(profile, :button_without_text) %>
  41 +
  42 + <% if !user.nil? && user.has_permission?('edit_profile', profile) %>
  43 +
  44 + <%= button_without_text(
  45 + :'menu-ctrl-panel',
  46 + __('Control Panel'),
  47 + profile.admin_url,
  48 + :title => _('Configure this community'),
14 49 :style => 'position: relative;') %>
15   - <%= button(:add, content_tag('span', __('Join')), profile.join_url,
16   - :class => 'join-community',
17   - :title => _("Join community"),
18   - :style => 'position: relative; display: none;') %>
19   - <% else %>
20   - <% unless profile.already_request_membership?(user) %>
21   - <%= button(:delete, content_tag('span', __('Leave community')), profile.leave_url,
22   - :class => 'leave-community',
23   - :title => _("Leave community"),
24   - :style => 'position: relative; display: none;') %>
25   - <%= button(:add, content_tag('span', __('Join')), profile.join_url,
26   - :class => 'join-community',
  50 +
  51 + <% end %>
  52 +
  53 + <% else %>
  54 + <%= button_without_text(
  55 + :add,
  56 + __('Join community'),
  57 + profile.join_not_logged_url,
27 58 :title => _("Join community"),
28 59 :style => 'position: relative;') %>
29   - <% end %>
30   - <% end %>
31   -
32   - <% else %>
33   - <%= link_to content_tag('span', _('Join')), profile.join_not_logged_url, :class => 'button with-text icon-add', :title => _("Join comunity") %>
34   - <% end %>
35   - </div>
  60 + <% end %>
36 61 </div>
37   - <div style="clear:both"></div>
38 62 </div>
... ...