Commit ce90725256940bea881c0bce823694d2d5570d85

Authored by Victor Costa
1 parent 9e756466
Exists in master

Do not display notifications when gamification is disabled for a profile

lib/gamification_plugin.rb
... ... @@ -35,7 +35,7 @@ class GamificationPlugin < Noosfero::Plugin
35 35  
36 36 def body_ending
37 37 proc do
38   - if current_person.present? && response.status == 200
  38 + if current_person.present? && !current_person.gamification_plugin_disabled && response.status == 200
39 39 badges = current_person.badges.notification_pending.all
40 40 current_person.sash.notify_all_badges_from_user
41 41 render :file => 'gamification/display_notifications', :locals => {:badges => badges}
... ...
test/unit/gamification_plugin_test.rb
... ... @@ -5,9 +5,10 @@ class GamificationPluginTest < ActiveSupport::TestCase
5 5 def setup
6 6 @plugin = GamificationPlugin.new
7 7 @current_person = create_user('person').person
  8 + @response = mock
8 9 end
9 10  
10   - attr_accessor :plugin, :current_person
  11 + attr_accessor :plugin, :current_person, :response
11 12  
12 13 should 'return user points and badges in user_data_extras' do
13 14 assert_equal({:gamification_plugin => {:points => 0, :badges => [], :level => 0}}, instance_eval(&plugin.user_data_extras))
... ... @@ -18,4 +19,20 @@ class GamificationPluginTest < ActiveSupport::TestCase
18 19 assert_equal({}, instance_eval(&plugin.user_data_extras))
19 20 end
20 21  
  22 + should 'render notifications for a profile' do
  23 + response.expects(:status).returns(200)
  24 + expects(:render).returns('render notifications')
  25 + assert_equal 'render notifications', instance_eval(&plugin.body_ending)
  26 + end
  27 +
  28 + should 'render nothing when there is no current person' do
  29 + @current_person = nil
  30 + assert_equal '', instance_eval(&plugin.body_ending)
  31 + end
  32 +
  33 + should 'not render notifications when gamification is disabled for a profile' do
  34 + current_person.update_attribute(:gamification_plugin_disabled, true)
  35 + assert_equal '', instance_eval(&plugin.body_ending)
  36 + end
  37 +
21 38 end
... ...