From 8cea790d4686bbaf5c8299edec23391e3d56a05c Mon Sep 17 00:00:00 2001 From: Larissa Reis Date: Sat, 9 Apr 2016 04:54:02 -0300 Subject: [PATCH] Includes article image to body images paths listing --- app/models/article.rb | 4 +++- test/unit/article_test.rb | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) 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