Commit 21a9339081c9f7fe9c4e271bccab808ab50e2f96

Authored by Leandro Santos
1 parent 067cda04

should not crash if em empty parent is passed as parameter

lib/proposals_discussion_plugin.rb
@@ -16,7 +16,7 @@ class ProposalsDiscussionPlugin < Noosfero::Plugin @@ -16,7 +16,7 @@ class ProposalsDiscussionPlugin < Noosfero::Plugin
16 if context.respond_to?(:params) && context.params.kind_of?(Hash) && context.params[:controller] == 'cms' && context.params[:action] == 'new' 16 if context.respond_to?(:params) && context.params.kind_of?(Hash) && context.params[:controller] == 'cms' && context.params[:action] == 'new'
17 types = [] 17 types = []
18 parent_id = context.params[:parent_id] || (context.params[:article][:parent_id] unless context.params[:article].nil?) 18 parent_id = context.params[:parent_id] || (context.params[:article][:parent_id] unless context.params[:article].nil?)
19 - parent = parent_id ? context.profile.articles.find(parent_id) : nil 19 + parent = parent_id.present? ? context.profile.articles.find(parent_id) : nil
20 types << ProposalsDiscussionPlugin::Discussion 20 types << ProposalsDiscussionPlugin::Discussion
21 types << ProposalsDiscussionPlugin::Topic if parent.kind_of?(ProposalsDiscussionPlugin::Discussion) 21 types << ProposalsDiscussionPlugin::Topic if parent.kind_of?(ProposalsDiscussionPlugin::Discussion)
22 if parent.kind_of?(ProposalsDiscussionPlugin::Topic) || ( parent.kind_of?(ProposalsDiscussionPlugin::Discussion) && !parent.allow_topics) 22 if parent.kind_of?(ProposalsDiscussionPlugin::Topic) || ( parent.kind_of?(ProposalsDiscussionPlugin::Discussion) && !parent.allow_topics)
test/unit/proposals_discussion_plugin_test.rb
@@ -20,6 +20,11 @@ class ProposalsDiscussionPluginTest &lt; ActiveSupport::TestCase @@ -20,6 +20,11 @@ class ProposalsDiscussionPluginTest &lt; ActiveSupport::TestCase
20 assert_includes plugin.content_types, ProposalsDiscussionPlugin::Discussion 20 assert_includes plugin.content_types, ProposalsDiscussionPlugin::Discussion
21 end 21 end
22 22
  23 + should 'return Discussion as a content type if parent is empty' do
  24 + @params[:parent_id] = ''
  25 + assert_includes plugin.content_types, ProposalsDiscussionPlugin::Discussion
  26 + end
  27 +
23 should 'return Topic as a content type if parent_id parameter is a Discussion' do 28 should 'return Topic as a content type if parent_id parameter is a Discussion' do
24 parent = fast_create(ProposalsDiscussionPlugin::Discussion, :profile_id => @profile.id) 29 parent = fast_create(ProposalsDiscussionPlugin::Discussion, :profile_id => @profile.id)
25 @params[:parent_id] = parent.id 30 @params[:parent_id] = parent.id