Commit 8d3d9809c585c3118b08de773e6bb5ef279ef2e5
1 parent
5760c6d0
Exists in
master
and in
22 other branches
ActionItem155: adding missing tests
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1636 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
3 changed files
with
65 additions
and
5 deletions
Show diff stats
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 < Test::Unit::TestCase | @@ -435,10 +467,5 @@ class SearchControllerTest < 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 < Test::Unit::TestCase | @@ -109,4 +109,33 @@ class CommentTest < 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 |