Commit 5955ed72b9252635177e89bb5f1ce92be6444285
1 parent
1fafa75f
Exists in
web_steps_improvements
and in
9 other branches
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.
Showing
2 changed files
with
32 additions
and
21 deletions
Show diff stats
app/views/blocks/article.html.erb
1 | 1 | <%= block_title(block.title) %> |
2 | 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 | 5 | :gallery_view => false, |
6 | 6 | :inside_block => block, # For Blogs and folders |
7 | 7 | :format => block.visualization_format # For Articles and contents |
8 | - ) | |
8 | + )) | |
9 | 9 | %> |
10 | 10 | <% else %> |
11 | 11 | <%= _('Article not selected yet.') %> | ... | ... |
test/unit/article_block_test.rb
... | ... | @@ -7,15 +7,6 @@ class ArticleBlockTest < ActiveSupport::TestCase |
7 | 7 | assert_not_equal Block.description, ArticleBlock.description |
8 | 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 | 10 | should 'refer to an article' do |
20 | 11 | profile = create_user('testuser').person |
21 | 12 | article = profile.articles.build(:name => 'test article') |
... | ... | @@ -85,6 +76,30 @@ class ArticleBlockTest < ActiveSupport::TestCase |
85 | 76 | assert_equal [a],block.available_articles |
86 | 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 | 103 | should "display empty title if title is blank" do |
89 | 104 | block = ArticleBlock.new |
90 | 105 | article = mock |
... | ... | @@ -92,7 +107,7 @@ class ArticleBlockTest < ActiveSupport::TestCase |
92 | 107 | block.expects(:title).returns('') |
93 | 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 | 111 | end |
97 | 112 | |
98 | 113 | should "display title if defined" do |
... | ... | @@ -102,7 +117,7 @@ class ArticleBlockTest < ActiveSupport::TestCase |
102 | 117 | block.expects(:title).returns('Article title') |
103 | 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 | 121 | end |
107 | 122 | |
108 | 123 | should 'display image if article is an image' do |
... | ... | @@ -113,7 +128,7 @@ class ArticleBlockTest < ActiveSupport::TestCase |
113 | 128 | block.article = image |
114 | 129 | block.save! |
115 | 130 | |
116 | - assert_tag_in_string instance_eval(&block.content), | |
131 | + assert_tag_in_string render_block_content(block), | |
117 | 132 | :tag => 'img', |
118 | 133 | :attributes => { |
119 | 134 | :src => image.public_filename(:display), |
... | ... | @@ -129,7 +144,7 @@ class ArticleBlockTest < ActiveSupport::TestCase |
129 | 144 | block.article = image |
130 | 145 | block.save! |
131 | 146 | |
132 | - assert_no_match(/Previous/, instance_eval(&block.content)) | |
147 | + assert_no_match(/Previous/, render_block_content(block)) | |
133 | 148 | end |
134 | 149 | |
135 | 150 | should 'display link to archive if article is an archive' do |
... | ... | @@ -141,11 +156,7 @@ class ArticleBlockTest < ActiveSupport::TestCase |
141 | 156 | block.save! |
142 | 157 | |
143 | 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 | 161 | end |
147 | - | |
148 | - protected | |
149 | - include NoosferoTestHelper | |
150 | - | |
151 | 162 | end | ... | ... |