From 74a61295d8e5bda43670d2cc283b0fe473b69929 Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Thu, 8 Oct 2015 14:57:46 +0200 Subject: [PATCH] Fix highlights_block error on add Noosfero.root --- app/models/highlights_block.rb | 4 +++- test/unit/highlights_block_test.rb | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/models/highlights_block.rb b/app/models/highlights_block.rb index a8d455f..9ee66b7 100644 --- a/app/models/highlights_block.rb +++ b/app/models/highlights_block.rb @@ -12,7 +12,9 @@ class HighlightsBlock < Block block.images.each do |i| i[:image_id] = i[:image_id].to_i i[:position] = i[:position].to_i - i[:address] = Noosfero.root + i[:address] unless Noosfero.root.nil? + if !Noosfero.root.nil? and !i[:address].start_with?(Noosfero.root + '/') + i[:address] = Noosfero.root + i[:address] + end begin file = UploadedFile.find(i[:image_id]) i[:image_src] = file.public_filename diff --git a/test/unit/highlights_block_test.rb b/test/unit/highlights_block_test.rb index 533ec7d..1968eb2 100644 --- a/test/unit/highlights_block_test.rb +++ b/test/unit/highlights_block_test.rb @@ -132,6 +132,19 @@ class HighlightsBlockTest < ActiveSupport::TestCase assert_equal block.images.first[:address], "/social/address" end + should 'not duplicate sub-dir address before save' do + Noosfero.stubs(:root).returns("/social") + f1 = mock() + f1.expects(:public_filename).returns('address') + UploadedFile.expects(:find).with(1).returns(f1) + block = HighlightsBlock.new + i1 = {:image_id => 1, :address => '/social/address', :position => 3, :title => 'address'} + block.images = [i1] + block.save! + block.reload + assert_equal block.images.first[:address], "/social/address" + end + should 'display images with subdir src' do Noosfero.stubs(:root).returns("/social") f1 = mock() -- libgit2 0.21.2