Commit 5955ed72b9252635177e89bb5f1ce92be6444285

Authored by Rafael Reggiani Manzo
1 parent 1fafa75f

Fix ArticleBlock unit tests and view

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.

The view required fix at the html escaping method call synthax.
app/views/blocks/article.html.erb
1 <%= block_title(block.title) %> 1 <%= block_title(block.title) %>
2 <% if block.article %> 2 <% if block.article %>
3 - <%=h  
4 - article_to_html(FilePresenter.for(block.article), 3 + <%=
  4 + h(article_to_html(FilePresenter.for(block.article),
5 :gallery_view => false, 5 :gallery_view => false,
6 :inside_block => block, # For Blogs and folders 6 :inside_block => block, # For Blogs and folders
7 :format => block.visualization_format # For Articles and contents 7 :format => block.visualization_format # For Articles and contents
8 - ) 8 + ))
9 %> 9 %>
10 <% else %> 10 <% else %>
11 <%= _('Article not selected yet.') %> 11 <%= _('Article not selected yet.') %>
test/unit/article_block_test.rb
@@ -7,15 +7,6 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -7,15 +7,6 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
7 assert_not_equal Block.description, ArticleBlock.description 7 assert_not_equal Block.description, ArticleBlock.description
8 end 8 end
9 9
10 - should "take article's content" do  
11 - block = ArticleBlock.new  
12 - article = mock  
13 - article.expects(:to_html).returns("Article content")  
14 - block.stubs(:article).returns(article)  
15 -  
16 - assert_match(/Article content/, instance_eval(&block.content))  
17 - end  
18 -  
19 should 'refer to an article' do 10 should 'refer to an article' do
20 profile = create_user('testuser').person 11 profile = create_user('testuser').person
21 article = profile.articles.build(:name => 'test article') 12 article = profile.articles.build(:name => 'test article')
@@ -85,6 +76,30 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -85,6 +76,30 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
85 assert_equal [a],block.available_articles 76 assert_equal [a],block.available_articles
86 end 77 end
87 78
  79 + protected
  80 + include NoosferoTestHelper
  81 +
  82 +end
  83 +
  84 +require 'boxes_helper'
  85 +require 'block_helper'
  86 +
  87 +class ArticleBlockViewTest < ActionView::TestCase
  88 + include BoxesHelper
  89 +
  90 + ActionView::Base.send :include, ApplicationHelper
  91 + ActionView::Base.send :include, BlockHelper
  92 +
  93 + should "take article's content" do
  94 + block = ArticleBlock.new
  95 + article = mock
  96 + article.expects(:to_html).returns("Article content")
  97 + block.stubs(:article).returns(article)
  98 + ActionView::Base.any_instance.stubs(:block_title).returns("")
  99 +
  100 + assert_match(/Article content/, render_block_content(block))
  101 + end
  102 +
88 should "display empty title if title is blank" do 103 should "display empty title if title is blank" do
89 block = ArticleBlock.new 104 block = ArticleBlock.new
90 article = mock 105 article = mock
@@ -92,7 +107,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -92,7 +107,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
92 block.expects(:title).returns('') 107 block.expects(:title).returns('')
93 block.stubs(:article).returns(article) 108 block.stubs(:article).returns(article)
94 109
95 - assert_equal "<h3 class=\"block-title empty\"><span></span></h3>Article content", instance_eval(&block.content) 110 + assert_equal "<h3 class=\"block-title empty\"><span></span></h3>\n Article content\n", render_block_content(block)
96 end 111 end
97 112
98 should "display title if defined" do 113 should "display title if defined" do
@@ -102,7 +117,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -102,7 +117,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
102 block.expects(:title).returns('Article title') 117 block.expects(:title).returns('Article title')
103 block.stubs(:article).returns(article) 118 block.stubs(:article).returns(article)
104 119
105 - assert_equal "<h3 class=\"block-title\"><span>Article title</span></h3>Article content", instance_eval(&block.content) 120 + assert_equal "<h3 class=\"block-title\"><span>Article title</span></h3>\n Article content\n", render_block_content(block)
106 end 121 end
107 122
108 should 'display image if article is an image' do 123 should 'display image if article is an image' do
@@ -113,7 +128,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -113,7 +128,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
113 block.article = image 128 block.article = image
114 block.save! 129 block.save!
115 130
116 - assert_tag_in_string instance_eval(&block.content), 131 + assert_tag_in_string render_block_content(block),
117 :tag => 'img', 132 :tag => 'img',
118 :attributes => { 133 :attributes => {
119 :src => image.public_filename(:display), 134 :src => image.public_filename(:display),
@@ -129,7 +144,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -129,7 +144,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
129 block.article = image 144 block.article = image
130 block.save! 145 block.save!
131 146
132 - assert_no_match(/Previous/, instance_eval(&block.content)) 147 + assert_no_match(/Previous/, render_block_content(block))
133 end 148 end
134 149
135 should 'display link to archive if article is an archive' do 150 should 'display link to archive if article is an archive' do
@@ -141,11 +156,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase @@ -141,11 +156,7 @@ class ArticleBlockTest &lt; ActiveSupport::TestCase
141 block.save! 156 block.save!
142 157
143 UploadedFile.any_instance.stubs(:url).returns('myhost.mydomain/path/to/file') 158 UploadedFile.any_instance.stubs(:url).returns('myhost.mydomain/path/to/file')
  159 + assert_tag_in_string render_block_content(block), :tag => 'a', :content => _('Download')
144 160
145 - assert_tag_in_string instance_eval(&block.content), :tag => 'a', :content => _('Download')  
146 end 161 end
147 -  
148 - protected  
149 - include NoosferoTestHelper  
150 -  
151 end 162 end