Commit 584df3ec767ea38be6283291d499b851312cc8c7
1 parent
195e425b
Exists in
staging
and in
42 other branches
Moving HTML generation tests to helper tests
(ActionItem1396)
Showing
3 changed files
with
21 additions
and
33 deletions
Show diff stats
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 < 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 < 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 < 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 | ... | ... |