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 28 'folder'
29 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 32 def to_html(options = {})
40 33 send(view_as)
... ...
test/unit/folder_helper_test.rb
... ... @@ -2,6 +2,12 @@ require File.dirname(__FILE__) + '/../test_helper'
2 2  
3 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 11 include FolderHelper
6 12  
7 13 should 'display icon for articles' do
... ... @@ -74,7 +80,7 @@ class FolderHelperTest &lt; Test::Unit::TestCase
74 80 article = fast_create(Article, {:name => 'Article1', :parent_id => folder.id, :profile_id => profile.id})
75 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 85 assert_tag_in_string result, :tag => 'td', :descendant => { :tag => 'a', :attributes => { :href => /.*\/folder-owner\/my-article-[0-9]*(\?|$)/ } }, :content => /Article1/
80 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 89 should 'explictly advise if empty' do
84 90 profile = create_user('folder-owner').person
85 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 94 assert_match '(empty folder)', result
89 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 110 end
... ...
test/unit/folder_test.rb
... ... @@ -18,30 +18,6 @@ class FolderTest &lt; ActiveSupport::TestCase
18 18 assert_not_equal Article.new.icon_name, Folder.new.icon_name
19 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 21 should 'identify as folder' do
46 22 assert Folder.new.folder?, 'folder must identity itself as folder'
47 23 end
... ...