Commit 584df3ec767ea38be6283291d499b851312cc8c7

Authored by Antonio Terceiro
1 parent 195e425b

Moving HTML generation tests to helper tests

(ActionItem1396)
app/models/folder.rb
@@ -28,13 +28,6 @@ class Folder < Article @@ -28,13 +28,6 @@ class Folder < Article
28 'folder' 28 'folder'
29 end 29 end
30 30
31 - # FIXME isn't this too much including just to be able to generate some HTML?  
32 - include ActionView::Helpers::TagHelper  
33 - include ActionView::Helpers::UrlHelper  
34 - include ActionController::UrlWriter  
35 - include ActionView::Helpers::AssetTagHelper  
36 - include FolderHelper  
37 - include DatesHelper  
38 31
39 def to_html(options = {}) 32 def to_html(options = {})
40 send(view_as) 33 send(view_as)
test/unit/folder_helper_test.rb
@@ -2,6 +2,12 @@ require File.dirname(__FILE__) + '/../test_helper' @@ -2,6 +2,12 @@ require File.dirname(__FILE__) + '/../test_helper'
2 2
3 class FolderHelperTest < Test::Unit::TestCase 3 class FolderHelperTest < Test::Unit::TestCase
4 4
  5 + include ActionView::Helpers::TagHelper
  6 + include ActionView::Helpers::UrlHelper
  7 + include ActionController::UrlWriter
  8 + include ActionView::Helpers::AssetTagHelper
  9 + include DatesHelper
  10 +
5 include FolderHelper 11 include FolderHelper
6 12
7 should 'display icon for articles' do 13 should 'display icon for articles' do
@@ -74,7 +80,7 @@ class FolderHelperTest &lt; Test::Unit::TestCase @@ -74,7 +80,7 @@ class FolderHelperTest &lt; Test::Unit::TestCase
74 article = fast_create(Article, {:name => 'Article1', :parent_id => folder.id, :profile_id => profile.id}) 80 article = fast_create(Article, {:name => 'Article1', :parent_id => folder.id, :profile_id => profile.id})
75 article = fast_create(Article, {:name => 'Article2', :parent_id => folder.id, :profile_id => profile.id}) 81 article = fast_create(Article, {:name => 'Article2', :parent_id => folder.id, :profile_id => profile.id})
76 82
77 - result = folder.list_articles(folder.children) 83 + result = list_articles(folder.children)
78 84
79 assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article1/ 85 assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article1/
80 assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article2/ 86 assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article2/
@@ -83,9 +89,22 @@ class FolderHelperTest &lt; Test::Unit::TestCase @@ -83,9 +89,22 @@ class FolderHelperTest &lt; Test::Unit::TestCase
83 should 'explictly advise if empty' do 89 should 'explictly advise if empty' do
84 profile = create_user('folder-owner').person 90 profile = create_user('folder-owner').person
85 folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id}) 91 folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id})
86 - result = folder.list_articles(folder.children) 92 + result = render 'content_viewer/folder', binding
87 93
88 assert_match '(empty folder)', result 94 assert_match '(empty folder)', result
89 end 95 end
90 96
  97 + should 'show body (folder description)' do
  98 + profile = create_user('folder-owner').person
  99 + folder = fast_create(Folder, {:name => 'Parent Folder', :profile_id => profile.id, :body => "This is the folder description"})
  100 + result = render 'content_viewer/folder', binding
  101 + assert_match 'This is the folder description', result
  102 + end
  103 +
  104 +
  105 + private
  106 + def render(template, the_binding)
  107 + ERB.new(File.read(RAILS_ROOT + '/app/views/' + template + '.rhtml')).result(the_binding)
  108 + end
  109 +
91 end 110 end
test/unit/folder_test.rb
@@ -18,30 +18,6 @@ class FolderTest &lt; ActiveSupport::TestCase @@ -18,30 +18,6 @@ class FolderTest &lt; ActiveSupport::TestCase
18 assert_not_equal Article.new.icon_name, Folder.new.icon_name 18 assert_not_equal Article.new.icon_name, Folder.new.icon_name
19 end 19 end
20 20
21 - should 'list subitems as HTML content' do  
22 - p = create_user('testuser').person  
23 - f = Folder.create!(:profile => p, :name => 'f')  
24 - f.children.create!(:profile => p, :name => 'onearticle')  
25 - f.children.create!(:profile => p, :name => 'otherarticle')  
26 - f.reload  
27 -  
28 - assert_tag_in_string f.to_html, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/onearticle(\?|$)/ } }, :content => /onearticle/  
29 - assert_tag_in_string f.to_html, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/testuser\/f\/otherarticle(\?|$)/ } }, :content => /otherarticle/  
30 - end  
31 -  
32 - should 'explictly advise if empty' do  
33 - p = create_user('testuser').person  
34 - f = Folder.create!(:profile => p, :name => 'f')  
35 - assert_tag_in_string f.to_html, :content => '(empty folder)'  
36 - end  
37 -  
38 - should 'show text body in HTML content' do  
39 - p = create_user('testuser').person  
40 - f = Folder.create!(:name => 'f', :profile => p, :body => 'this-is-the-text')  
41 -  
42 - assert_match(/this-is-the-text/, f.to_html)  
43 - end  
44 -  
45 should 'identify as folder' do 21 should 'identify as folder' do
46 assert Folder.new.folder?, 'folder must identity itself as folder' 22 assert Folder.new.folder?, 'folder must identity itself as folder'
47 end 23 end