Commit 9f003eb0ed27201771881656c0916e9b2f7eb9b7

Authored by Rafael Reggiani Manzo
1 parent 5955ed72

Fix ProductsBlock unit tests and view

By removing the content method, it is now necessary to turn the test
into a view one using the BoxesHelper method and properly stubbing other
helpers.
Showing 1 changed file with 36 additions and 18 deletions   Show diff stats
test/unit/products_block_test.rb
... ... @@ -20,21 +20,6 @@ class ProductsBlockTest < ActiveSupport::TestCase
20 20 assert_not_equal Block.description, ProductsBlock.description
21 21 end
22 22  
23   - should "list owner products" do
24   - enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
25   - create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
26   - create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
27   -
28   - block.expects(:products).returns(enterprise.products)
29   -
30   - content = block.content
31   -
32   - assert_tag_in_string content, :content => 'Products'
33   -
34   - assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product one/ }
35   - assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product two/ }
36   - end
37   -
38 23 should 'point to all products in footer' do
39 24 enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
40 25 create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
... ... @@ -134,13 +119,46 @@ class ProductsBlockTest < ActiveSupport::TestCase
134 119 assert_tag_in_string footer, :tag => 'a', :attributes => { :href => /\/catalog\/testenterprise$/ }, :content => 'View all products'
135 120 end
136 121  
  122 +
  123 +end
  124 +
  125 +require 'boxes_helper'
  126 +require 'block_helper'
  127 +
  128 +class ProductsBlockViewTest < ActionView::TestCase
  129 + include BoxesHelper
  130 +
  131 + ActionView::Base.send :include, BlockHelper
  132 +
  133 + def setup
  134 + @block = ProductsBlock.new
  135 + @product_category = fast_create(ProductCategory, :name => 'Products')
  136 + end
  137 + attr_reader :block
  138 +
  139 + should "list owner products" do
  140 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  141 + create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  142 + create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
  143 +
  144 + block.expects(:products).returns(enterprise.products)
  145 +
  146 + content = render_block_content(block)
  147 +
  148 + assert_tag_in_string content, :content => 'Products'
  149 +
  150 + assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product one/ }
  151 + assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product two/ }
  152 + end
  153 +
137 154 should 'display the default minor image if thumbnails were not processed' do
138 155 enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
139 156 create(Product, :enterprise => enterprise, :name => 'product', :product_category => @product_category, :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')})
140 157  
141 158 block.expects(:products).returns(enterprise.products)
  159 + ActionView::Base.any_instance.stubs(:block_title).returns("")
142 160  
143   - content = block.content
  161 + content = render_block_content(block)
144 162  
145 163 assert_tag_in_string content, :tag => 'a', :attributes => { :style => /image-loading-minor.png/ }
146 164 end
... ... @@ -151,9 +169,9 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
151 169  
152 170 process_delayed_job_queue
153 171 block.expects(:products).returns(enterprise.products.reload)
  172 + ActionView::Base.any_instance.stubs(:block_title).returns("")
154 173  
155   - content = block.content
  174 + content = render_block_content(block)
156 175 assert_tag_in_string content, :tag => 'a', :attributes => { :style => /rails_minor.png/ }
157 176 end
158   -
159 177 end
... ...