Commit 4e7709e72a49cebe84aae9dfc1c0fe00ebc86179
1 parent
17997821
Exists in
master
adapting of article_extra_toolbar_buttons refactoring
Showing
3 changed files
with
34 additions
and
21 deletions
Show diff stats
db/migrate/20140715190749_add_setting_to_comments.rb
lib/comment_paragraph_plugin.rb
| ... | ... | @@ -44,11 +44,14 @@ class CommentParagraphPlugin < Noosfero::Plugin |
| 44 | 44 | 'manual' |
| 45 | 45 | end |
| 46 | 46 | |
| 47 | - def article_toolbar_actions(article) | |
| 48 | - return unless article.comment_paragraph_plugin_enabled? | |
| 49 | - proc do | |
| 50 | - button :toggle_comment_paragraph, article.comment_paragraph_plugin_activated? ? _('Deactivate Comments') : _('Activate Comments'), :controller => 'comment_paragraph_plugin_myprofile', :profile => article.profile.identifier, :action => 'toggle_activation', :id => article.id if article.allow_edit?(user) | |
| 51 | - end | |
| 47 | + def article_extra_toolbar_buttons(article) | |
| 48 | + return [] if !article.comment_paragraph_plugin_enabled? || !article.allow_edit?(current_person) | |
| 49 | + { | |
| 50 | + :title => article.comment_paragraph_plugin_activated? ? _('Deactivate Comments') : _('Activate Comments'), | |
| 51 | + :url => {:controller => 'comment_paragraph_plugin_myprofile', :profile => article.profile.identifier, :action => 'toggle_activation', :id => article.id}, | |
| 52 | + :icon => :toggle_comment_paragraph | |
| 53 | + } | |
| 54 | + | |
| 52 | 55 | end |
| 53 | 56 | |
| 54 | 57 | end | ... | ... |
test/unit/comment_paragraph_plugin_test.rb
| ... | ... | @@ -5,8 +5,10 @@ class CommentParagraphPluginTest < ActiveSupport::TestCase |
| 5 | 5 | |
| 6 | 6 | def setup |
| 7 | 7 | @environment = Environment.default |
| 8 | - @plugin = CommentParagraphPlugin.new | |
| 9 | 8 | @user = create_user('testuser').person |
| 9 | + context = mock() | |
| 10 | + context.stubs(:current_person).returns(@user) | |
| 11 | + @plugin = CommentParagraphPlugin.new(context) | |
| 10 | 12 | end |
| 11 | 13 | |
| 12 | 14 | attr_reader :environment, :plugin, :user |
| ... | ... | @@ -42,9 +44,7 @@ class CommentParagraphPluginTest < ActiveSupport::TestCase |
| 42 | 44 | article.expects(:comment_paragraph_plugin_enabled?).returns(true) |
| 43 | 45 | article.expects(:allow_edit?).with(user).returns(true) |
| 44 | 46 | |
| 45 | - content = plugin.article_toolbar_actions(article) | |
| 46 | - expects(:button).once | |
| 47 | - instance_eval(&content) | |
| 47 | + assert_not_equal [], plugin.article_extra_toolbar_buttons(article) | |
| 48 | 48 | end |
| 49 | 49 | |
| 50 | 50 | should 'not display button to toggle comment paragraph for users which can not edit the article' do |
| ... | ... | @@ -53,8 +53,7 @@ class CommentParagraphPluginTest < ActiveSupport::TestCase |
| 53 | 53 | article.expects(:comment_paragraph_plugin_enabled?).returns(true) |
| 54 | 54 | article.expects(:allow_edit?).with(user).returns(false) |
| 55 | 55 | |
| 56 | - content = plugin.article_toolbar_actions(article) | |
| 57 | - assert_equal nil, instance_eval(&content) | |
| 56 | + assert_equal [], plugin.article_extra_toolbar_buttons(article) | |
| 58 | 57 | end |
| 59 | 58 | |
| 60 | 59 | should 'not display button to toggle comment paragraph if plugin is not enabled' do |
| ... | ... | @@ -62,7 +61,27 @@ class CommentParagraphPluginTest < ActiveSupport::TestCase |
| 62 | 61 | article = fast_create(Article, :profile_id => profile.id) |
| 63 | 62 | article.expects(:comment_paragraph_plugin_enabled?).returns(false) |
| 64 | 63 | |
| 65 | - assert_equal nil, plugin.article_toolbar_actions(article) | |
| 64 | + assert_equal [], plugin.article_extra_toolbar_buttons(article) | |
| 65 | + end | |
| 66 | + | |
| 67 | + should 'display Activate Comments title if comment paragraph plugin is activated' do | |
| 68 | + profile = fast_create(Profile) | |
| 69 | + article = fast_create(Article, :profile_id => profile.id) | |
| 70 | + article.expects(:comment_paragraph_plugin_enabled?).returns(true) | |
| 71 | + article.expects(:allow_edit?).with(user).returns(true) | |
| 72 | + article.expects(:comment_paragraph_plugin_activated?).returns(false) | |
| 73 | + | |
| 74 | + assert_equal 'Activate Comments', plugin.article_extra_toolbar_buttons(article)[:title] | |
| 75 | + end | |
| 76 | + | |
| 77 | + should 'display Deactivate Comments title if comment paragraph plugin is deactivated' do | |
| 78 | + profile = fast_create(Profile) | |
| 79 | + article = fast_create(Article, :profile_id => profile.id) | |
| 80 | + article.expects(:comment_paragraph_plugin_enabled?).returns(true) | |
| 81 | + article.expects(:allow_edit?).with(user).returns(true) | |
| 82 | + article.expects(:comment_paragraph_plugin_activated?).returns(true) | |
| 83 | + | |
| 84 | + assert_equal 'Deactivate Comments', plugin.article_extra_toolbar_buttons(article)[:title] | |
| 66 | 85 | end |
| 67 | 86 | |
| 68 | 87 | end | ... | ... |