From b114973785f94fc49ae4c2f1c7c78bb8e51cc4de Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Wed, 16 Sep 2015 02:08:33 +0200 Subject: [PATCH] remove type constraint in host-meta to support friendica/redmatrix again --- lib/diaspora_federation/discovery/host_meta.rb | 2 +- .../discovery/host_meta_spec.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/diaspora_federation/discovery/host_meta.rb b/lib/diaspora_federation/discovery/host_meta.rb index 2de573e..255c519 100644 --- a/lib/diaspora_federation/discovery/host_meta.rb +++ b/lib/diaspora_federation/discovery/host_meta.rb @@ -84,7 +84,7 @@ module DiasporaFederation # @param [Hash] data extracted data # @return [String] webfinger url 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? end private_class_method :webfinger_url_from_xrd diff --git a/spec/lib/diaspora_federation/discovery/host_meta_spec.rb b/spec/lib/diaspora_federation/discovery/host_meta_spec.rb index 66e7fc8..8c56ed1 100644 --- a/spec/lib/diaspora_federation/discovery/host_meta_spec.rb +++ b/spec/lib/diaspora_federation/discovery/host_meta_spec.rb @@ -58,6 +58,24 @@ XML expect(hm.webfinger_template_url).to eq("#{base_url}webfinger?q={uri}") end + it "also reads friendica/redmatrix XML" do + friendica_redmatrix_xml = <<-XML + + + + pod.example.tld + + + + + + 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 invalid_xml = <