Commit cb62ddad16c16258029645b2c76fb413e07f0c19

Authored by Antonio Terceiro
1 parent 200ff2b0

HighlightsBlock: fix test for randomness

Obviously a test for randomness that is not well designed will fail ...
randomly!
app/models/highlights_block.rb
... ... @@ -26,8 +26,16 @@ class HighlightsBlock < Block
26 26 end
27 27  
28 28 def featured_images
29   - block_images = images.select{|i| !i[:image_src].nil? }.sort { |x, y| x[:position] <=> y[:position] }
30   - shuffle ? block_images.shuffle : block_images
  29 + images = get_images
  30 + shuffle ? images.shuffle : images
  31 + end
  32 +
  33 + def get_images
  34 + images.select do |i|
  35 + !i[:image_src].nil?
  36 + end.sort do |x, y|
  37 + x[:position] <=> y[:position]
  38 + end
31 39 end
32 40  
33 41 def content(args={})
... ...
test/unit/highlights_block_test.rb
... ... @@ -109,33 +109,14 @@ class HighlightsBlockTest &lt; ActiveSupport::TestCase
109 109 end
110 110  
111 111 should 'list images randomically' do
112   - f1 = mock()
113   - f1.expects(:public_filename).returns('address')
114   - UploadedFile.expects(:find).with(1).returns(f1)
115   - f2 = mock()
116   - f2.expects(:public_filename).returns('address')
117   - UploadedFile.expects(:find).with(2).returns(f2)
118   - f3 = mock()
119   - f3.expects(:public_filename).returns('address')
120   - UploadedFile.expects(:find).with(3).returns(f3)
121   - f4 = mock()
122   - f4.expects(:public_filename).returns('address')
123   - UploadedFile.expects(:find).with(4).returns(f4)
124   - f5 = mock()
125   - f5.expects(:public_filename).returns('address')
126   - UploadedFile.expects(:find).with(5).returns(f5)
127 112 block = HighlightsBlock.new
128   - i1 = {:image_id => 1, :address => '/address', :position => 3, :title => 'address'}
129   - i2 = {:image_id => 2, :address => '/address', :position => 1, :title => 'address'}
130   - i3 = {:image_id => 3, :address => '/address', :position => 2, :title => 'address'}
131   - i4 = {:image_id => 4, :address => '/address', :position => 5, :title => 'address'}
132   - i5 = {:image_id => 5, :address => '/address', :position => 4, :title => 'address'}
133   - block.images = [i1,i2,i3,i4,i5]
134 113 block.shuffle = true
135   - block.save!
136   - block.reload
137   - assert_equal [i1,i2,i3,i4,i5], block.images
138   - assert_not_equal [i2,i3,i1,i4,i5], block.featured_images
  114 +
  115 + images = []
  116 + block.expects(:get_images).returns(images)
  117 + images.expects(:shuffle).returns(images)
  118 +
  119 + block.featured_images
139 120 end
140 121  
141 122 [Environment, Profile].each do |klass|
... ...