Fix FetchLinkCardServices crashing on a tags without a target (#12159)
* Add test for links without targets * Fix FetchLinkCardServices crashing on a tags without a target
This commit is contained in:
		| @ -67,7 +67,7 @@ class FetchLinkCardService < BaseService | ||||
|     else | ||||
|       html  = Nokogiri::HTML(@status.text) | ||||
|       links = html.css('a') | ||||
|       urls  = links.map { |a| Addressable::URI.parse(a['href']).normalize unless skip_link?(a) }.compact | ||||
|       urls  = links.map { |a| Addressable::URI.parse(a['href']) unless skip_link?(a) }.compact.map(&:normalize).compact | ||||
|     end | ||||
|  | ||||
|     urls.reject { |uri| bad_url?(uri) }.first | ||||
|  | ||||
| @ -80,7 +80,7 @@ RSpec.describe FetchLinkCardService, type: :service do | ||||
|   end | ||||
|  | ||||
|   context 'in a remote status' do | ||||
|     let(:status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com'), text: 'Habt ihr ein paar gute Links zu #<span class="tag"><a href="https://quitter.se/tag/wannacry" target="_blank" rel="tag noopener noreferrer" title="https://quitter.se/tag/wannacry">Wannacry</a></span> herumfliegen?   Ich will mal unter <br> <a href="https://github.com/qbi/WannaCry" target="_blank" rel="noopener noreferrer" title="https://github.com/qbi/WannaCry">https://github.com/qbi/WannaCry</a> was sammeln. !<a href="http://sn.jonkman.ca/group/416/id" target="_blank" rel="noopener noreferrer" title="http://sn.jonkman.ca/group/416/id">security</a> ') } | ||||
|     let(:status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com'), text: 'Habt ihr ein paar gute Links zu <a>foo</a> #<span class="tag"><a href="https://quitter.se/tag/wannacry" target="_blank" rel="tag noopener noreferrer" title="https://quitter.se/tag/wannacry">Wannacry</a></span> herumfliegen?   Ich will mal unter <br> <a href="https://github.com/qbi/WannaCry" target="_blank" rel="noopener noreferrer" title="https://github.com/qbi/WannaCry">https://github.com/qbi/WannaCry</a> was sammeln. !<a href="http://sn.jonkman.ca/group/416/id" target="_blank" rel="noopener noreferrer" title="http://sn.jonkman.ca/group/416/id">security</a> ') } | ||||
|  | ||||
|     it 'parses out URLs' do | ||||
|       expect(a_request(:get, 'https://github.com/qbi/WannaCry')).to have_been_made.at_least_once | ||||
|  | ||||
		Reference in New Issue
	
	Block a user