Commit c265698665dfd0ae007706b61a6ccf83549e61b6

Authored by Daniela Feitosa
1 parent b2cd2f0b

Removed comments message when it's not enabled on article

(ActionItem1888)
app/helpers/content_viewer_helper.rb
... ... @@ -20,14 +20,18 @@ module ContentViewerHelper
20 20 unless args[:no_link]
21 21 title = content_tag('h1', link_to(article.name, article.url), :class => 'title')
22 22 end
23   - comments = args[:no_comments] ? '' : (("- %s") % link_to_comments(article))
  23 + comments = ''
  24 + unless args[:no_comments] || !article.accept_comments
  25 + comments = ("- %s") % link_to_comments(article)
  26 + end
24 27 title << content_tag('span', _("%s, by %s %s") % [show_date(article.published_at), link_to(article.author_name, article.author.url), comments], :class => 'created-at')
25 28 end
26 29 title
27 30 end
28 31  
29 32 def link_to_comments(article, args = {})
30   - link_to( number_of_comments(article), article.url.merge(:anchor => 'comments_list') )
  33 + return '' unless article.accept_comments?
  34 + link_to(number_of_comments(article), article.url.merge(:anchor => 'comments_list') )
31 35 end
32 36  
33 37 def article_translations(article)
... ...
test/unit/content_viewer_helper_test.rb
... ... @@ -46,6 +46,20 @@ class ContentViewerHelperTest &lt; Test::Unit::TestCase
46 46 assert_no_match /a href='#{article.url}'>#{article.name}</, result
47 47 end
48 48  
  49 + should 'not create link to comments if called with no_comments' do
  50 + blog = fast_create(Blog, :name => 'Blog test', :profile_id => profile.id)
  51 + article = fast_create(TextileArticle, :name => 'art test', :profile_id => profile.id, :parent_id => blog.id)
  52 + result = article_title(article, :no_comments => true)
  53 + assert_no_match(/a href='.*comments_list.*>No comments yet</, result)
  54 + end
  55 +
  56 + should 'not create link to comments if the article doesn\'t allow comments' do
  57 + blog = fast_create(Blog, :name => 'Blog test', :profile_id => profile.id)
  58 + article = fast_create(TextileArticle, :name => 'art test', :profile_id => profile.id, :parent_id => blog.id, :accept_comments => false)
  59 + result = article_title(article)
  60 + assert_no_match(/a href='.*comments_list.*>No comments yet</, result)
  61 + end
  62 +
49 63 should 'count total of comments from post' do
50 64 article = TextileArticle.new(:name => 'first post for test', :body => 'first post for test', :profile => profile)
51 65 article.stubs(:url).returns({})
... ... @@ -54,6 +68,14 @@ class ContentViewerHelperTest &lt; Test::Unit::TestCase
54 68 assert_match /One comment/, result
55 69 end
56 70  
  71 + should 'not display total of comments if the article doesn\'t allow comments' do
  72 + article = TextileArticle.new(:name => 'first post for test', :body => 'first post for test', :profile => profile, :accept_comments => false)
  73 + article.stubs(:url).returns({})
  74 + article.stubs(:comments).returns([Comment.new(:author => profile, :title => 'test', :body => 'test')])
  75 + result = link_to_comments(article)
  76 + assert_equal '', result
  77 + end
  78 +
57 79 should 'not list feed article' do
58 80 profile.articles << Blog.new(:name => 'Blog test', :profile => profile)
59 81 assert_includes profile.blog.children.map{|i| i.class}, RssFeed
... ...