diff --git a/lib/diaspora_federation/validators/web_finger_validator.rb b/lib/diaspora_federation/validators/web_finger_validator.rb index 98464df..b701169 100644 --- a/lib/diaspora_federation/validators/web_finger_validator.rb +++ b/lib/diaspora_federation/validators/web_finger_validator.rb @@ -12,8 +12,8 @@ module DiasporaFederation rule :alias_url, URI: %i(host path) rule :hcard_url, [:not_nil, URI: %i(host path)] rule :seed_url, %i(not_nil URI) - rule :profile_url, [:not_nil, URI: %i(host path)] - rule :atom_url, [:not_nil, URI: %i(host path)] + rule :profile_url, URI: %i(host path) + rule :atom_url, URI: %i(host path) rule :salmon_url, URI: %i(host path) end end diff --git a/spec/lib/diaspora_federation/discovery/web_finger_spec.rb b/spec/lib/diaspora_federation/discovery/web_finger_spec.rb index 51713f6..a641fdf 100644 --- a/spec/lib/diaspora_federation/discovery/web_finger_spec.rb +++ b/spec/lib/diaspora_federation/discovery/web_finger_spec.rb @@ -63,6 +63,21 @@ XML expect(wf.public_key).to eq(person.serialized_public_key) end + it "reads minimal xml" do + minimal_xml = <<-XML + + + #{acct} + + + +XML + wf = Discovery::WebFinger.from_xml(minimal_xml) + expect(wf.acct_uri).to eq(acct) + expect(wf.hcard_url).to eq(person.hcard_url) + expect(wf.seed_url).to eq(person.url) + end + it "is frozen after parsing" do wf = Discovery::WebFinger.from_xml(xml) expect(wf).to be_frozen diff --git a/spec/lib/diaspora_federation/validators/web_finger_validator_spec.rb b/spec/lib/diaspora_federation/validators/web_finger_validator_spec.rb index 1d91e7e..d31db32 100644 --- a/spec/lib/diaspora_federation/validators/web_finger_validator_spec.rb +++ b/spec/lib/diaspora_federation/validators/web_finger_validator_spec.rb @@ -10,7 +10,7 @@ module DiasporaFederation end end - %i(hcard_url profile_url atom_url).each do |prop| + %i(hcard_url).each do |prop| describe "##{prop}" do it_behaves_like "a url validator without path" do let(:property) { prop } @@ -23,7 +23,7 @@ module DiasporaFederation end # optional urls - %i(alias_url salmon_url).each do |prop| + %i(alias_url salmon_url profile_url atom_url).each do |prop| describe "##{prop}" do it_behaves_like "a property with a value validation/restriction" do let(:property) { prop }