Commit 8d3d9809c585c3118b08de773e6bb5ef279ef2e5
1 parent
5760c6d0
Exists in
master
and in
29 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 |