remove type constraint in host-meta to support friendica/redmatrix again

This commit is contained in:
Benjamin Neff 2015-09-16 02:08:33 +02:00
parent e55a42ea73
commit b114973785
2 changed files with 19 additions and 1 deletions

View file

@ -84,7 +84,7 @@ module DiasporaFederation
# @param [Hash] data extracted data # @param [Hash] data extracted data
# @return [String] webfinger url # @return [String] webfinger url
def self.webfinger_url_from_xrd(data) def self.webfinger_url_from_xrd(data)
link = data[:links].find {|l| (l[:rel] == "lrdd" && l[:type] == "application/xrd+xml") } link = data[:links].find {|l| l[:rel] == "lrdd" }
return link[:template] unless link.nil? return link[:template] unless link.nil?
end end
private_class_method :webfinger_url_from_xrd private_class_method :webfinger_url_from_xrd

View file

@ -58,6 +58,24 @@ XML
expect(hm.webfinger_template_url).to eq("#{base_url}webfinger?q={uri}") expect(hm.webfinger_template_url).to eq("#{base_url}webfinger?q={uri}")
end end
it "also reads friendica/redmatrix XML" do
friendica_redmatrix_xml = <<-XML
<?xml version='1.0' encoding='UTF-8'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'
xmlns:hm='http://host-meta.net/xrd/1.0'>
<hm:Host>pod.example.tld</hm:Host>
<Link rel='lrdd' template='#{base_url}xrd/?uri={uri}' />
<Link rel="http://oexchange.org/spec/0.8/rel/resident-target" type="application/xrd+xml"
href="https://pod.example.tld/oexchange/xrd" />
</XRD>
XML
hm = Discovery::HostMeta.from_xml(friendica_redmatrix_xml)
expect(hm.webfinger_template_url).to eq("#{base_url}xrd/?uri={uri}")
end
it "fails if the document does not contain a webfinger url" do it "fails if the document does not contain a webfinger url" do
invalid_xml = <<XML invalid_xml = <<XML
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>