Commit 7c4f4efd7ee4cb93c49342cbe7695d8ba36c06b5
1 parent
880fbdca
Exists in
staging
and in
7 other branches
Fix blog archives block unit test
By removing the content method, it is now necessary to turn the test into a view one using the BoxesHelper method and properly stubbing other helpers. This was inspired by the same conversion made by commit 23cca52cdaea5cc3b46e4982f30ad3426891e2f2 on MyNetworkBlock test.
Showing
1 changed file
with
111 additions
and
61 deletions
Show diff stats
test/unit/blog_archives_block_test.rb
| ... | ... | @@ -17,6 +17,69 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 17 | 17 | assert l.editable? |
| 18 | 18 | end |
| 19 | 19 | |
| 20 | + should 'has field to configure blog' do | |
| 21 | + b = BlogArchivesBlock.new | |
| 22 | + assert b.respond_to?(:blog_id) | |
| 23 | + assert b.respond_to?(:blog_id=) | |
| 24 | + end | |
| 25 | + | |
| 26 | + should 'not try to load a removed blog' do | |
| 27 | + block = fast_create(BlogArchivesBlock) | |
| 28 | + block.blog_id = profile.blog.id | |
| 29 | + block.save! | |
| 30 | + block.stubs(:owner).returns(profile) | |
| 31 | + profile.blog.destroy | |
| 32 | + assert_nothing_raised do | |
| 33 | + assert_nil block.blog | |
| 34 | + end | |
| 35 | + end | |
| 36 | + | |
| 37 | + should 'load next blog if configured blog was removed' do | |
| 38 | + other_blog = fast_create(Blog, :profile_id => profile.id) | |
| 39 | + block = fast_create(BlogArchivesBlock) | |
| 40 | + block.blog_id = profile.blog.id | |
| 41 | + block.save! | |
| 42 | + block.stubs(:owner).returns(profile) | |
| 43 | + profile.blog.destroy | |
| 44 | + assert_nothing_raised do | |
| 45 | + assert_equal other_blog, block.blog | |
| 46 | + end | |
| 47 | + end | |
| 48 | + | |
| 49 | +#FIXME Performance issues with display_to. Must convert it to a scope. | |
| 50 | +# Checkout this page for further information: http://noosfero.org/Development/ActionItem2705 | |
| 51 | +# | |
| 52 | +# should 'not count articles if the user can\'t see them' do | |
| 53 | +# person = create_user('testuser').person | |
| 54 | +# blog = fast_create(Blog, :profile_id => profile.id, :path => 'blog_path') | |
| 55 | +# block = fast_create(BlogArchivesBlock) | |
| 56 | +# | |
| 57 | +# feed = mock() | |
| 58 | +# feed.stubs(:url).returns(blog.url) | |
| 59 | +# blog.stubs(:feed).returns(feed) | |
| 60 | +# block.stubs(:blog).returns(blog) | |
| 61 | +# block.stubs(:owner).returns(profile) | |
| 62 | +# | |
| 63 | +# public_post = fast_create(TextileArticle, :profile_id => profile.id, :parent_id => blog.id, :published => true, :published_at => Time.mktime(2012, 'jan')) | |
| 64 | +# private_post = fast_create(TextileArticle, :profile_id => profile.id, :parent_id => blog.id, :published => false, :published_at => Time.mktime(2012, 'jan')) | |
| 65 | +# | |
| 66 | +# assert_match /January \(1\)/, block.content({:person => person}) | |
| 67 | +# assert_match /January \(1\)/, block.content() | |
| 68 | +# assert_match /January \(2\)/, block.content({:person => profile}) | |
| 69 | +# end | |
| 70 | +end | |
| 71 | + | |
| 72 | +require 'boxes_helper' | |
| 73 | + | |
| 74 | +class BlogArchivesBlockViewTest < ActionView::TestCase | |
| 75 | + include BoxesHelper | |
| 76 | + | |
| 77 | + def setup | |
| 78 | + @profile = create_user('flatline').person | |
| 79 | + @profile.articles << Blog.new(:name => 'Blog One', :profile => @profile) | |
| 80 | + end | |
| 81 | + attr_reader :profile | |
| 82 | + | |
| 20 | 83 | should 'list amount posts by year' do |
| 21 | 84 | date = DateTime.parse('2008-01-10') |
| 22 | 85 | blog = profile.blog |
| ... | ... | @@ -26,7 +89,9 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 26 | 89 | end |
| 27 | 90 | block = BlogArchivesBlock.new |
| 28 | 91 | block.stubs(:owner).returns(profile) |
| 29 | - assert_tag_in_string block.content, :tag => 'li', :content => '2008 (10)' | |
| 92 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 93 | + ActionView::Base.any_instance.stubs(:month_name).returns("") | |
| 94 | + assert_tag_in_string render_block_content(block), :tag => 'li', :content => '2008 (10)' | |
| 30 | 95 | end |
| 31 | 96 | |
| 32 | 97 | should 'list amount posts by month' do |
| ... | ... | @@ -38,7 +103,18 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 38 | 103 | end |
| 39 | 104 | block = BlogArchivesBlock.new |
| 40 | 105 | block.stubs(:owner).returns(profile) |
| 41 | - assert_tag_in_string block.content, :tag => 'a', :content => 'January (10)', :attributes => {:href => /^http:\/\/.*\/flatline\/blog-one\?month=1&year=2008$/ } | |
| 106 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 107 | + ActionView::Base.any_instance.stubs(:month_name).with(1).returns("January") | |
| 108 | + ActionView::Base.any_instance.stubs(:month_name).with(2).returns("February") | |
| 109 | + ActionView::Base.any_instance.stubs(:month_name).with(3).returns("March") | |
| 110 | + ActionView::Base.any_instance.stubs(:month_name).with(4).returns("April") | |
| 111 | + ActionView::Base.any_instance.stubs(:month_name).with(5).returns("May") | |
| 112 | + ActionView::Base.any_instance.stubs(:month_name).with(6).returns("June") | |
| 113 | + ActionView::Base.any_instance.stubs(:month_name).with(7).returns("July") | |
| 114 | + ActionView::Base.any_instance.stubs(:month_name).with(8).returns("August") | |
| 115 | + ActionView::Base.any_instance.stubs(:month_name).with(9).returns("September") | |
| 116 | + ActionView::Base.any_instance.stubs(:month_name).with(10).returns("Octuber") | |
| 117 | + assert_tag_in_string render_block_content(block), :tag => 'a', :content => 'January (10)', :attributes => {:href => /^http:\/\/.*\/flatline\/blog-one\?month=1&year=2008$/ } | |
| 42 | 118 | end |
| 43 | 119 | |
| 44 | 120 | should 'order list of amount posts' do |
| ... | ... | @@ -49,7 +125,18 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 49 | 125 | end |
| 50 | 126 | block = BlogArchivesBlock.new |
| 51 | 127 | block.stubs(:owner).returns(profile) |
| 52 | - assert_tag_in_string block.content, :tag => 'li', :content => 'January (1)', | |
| 128 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 129 | + ActionView::Base.any_instance.stubs(:month_name).with(1).returns("January") | |
| 130 | + ActionView::Base.any_instance.stubs(:month_name).with(2).returns("February") | |
| 131 | + ActionView::Base.any_instance.stubs(:month_name).with(3).returns("March") | |
| 132 | + ActionView::Base.any_instance.stubs(:month_name).with(4).returns("April") | |
| 133 | + ActionView::Base.any_instance.stubs(:month_name).with(5).returns("May") | |
| 134 | + ActionView::Base.any_instance.stubs(:month_name).with(6).returns("June") | |
| 135 | + ActionView::Base.any_instance.stubs(:month_name).with(7).returns("July") | |
| 136 | + ActionView::Base.any_instance.stubs(:month_name).with(8).returns("August") | |
| 137 | + ActionView::Base.any_instance.stubs(:month_name).with(9).returns("September") | |
| 138 | + ActionView::Base.any_instance.stubs(:month_name).with(10).returns("Octuber") | |
| 139 | + assert_tag_in_string render_block_content(block), :tag => 'li', :content => 'January (1)', | |
| 53 | 140 | :sibling => {:tag => 'li', :content => 'February (1)', |
| 54 | 141 | :sibling => {:tag => 'li', :content => 'March (1)', |
| 55 | 142 | :sibling => {:tag => 'li', :content => 'April (1)', |
| ... | ... | @@ -63,7 +150,9 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 63 | 150 | end |
| 64 | 151 | block = BlogArchivesBlock.new |
| 65 | 152 | block.stubs(:owner).returns(profile) |
| 66 | - assert_match(/2009.*2008.*2007.*2006.*2005/m, block.content) | |
| 153 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 154 | + ActionView::Base.any_instance.stubs(:month_name).returns("") | |
| 155 | + assert_match(/2009.*2008.*2007.*2006.*2005/m, render_block_content(block)) | |
| 67 | 156 | end |
| 68 | 157 | |
| 69 | 158 | should 'order months from later to former' do |
| ... | ... | @@ -73,20 +162,20 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 73 | 162 | end |
| 74 | 163 | block = BlogArchivesBlock.new |
| 75 | 164 | block.stubs(:owner).returns(profile) |
| 76 | - assert_match(/.*March.*February.*January.*/m, block.content) | |
| 165 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 166 | + ActionView::Base.any_instance.stubs(:month_name).with(1).returns("January") | |
| 167 | + ActionView::Base.any_instance.stubs(:month_name).with(2).returns("February") | |
| 168 | + ActionView::Base.any_instance.stubs(:month_name).with(3).returns("March") | |
| 169 | + assert_match(/.*March.*February.*January.*/m, render_block_content(block)) | |
| 77 | 170 | end |
| 78 | 171 | |
| 79 | 172 | should 'not display any content if has no blog' do |
| 80 | 173 | profile.blogs.destroy_all |
| 81 | 174 | block = BlogArchivesBlock.new |
| 82 | 175 | block.stubs(:owner).returns(profile) |
| 83 | - assert_nil block.content | |
| 84 | - end | |
| 85 | - | |
| 86 | - should 'has field to configure blog' do | |
| 87 | - b = BlogArchivesBlock.new | |
| 88 | - assert b.respond_to?(:blog_id) | |
| 89 | - assert b.respond_to?(:blog_id=) | |
| 176 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 177 | + ActionView::Base.any_instance.stubs(:month_name).returns("") | |
| 178 | + assert_empty render_block_content(block) | |
| 90 | 179 | end |
| 91 | 180 | |
| 92 | 181 | should 'show posts from first blog' do |
| ... | ... | @@ -98,8 +187,10 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 98 | 187 | end |
| 99 | 188 | block = BlogArchivesBlock.new |
| 100 | 189 | block.stubs(:owner).returns(profile) |
| 101 | - assert_match(/blog-one/m, block.content) | |
| 102 | - assert_no_match(/blog-two/m, block.content) | |
| 190 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 191 | + ActionView::Base.any_instance.stubs(:month_name).returns("") | |
| 192 | + assert_match(/blog-one/m, render_block_content(block)) | |
| 193 | + assert_no_match(/blog-two/m, render_block_content(block)) | |
| 103 | 194 | end |
| 104 | 195 | |
| 105 | 196 | should 'list amount native posts by year' do |
| ... | ... | @@ -115,7 +206,9 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 115 | 206 | end |
| 116 | 207 | block = BlogArchivesBlock.new |
| 117 | 208 | block.stubs(:owner).returns(profile) |
| 118 | - assert_tag_in_string block.content, :tag => 'li', :content => '2008 (2)' | |
| 209 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 210 | + ActionView::Base.any_instance.stubs(:month_name).returns("") | |
| 211 | + assert_tag_in_string render_block_content(block), :tag => 'li', :content => '2008 (2)' | |
| 119 | 212 | end |
| 120 | 213 | |
| 121 | 214 | should 'list amount native posts by month' do |
| ... | ... | @@ -131,51 +224,8 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase |
| 131 | 224 | end |
| 132 | 225 | block = BlogArchivesBlock.new |
| 133 | 226 | block.stubs(:owner).returns(profile) |
| 134 | - assert_tag_in_string block.content, :tag => 'a', :content => 'January (2)', :attributes => {:href => /^http:\/\/.*\/flatline\/blog-one\?month=1&year=2008$/ } | |
| 135 | - end | |
| 136 | - | |
| 137 | - should 'not try to load a removed blog' do | |
| 138 | - block = fast_create(BlogArchivesBlock) | |
| 139 | - block.blog_id = profile.blog.id | |
| 140 | - block.save! | |
| 141 | - block.stubs(:owner).returns(profile) | |
| 142 | - profile.blog.destroy | |
| 143 | - assert_nothing_raised do | |
| 144 | - assert_nil block.blog | |
| 145 | - end | |
| 227 | + ActionView::Base.any_instance.stubs(:block_title).returns("") | |
| 228 | + ActionView::Base.any_instance.stubs(:month_name).with(1).returns("January") | |
| 229 | + assert_tag_in_string render_block_content(block), :tag => 'a', :content => 'January (2)', :attributes => {:href => /^http:\/\/.*\/flatline\/blog-one\?month=1&year=2008$/ } | |
| 146 | 230 | end |
| 147 | - | |
| 148 | - should 'load next blog if configured blog was removed' do | |
| 149 | - other_blog = fast_create(Blog, :profile_id => profile.id) | |
| 150 | - block = fast_create(BlogArchivesBlock) | |
| 151 | - block.blog_id = profile.blog.id | |
| 152 | - block.save! | |
| 153 | - block.stubs(:owner).returns(profile) | |
| 154 | - profile.blog.destroy | |
| 155 | - assert_nothing_raised do | |
| 156 | - assert_equal other_blog, block.blog | |
| 157 | - end | |
| 158 | - end | |
| 159 | - | |
| 160 | -#FIXME Performance issues with display_to. Must convert it to a scope. | |
| 161 | -# Checkout this page for further information: http://noosfero.org/Development/ActionItem2705 | |
| 162 | -# | |
| 163 | -# should 'not count articles if the user can\'t see them' do | |
| 164 | -# person = create_user('testuser').person | |
| 165 | -# blog = fast_create(Blog, :profile_id => profile.id, :path => 'blog_path') | |
| 166 | -# block = fast_create(BlogArchivesBlock) | |
| 167 | -# | |
| 168 | -# feed = mock() | |
| 169 | -# feed.stubs(:url).returns(blog.url) | |
| 170 | -# blog.stubs(:feed).returns(feed) | |
| 171 | -# block.stubs(:blog).returns(blog) | |
| 172 | -# block.stubs(:owner).returns(profile) | |
| 173 | -# | |
| 174 | -# public_post = fast_create(TextileArticle, :profile_id => profile.id, :parent_id => blog.id, :published => true, :published_at => Time.mktime(2012, 'jan')) | |
| 175 | -# private_post = fast_create(TextileArticle, :profile_id => profile.id, :parent_id => blog.id, :published => false, :published_at => Time.mktime(2012, 'jan')) | |
| 176 | -# | |
| 177 | -# assert_match /January \(1\)/, block.content({:person => person}) | |
| 178 | -# assert_match /January \(1\)/, block.content() | |
| 179 | -# assert_match /January \(2\)/, block.content({:person => profile}) | |
| 180 | -# end | |
| 181 | 231 | end | ... | ... |