Commit ce90725256940bea881c0bce823694d2d5570d85
1 parent
9e756466
Exists in
master
Do not display notifications when gamification is disabled for a profile
Showing
2 changed files
with
19 additions
and
2 deletions
Show diff stats
lib/gamification_plugin.rb
@@ -35,7 +35,7 @@ class GamificationPlugin < Noosfero::Plugin | @@ -35,7 +35,7 @@ class GamificationPlugin < Noosfero::Plugin | ||
35 | 35 | ||
36 | def body_ending | 36 | def body_ending |
37 | proc do | 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 | badges = current_person.badges.notification_pending.all | 39 | badges = current_person.badges.notification_pending.all |
40 | current_person.sash.notify_all_badges_from_user | 40 | current_person.sash.notify_all_badges_from_user |
41 | render :file => 'gamification/display_notifications', :locals => {:badges => badges} | 41 | render :file => 'gamification/display_notifications', :locals => {:badges => badges} |
test/unit/gamification_plugin_test.rb
@@ -5,9 +5,10 @@ class GamificationPluginTest < ActiveSupport::TestCase | @@ -5,9 +5,10 @@ class GamificationPluginTest < ActiveSupport::TestCase | ||
5 | def setup | 5 | def setup |
6 | @plugin = GamificationPlugin.new | 6 | @plugin = GamificationPlugin.new |
7 | @current_person = create_user('person').person | 7 | @current_person = create_user('person').person |
8 | + @response = mock | ||
8 | end | 9 | end |
9 | 10 | ||
10 | - attr_accessor :plugin, :current_person | 11 | + attr_accessor :plugin, :current_person, :response |
11 | 12 | ||
12 | should 'return user points and badges in user_data_extras' do | 13 | should 'return user points and badges in user_data_extras' do |
13 | assert_equal({:gamification_plugin => {:points => 0, :badges => [], :level => 0}}, instance_eval(&plugin.user_data_extras)) | 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,4 +19,20 @@ class GamificationPluginTest < ActiveSupport::TestCase | ||
18 | assert_equal({}, instance_eval(&plugin.user_data_extras)) | 19 | assert_equal({}, instance_eval(&plugin.user_data_extras)) |
19 | end | 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 | end | 38 | end |