Commit 8d3d9809c585c3118b08de773e6bb5ef279ef2e5

Authored by AntonioTerceiro
1 parent 5760c6d0

ActionItem155: adding missing tests


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1636 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/comment.rb
@@ -34,4 +34,8 @@ class Comment < ActiveRecord::Base @@ -34,4 +34,8 @@ class Comment < ActiveRecord::Base
34 "comment-#{id}" 34 "comment-#{id}"
35 end 35 end
36 36
  37 + def self.recent(limit = nil)
  38 + self.find(:all, :order => 'created_on desc, id desc', :limit => limit)
  39 + end
  40 +
37 end 41 end
test/functional/search_controller_test.rb
@@ -131,6 +131,38 @@ class SearchControllerTest < Test::Unit::TestCase @@ -131,6 +131,38 @@ class SearchControllerTest < Test::Unit::TestCase
131 assert_not_includes assigns(:results)[:comments], comment2 131 assert_not_includes assigns(:results)[:comments], comment2
132 end 132 end
133 133
  134 + # 'assets' menu outside any category
  135 + should 'list comments in general' do
  136 + person = create_user('teste').person
  137 + art = person.articles.build(:name => 'an article to be found'); art.save!
  138 + comment = art.comments.build(:title => 'comment to be found', :body => 'hfyfyh', :author => person); comment.save!
  139 +
  140 + get :assets, :asset => 'comments'
  141 + assert_includes assigns(:results)[:comments], comment
  142 + end
  143 +
  144 + # 'assets' menu inside a specific category
  145 + should 'list comments in a specified category' do
  146 + person = create_user('teste').person
  147 +
  148 + # in category
  149 + art1 = person.articles.build(:name => 'an article to be found')
  150 + art1.categories << @category
  151 + art1.save!
  152 + comment1 = art1.comments.build(:title => 'comment to be found', :body => 'hfyfyh', :author => person); comment1.save!
  153 +
  154 + # not in category
  155 + art2 = person.articles.build(:name => 'another article to be found')
  156 + art2.save!
  157 + comment2 = art2.comments.build(:title => 'comment to be found', :body => 'hfyfyh', :author => person); comment2.save!
  158 +
  159 +
  160 + get :assets, :asset => 'comments', :category_path => [ 'my-category' ]
  161 +
  162 + assert_includes assigns(:results)[:comments], comment1
  163 + assert_not_includes assigns(:results)[:comments], comment2
  164 + end
  165 +
134 should 'find enterprises' do 166 should 'find enterprises' do
135 ent = Enterprise.create!(:name => 'teste', :identifier => 'teste') 167 ent = Enterprise.create!(:name => 'teste', :identifier => 'teste')
136 get 'index', :query => 'teste', :find_in => [ 'enterprises' ] 168 get 'index', :query => 'teste', :find_in => [ 'enterprises' ]
@@ -435,10 +467,5 @@ class SearchControllerTest &lt; Test::Unit::TestCase @@ -435,10 +467,5 @@ class SearchControllerTest &lt; Test::Unit::TestCase
435 get :assets, :asset => 'products' 467 get :assets, :asset => 'products'
436 assert_equal 'Products', assigns(:asset_name) 468 assert_equal 'Products', assigns(:asset_name)
437 end 469 end
438 -  
439 - should 'show assets comments' do  
440 - get :assets, :asset => 'comments'  
441 - assert_tag :tag => 'div', :attributes => {:id => 'boxes'}, :content => {:tag => 'h2', :content => "Comments"}  
442 - end  
443 470
444 end 471 end
test/unit/comment_test.rb
@@ -109,4 +109,33 @@ class CommentTest &lt; Test::Unit::TestCase @@ -109,4 +109,33 @@ class CommentTest &lt; Test::Unit::TestCase
109 assert_includes Comment.find_by_contents('anything'), c1 109 assert_includes Comment.find_by_contents('anything'), c1
110 end 110 end
111 111
  112 + should 'be able to find recent comments' do
  113 + Comment.delete_all
  114 +
  115 + owner = create_user('testuser').person
  116 + art = owner.articles.build(:name => 'ytest'); art.save!
  117 + comments = []
  118 + 3.times do
  119 + comments.unshift art.comments.create!(:title => 'a test comment', :body => 'bla', :author => owner)
  120 + end
  121 +
  122 + assert_equal comments, Comment.recent
  123 + end
  124 +
  125 + should 'be able to find recent comments with limit' do
  126 + Comment.delete_all
  127 +
  128 + owner = create_user('testuser').person
  129 + art = owner.articles.build(:name => 'ytest'); art.save!
  130 + comments = []
  131 + 3.times do
  132 + comments.unshift art.comments.create!(:title => 'a test comment', :body => 'bla', :author => owner)
  133 + end
  134 +
  135 + comments.pop
  136 +
  137 + assert_equal comments, Comment.recent(2)
  138 + end
  139 +
  140 +
112 end 141 end