Commit da4e64e36d066927142841fac4589901c71ccaf4
1 parent
fdeb05eb
Exists in
master
and in
29 other branches
ActionItem18: implementing recent documents in Profile class
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@434 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
35 additions
and
0 deletions
Show diff stats
app/models/profile.rb
... | ... | @@ -89,4 +89,12 @@ class Profile < ActiveRecord::Base |
89 | 89 | nil |
90 | 90 | end |
91 | 91 | |
92 | + # gets recent documents in this profile. | |
93 | + # | |
94 | + # +limit+ is the maximum number of documents to be returned. It defaults to | |
95 | + # 10. | |
96 | + def recent_documents(limit = 10) | |
97 | + homepage.children.find(:all, :limit => limit, :order => 'created_on desc') | |
98 | + end | |
99 | + | |
92 | 100 | end | ... | ... |
test/unit/profile_test.rb
... | ... | @@ -114,6 +114,33 @@ class ProfileTest < Test::Unit::TestCase |
114 | 114 | assert_invalid_identifier 'test' |
115 | 115 | end |
116 | 116 | |
117 | + def test_should_provide_recent_documents | |
118 | + profile = Profile.create!(:name => 'Testing Recent documents', :identifier => 'testing_recent_documents') | |
119 | + doc1 = Article.new(:title => 'document 1', :body => 'la la la la la') | |
120 | + doc1.parent = profile.homepage | |
121 | + doc1.save! | |
122 | + | |
123 | + doc2 = Article.new(:title => 'document 2', :body => 'la la la la la') | |
124 | + doc2.parent = profile.homepage | |
125 | + doc2.save! | |
126 | + | |
127 | + docs = profile.recent_documents(2) | |
128 | + assert_equal 2, docs.size | |
129 | + assert docs.map(&:id).include?(doc1.id) | |
130 | + assert docs.map(&:id).include?(doc2.id) | |
131 | + end | |
132 | + | |
133 | + def test_should_provide_most_recent_documents | |
134 | + profile = Profile.create!(:name => 'Testing Recent documents', :identifier => 'testing_recent_documents') | |
135 | + doc1 = Article.new(:title => 'document 1', :body => 'la la la la la') | |
136 | + doc1.parent = profile.homepage | |
137 | + doc1.save! | |
138 | + | |
139 | + docs = profile.recent_documents(1) | |
140 | + assert_equal 1, docs.size | |
141 | + assert_equal doc1.id, docs.first.id | |
142 | + end | |
143 | + | |
117 | 144 | private |
118 | 145 | |
119 | 146 | def assert_invalid_identifier(id) | ... | ... |