Commit 335b1bedf51360d6a69cbf32e804a95610e53dfe
Committed by
Rafael Reggiani Manzo
1 parent
c90084dc
Exists in
web_steps_improvements
and in
9 other branches
fixing unit tests for Block models (50% done)
Showing
11 changed files
with
85 additions
and
47 deletions
Show diff stats
app/views/blocks/profile_list.html.erb
| 1 | 1 | <%= block_title(block.view_title) %> |
| 2 | 2 | |
| 3 | 3 | <% |
| 4 | - count=0 | |
| 5 | - list = block.profile_list.map {|item| count+=1 block.send(:profile_image_link, item, :minor)}.join("\n ") | |
| 4 | + list = block.profile_list.map do |item| | |
| 5 | + profile_image_link(item, :minor) | |
| 6 | + end.join("\n ") | |
| 6 | 7 | %> |
| 7 | 8 | |
| 8 | 9 | <div> | ... | ... |
app/views/blocks/tags.html.erb
| ... | ... | @@ -14,11 +14,11 @@ |
| 14 | 14 | <div class='tag_cloud'> |
| 15 | 15 | <% if is_env %> |
| 16 | 16 | <%= tag_cloud(tags, :tag, |
| 17 | - {:host=>block.owner.default_hostname, :controller=>'search', :action => 'tag'}, | |
| 17 | + {:host => block.owner.default_hostname, :controller=>'search', :action => 'tag'}, | |
| 18 | 18 | :max_size => 16, :min_size => 9) %> |
| 19 | 19 | <% else %> |
| 20 | 20 | <%= tag_cloud(tags, :id, |
| 21 | - owner.public_profile_url.merge(:controller => 'profile', :action => 'content_tagged'), | |
| 21 | + block.owner.public_profile_url.merge(:controller => 'profile', :action => 'content_tagged'), | |
| 22 | 22 | :max_size => 16, :min_size => 9) %> |
| 23 | 23 | <% end %> |
| 24 | 24 | </div> | ... | ... |
test/unit/categories_block_test.rb
| ... | ... | @@ -17,11 +17,13 @@ class CategoriesBlockTest < ActiveSupport::TestCase |
| 17 | 17 | assert_not_nil category_block.help |
| 18 | 18 | end |
| 19 | 19 | |
| 20 | + include BoxesHelper | |
| 21 | + | |
| 20 | 22 | should 'display category block' do |
| 21 | 23 | block = CategoriesBlock.new |
| 22 | 24 | |
| 23 | 25 | self.expects(:render).with(:file => 'blocks/categories', :locals => { :block => block}) |
| 24 | - instance_eval(& block.content) | |
| 26 | + render_block_content(block) | |
| 25 | 27 | end |
| 26 | 28 | |
| 27 | 29 | should 'be editable' do | ... | ... |
test/unit/disabled_enterprise_message_block_test.rb
| ... | ... | @@ -6,16 +6,25 @@ class DisabledEnterpriseMessageBlockTest < ActiveSupport::TestCase |
| 6 | 6 | assert_not_equal Block.description, DisabledEnterpriseMessageBlock.description |
| 7 | 7 | end |
| 8 | 8 | |
| 9 | + include BoxesHelper | |
| 10 | + | |
| 9 | 11 | should 'display message for disabled enterprise' do |
| 10 | - e = Environment.default | |
| 11 | - e.expects(:message_for_disabled_enterprise).returns('This message is for disabled enterprises') | |
| 12 | - block = DisabledEnterpriseMessageBlock.new | |
| 13 | - p = Profile.new | |
| 14 | - block.expects(:owner).returns(p) | |
| 15 | - p.expects(:environment).returns(e) | |
| 16 | - | |
| 17 | - expects(:render).with(:file => 'blocks/disabled_enterprise_message', :locals => { :message => 'This message is for disabled enterprises'}) | |
| 18 | - instance_eval(&block.content) | |
| 12 | + environment = Environment.default | |
| 13 | + environment.message_for_disabled_enterprise = 'This message is for disabled enterprises' | |
| 14 | + environment.save | |
| 15 | + | |
| 16 | + enterprise = fast_create(Enterprise, :identifier => 'disabled-enterprise', :environment_id => environment.id) | |
| 17 | + enterprise.boxes << Box.new | |
| 18 | + enterprise.boxes.first.blocks << DisabledEnterpriseMessageBlock.new | |
| 19 | + block = enterprise.boxes.first.blocks.first | |
| 20 | + | |
| 21 | + ApplicationHelper.class_eval do | |
| 22 | + def profile | |
| 23 | + return Enterprise['disabled-enterprise'] | |
| 24 | + end | |
| 25 | + end | |
| 26 | + | |
| 27 | + assert_match 'This message is for disabled enterprises', render_block_content(block) | |
| 19 | 28 | end |
| 20 | 29 | |
| 21 | 30 | should 'not be editable' do | ... | ... |
test/unit/highlights_block_test.rb
| ... | ... | @@ -80,11 +80,13 @@ class HighlightsBlockTest < ActiveSupport::TestCase |
| 80 | 80 | assert_equal 'always', block.display |
| 81 | 81 | end |
| 82 | 82 | |
| 83 | + include BoxesHelper | |
| 84 | + | |
| 83 | 85 | should 'display highlights block' do |
| 84 | 86 | block = HighlightsBlock.new |
| 85 | 87 | self.expects(:render).with(:file => 'blocks/highlights', :locals => { :block => block}) |
| 86 | 88 | |
| 87 | - instance_eval(& block.content) | |
| 89 | + render_block_content(block) | |
| 88 | 90 | end |
| 89 | 91 | |
| 90 | 92 | should 'not list non existent image' do |
| ... | ... | @@ -167,7 +169,7 @@ class HighlightsBlockTest < ActiveSupport::TestCase |
| 167 | 169 | block.images = [i1] |
| 168 | 170 | block.save! |
| 169 | 171 | |
| 170 | - assert_tag_in_string instance_eval(& block.content), :tag => 'img', :attributes => { :src => "/social/img_address" } | |
| 172 | + assert_tag_in_string render_block_content(block), :tag => 'img', :attributes => { :src => "/social/img_address" } | |
| 171 | 173 | end |
| 172 | 174 | |
| 173 | 175 | [Environment, Profile].each do |klass| | ... | ... |
test/unit/my_network_block_test.rb
| ... | ... | @@ -19,14 +19,6 @@ class MyNetworkBlockTest < ActiveSupport::TestCase |
| 19 | 19 | assert_not_equal Block.new.default_title, MyNetworkBlock.new.default_title |
| 20 | 20 | end |
| 21 | 21 | |
| 22 | - should 'display my-profile' do | |
| 23 | - self.expects(:render).with(:file => 'blocks/my_network', :locals => { | |
| 24 | - :title => 'My network', | |
| 25 | - :owner => owner | |
| 26 | - }) | |
| 27 | - instance_eval(&block.content) | |
| 28 | - end | |
| 29 | - | |
| 30 | 22 | should 'be able to update display setting' do |
| 31 | 23 | user = create_user('testinguser').person |
| 32 | 24 | box = fast_create(Box, :owner_id => user.id) |
| ... | ... | @@ -37,3 +29,22 @@ class MyNetworkBlockTest < ActiveSupport::TestCase |
| 37 | 29 | end |
| 38 | 30 | |
| 39 | 31 | end |
| 32 | + | |
| 33 | +class MyNetworkBlockViewTest < ActionView::TestCase | |
| 34 | + include BoxesHelper | |
| 35 | + | |
| 36 | + def setup | |
| 37 | + @block = MyNetworkBlock.new | |
| 38 | + @owner = Person.new(:identifier => 'testuser') | |
| 39 | + @block.stubs(:owner).returns(@owner) | |
| 40 | + owner.stubs(:environment).returns(Environment.default) | |
| 41 | + end | |
| 42 | + attr_reader :owner, :block | |
| 43 | + | |
| 44 | + should 'display my-profile' do | |
| 45 | + ActionView::Base.any_instance.stubs(:block_title).with(anything).returns(true) | |
| 46 | + ActionView::Base.any_instance.stubs(:user).with(anything).returns(owner) | |
| 47 | + ActionView::Base.any_instance.stubs(:render_profile_actions) | |
| 48 | + assert_match "#{Environment.default.top_url}/profile/testuser", render_block_content(block) | |
| 49 | + end | |
| 50 | +end | ... | ... |
test/unit/profile_info_block_test.rb
| ... | ... | @@ -16,9 +16,11 @@ class ProfileInfoBlockTest < ActiveSupport::TestCase |
| 16 | 16 | assert_not_equal Block.description, ProfileInfoBlock.description |
| 17 | 17 | end |
| 18 | 18 | |
| 19 | + include BoxesHelper | |
| 20 | + | |
| 19 | 21 | should 'display profile information' do |
| 20 | - self.expects(:render).with(:file => 'blocks/profile_info', :locals => { :block => block}) | |
| 21 | - instance_eval(& block.content) | |
| 22 | + self.expects(:render).with(:file => 'blocks/profile_info', :locals => { :block => block }) | |
| 23 | + render_block_content(block) | |
| 22 | 24 | end |
| 23 | 25 | |
| 24 | 26 | end | ... | ... |
test/unit/profile_list_block_test.rb
| ... | ... | @@ -20,6 +20,8 @@ class ProfileListBlockTest < ActiveSupport::TestCase |
| 20 | 20 | assert_equal 20, block.limit |
| 21 | 21 | end |
| 22 | 22 | |
| 23 | + include BoxesHelper | |
| 24 | + | |
| 23 | 25 | should 'list people' do |
| 24 | 26 | env = fast_create(Environment) |
| 25 | 27 | |
| ... | ... | @@ -30,15 +32,16 @@ class ProfileListBlockTest < ActiveSupport::TestCase |
| 30 | 32 | block = ProfileListBlock.new |
| 31 | 33 | block.stubs(:owner).returns(env) |
| 32 | 34 | |
| 33 | - self.expects(:profile_image_link).with(person1, :minor).once | |
| 34 | - self.expects(:profile_image_link).with(person2, :minor).once | |
| 35 | - self.expects(:profile_image_link).with(person3, :minor).once | |
| 36 | - | |
| 37 | - self.stubs(:tag).returns('<div></div>') | |
| 38 | - self.expects(:content_tag).returns('<div></div>').at_least_once | |
| 39 | - self.expects(:block_title).returns('block title').at_least_once | |
| 35 | + ApplicationHelper.class_eval do | |
| 36 | + def profile_image_link( profile, size=:portrait, tag='li', extra_info = nil ) | |
| 37 | + "<#{profile.name}>" | |
| 38 | + end | |
| 39 | + end | |
| 40 | 40 | |
| 41 | - assert_kind_of String, instance_eval(&block.content) | |
| 41 | + content = render_block_content(block) | |
| 42 | + assert_match '<testperson1>', content | |
| 43 | + assert_match '<testperson2>', content | |
| 44 | + assert_match '<testperson3>', content | |
| 42 | 45 | end |
| 43 | 46 | |
| 44 | 47 | should 'list private profiles' do | ... | ... |
test/unit/profile_search_block_test.rb
| ... | ... | @@ -10,14 +10,16 @@ class ProfileSearchBlockTest < ActiveSupport::TestCase |
| 10 | 10 | assert_equal Block.new.default_title, ProfileSearchBlock.new.default_title |
| 11 | 11 | end |
| 12 | 12 | |
| 13 | + include BoxesHelper | |
| 14 | + | |
| 13 | 15 | should 'render profile search' do |
| 14 | 16 | person = fast_create(Person) |
| 15 | 17 | |
| 16 | 18 | block = ProfileSearchBlock.new |
| 17 | 19 | block.stubs(:owner).returns(person) |
| 18 | 20 | |
| 19 | - self.expects(:render).with(:file => 'blocks/profile_search', :locals => { :title => block.title}) | |
| 20 | - instance_eval(& block.content) | |
| 21 | + self.expects(:render).with(:file => 'blocks/profile_search', :locals => { :block => block }) | |
| 22 | + render_block_content(block) | |
| 21 | 23 | end |
| 22 | 24 | |
| 23 | 25 | should 'provide view_title' do | ... | ... |
test/unit/raw_html_block_test.rb
| ... | ... | @@ -17,9 +17,11 @@ class RawHTMLBlockTest < ActiveSupport::TestCase |
| 17 | 17 | assert_equal html, block.html |
| 18 | 18 | end |
| 19 | 19 | |
| 20 | + include BoxesHelper | |
| 21 | + | |
| 20 | 22 | should 'return html as content' do |
| 21 | 23 | block = RawHTMLBlock.new(:html => "HTML") |
| 22 | - assert_match(/HTML$/, block.content) | |
| 24 | + assert_match /HTML$/, render_block_content(block) | |
| 23 | 25 | end |
| 24 | 26 | |
| 25 | 27 | should 'not be editable for users without permission' do | ... | ... |
test/unit/tags_block_test.rb
| ... | ... | @@ -25,10 +25,13 @@ class TagsBlockTest < ActiveSupport::TestCase |
| 25 | 25 | assert_not_equal Block.new.default_title, TagsBlock.new.default_title |
| 26 | 26 | end |
| 27 | 27 | |
| 28 | + include BoxesHelper | |
| 29 | + | |
| 28 | 30 | should 'generate links to tags' do |
| 29 | - assert_match /profile\/testinguser\/tags\/first-tag/, block.content | |
| 30 | - assert_match /profile\/testinguser\/tags\/second-tag/, block.content | |
| 31 | - assert_match /profile\/testinguser\/tags\/third-tag/, block.content | |
| 31 | + content = render_block_content(block) | |
| 32 | + assert_match /profile\/testinguser\/tags\/first-tag/, content | |
| 33 | + assert_match /profile\/testinguser\/tags\/second-tag/, content | |
| 34 | + assert_match /profile\/testinguser\/tags\/third-tag/, content | |
| 32 | 35 | end |
| 33 | 36 | |
| 34 | 37 | should 'generate links to tags on a environment page' do |
| ... | ... | @@ -38,24 +41,25 @@ class TagsBlockTest < ActiveSupport::TestCase |
| 38 | 41 | box = create(Box, :owner => Environment.default) |
| 39 | 42 | @block = create(TagsBlock, :box => box) |
| 40 | 43 | |
| 41 | - assert_match /3 items[^>]+\/tag\/first-tag/, block.content | |
| 42 | - assert_match /3 items[^>]+\/tag\/second-tag/, block.content | |
| 43 | - assert_match /one item[^>]+\/tag\/third-tag/, block.content | |
| 44 | - assert_match /2 item[^>]+\/tag\/other-tag"/, block.content | |
| 44 | + content = render_block_content(block) | |
| 45 | + assert_match /3 items[^>]+\/tag\/first-tag/, content | |
| 46 | + assert_match /3 items[^>]+\/tag\/second-tag/, content | |
| 47 | + assert_match /one item[^>]+\/tag\/third-tag/, content | |
| 48 | + assert_match /2 item[^>]+\/tag\/other-tag"/, content | |
| 45 | 49 | end |
| 46 | 50 | |
| 47 | 51 | should 'return (none) when no tags to display' do |
| 48 | 52 | block.owner.expects(:article_tags).returns([]) |
| 49 | - assert_equal '', block.content | |
| 53 | + assert_equal '', render_block_content(block) | |
| 50 | 54 | end |
| 51 | 55 | |
| 52 | 56 | should 'generate links when profile has own hostname' do |
| 53 | 57 | @user.domains << Domain.new(:name => 'testuser.net'); @user.save! |
| 54 | - assert_match /profile\/testinguser\/tags\/first-tag/, block.content | |
| 58 | + assert_match /profile\/testinguser\/tags\/first-tag/, render_block_content(block) | |
| 55 | 59 | end |
| 56 | 60 | |
| 57 | 61 | should 'order tags alphabetically' do |
| 58 | - assert /\/first-tag".*\/second-tag".*\/third-tag"/m =~ block.content | |
| 62 | + assert /\/first-tag".*\/second-tag".*\/third-tag"/m =~ render_block_content(block) | |
| 59 | 63 | end |
| 60 | 64 | |
| 61 | 65 | should 'return the max value in the range between zero and limit' do | ... | ... |