Commit 217b21e38b5018b361a7e3ecfa2d435f076ef5d1

Authored by Moises Machado
Committed by Antonio Terceiro
1 parent 0b907bbd

ActionItem1229: added http:// in front of incomplete external links in link blocks

app/models/link_list_block.rb
@@ -55,11 +55,16 @@ class LinkListBlock < Block @@ -55,11 +55,16 @@ class LinkListBlock < Block
55 end 55 end
56 56
57 def expand_address(address) 57 def expand_address(address)
58 - if owner.respond_to?(:identifier) 58 + add = if owner.respond_to?(:identifier)
59 address.gsub('{profile}', owner.identifier) 59 address.gsub('{profile}', owner.identifier)
60 else 60 else
61 address 61 address
62 end 62 end
  63 + if add !~ /^[a-z]+:\/\// && add !~ /^\//
  64 + 'http://' + add
  65 + else
  66 + add
  67 + end
63 end 68 end
64 69
65 def editable? 70 def editable?
test/unit/link_list_block_test.rb
@@ -67,4 +67,11 @@ class LinkListBlockTest < ActiveSupport::TestCase @@ -67,4 +67,11 @@ class LinkListBlockTest < ActiveSupport::TestCase
67 assert_no_match /onclick/, l.link_html(l.links.first) 67 assert_no_match /onclick/, l.link_html(l.links.first)
68 end 68 end
69 69
  70 + should 'add http in front of incomplete external links' do
  71 + {'/local/link' => '/local/link', 'http://example.org' => 'http://example.org', 'example.org' => 'http://example.org'}.each do |input, output|
  72 + l = LinkListBlock.new(:links => [{:name => 'categ', :address => input}])
  73 + assert_tag_in_string l.content, :tag => 'a', :attributes => {:href => output}
  74 + end
  75 + end
  76 +
70 end 77 end