diff --git a/app/models/article.rb b/app/models/article.rb
index 1502d11..a4cf042 100644
--- a/app/models/article.rb
+++ b/app/models/article.rb
@@ -806,11 +806,13 @@ class Article < ApplicationRecord
end
def body_images_paths
- Nokogiri::HTML.fragment(self.body.to_s).css('img[src]').collect do |i|
+ paths = Nokogiri::HTML.fragment(self.body.to_s).css('img[src]').collect do |i|
src = i['src']
src = URI.escape src if self.new_record? # xss_terminate runs on save
(self.profile && self.profile.environment) ? URI.join(self.profile.environment.top_url, src).to_s : src
end
+ paths.unshift(URI.join(self.profile.environment.top_url, self.image.public_filename).to_s) if self.image.present?
+ paths
end
def more_comments_label
diff --git a/test/unit/article_test.rb b/test/unit/article_test.rb
index 312aa88..bf061cd 100644
--- a/test/unit/article_test.rb
+++ b/test/unit/article_test.rb
@@ -1483,6 +1483,17 @@ class ArticleTest < ActiveSupport::TestCase
assert_includes a.body_images_paths, 'http://test.com/noosfero.png'
end
+ should 'always put article image first in images paths list in article body' do
+ Environment.any_instance.stubs(:default_hostname).returns('noosfero.org')
+ a = create(TinyMceArticle, :name => 'test', :image_builder => {
+ :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')
+ }, :profile_id => @profile.id)
+ a.save!
+ a.body = 'Noosfero
test
'
+ a.image.stubs(:public_filename).returns('/files/rails.png')
+ assert_equal 'http://noosfero.org/files/rails.png', a.body_images_paths[0]
+ end
+
should 'escape utf8 characters correctly' do
Environment.any_instance.stubs(:default_hostname).returns('noosfero.org')
a = build TinyMceArticle, profile: @profile
--
libgit2 0.21.2