Commit 335b1bedf51360d6a69cbf32e804a95610e53dfe

Authored by Joenio Costa
Committed by Rafael Reggiani Manzo
1 parent c90084dc

fixing unit tests for Block models (50% done)

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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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 &lt; 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
... ...