Commit 565789d3f6d9a9c08fa087dc1a667ddd8bbb76ef
1 parent
5acb61dd
Exists in
master
and in
23 other branches
improved functional tests in community block plugin
Showing
4 changed files
with
134 additions
and
48 deletions
Show diff stats
app/helpers/application_helper.rb
| @@ -1250,11 +1250,19 @@ module ApplicationHelper | @@ -1250,11 +1250,19 @@ module ApplicationHelper | ||
| 1250 | already_reported_message = _('You already reported this profile.') | 1250 | already_reported_message = _('You already reported this profile.') |
| 1251 | report_profile_message = _('Report this profile for abusive behaviour') | 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 | if user.already_reported?(profile) | 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 | else | 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 | end | 1266 | end |
| 1259 | elsif type == :link | 1267 | elsif type == :link |
| 1260 | if user.already_reported?(profile) | 1268 | if user.already_reported?(profile) |
plugins/community_block/public/style.css
| @@ -38,6 +38,8 @@ | @@ -38,6 +38,8 @@ | ||
| 38 | 38 | ||
| 39 | #content .box-1 .community-block .community-block-buttons { | 39 | #content .box-1 .community-block .community-block-buttons { |
| 40 | //border: 1px solid #F00; | 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,10 +15,12 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 15 | @request = ActionController::TestRequest.new | 15 | @request = ActionController::TestRequest.new |
| 16 | @response = ActionController::TestResponse.new | 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 | @community = fast_create(Community, :environment_id => Environment.default) | 21 | @community = fast_create(Community, :environment_id => Environment.default) |
| 22 | + @community.add_member @user | ||
| 23 | + @community.add_admin @user | ||
| 22 | 24 | ||
| 23 | @environment = @community.environment | 25 | @environment = @community.environment |
| 24 | @environment.enabled_plugins = ['CommunityBlock'] | 26 | @environment.enabled_plugins = ['CommunityBlock'] |
| @@ -36,31 +38,81 @@ class ProfileControllerTest < ActionController::TestCase | @@ -36,31 +38,81 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 36 | @community.save! | 38 | @community.save! |
| 37 | end | 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 | assert_tag :div, :attributes => {:class => 'community-block-logo'} | 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 | end | 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 | end | 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 | end | 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 | end | 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 | end | 116 | end |
| 65 | 117 | ||
| 66 | end | 118 | end |
plugins/community_block/views/community_block.rhtml
| @@ -5,34 +5,58 @@ | @@ -5,34 +5,58 @@ | ||
| 5 | <div class="community-block-info"> | 5 | <div class="community-block-info"> |
| 6 | <h1 class="community-block-title"><%=profile.name%></h1> | 6 | <h1 class="community-block-title"><%=profile.name%></h1> |
| 7 | <div class="community-block-description"><%= profile.description %></div> | 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 | :style => 'position: relative;') %> | 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 | :title => _("Join community"), | 58 | :title => _("Join community"), |
| 28 | :style => 'position: relative;') %> | 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 | </div> | 61 | </div> |
| 37 | - <div style="clear:both"></div> | ||
| 38 | </div> | 62 | </div> |