logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 38ee0f3fc64e625d940ae807beab8161390e4fe4
parent d269c69a0b315f4767efbed3da781b04e9614c5d
Author: lambda <pleromagit@rogerbraun.net>
Date:   Mon, 21 May 2018 13:58:20 +0000

Merge branch 'bugfix/webfinger-statusnet' into 'develop'

webfinger: fix finding the XRD uri for statusnet instances

See merge request pleroma/pleroma!164

Diffstat:

Mlib/pleroma/web/web_finger/web_finger.ex2+-
Atest/fixtures/httpoison_mock/status.alpicola.com_host_meta3+++
Mtest/support/httpoison_mock.ex8++++++++
Mtest/web/web_finger/web_finger_test.exs6++++++
4 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/lib/pleroma/web/web_finger/web_finger.ex b/lib/pleroma/web/web_finger/web_finger.ex @@ -214,7 +214,7 @@ defmodule Pleroma.Web.WebFinger do end def get_template_from_xml(body) do - xpath = "//Link[@rel='lrdd' and @type='application/xrd+xml']/@template" + xpath = "//Link[@rel='lrdd']/@template" with doc when doc != :error <- XML.parse_document(body), template when template != nil <- XML.string_from_xpath(xpath, doc) do diff --git a/test/fixtures/httpoison_mock/status.alpicola.com_host_meta b/test/fixtures/httpoison_mock/status.alpicola.com_host_meta @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"><hm:Host xmlns:hm="http://host-meta.net/xrd/1.0">status.alpicola.com</hm:Host><Link rel="lrdd" template="http://status.alpicola.com/main/xrd?uri={uri}"><Title>Resource Descriptor</Title></Link></XRD> +\ No newline at end of file diff --git a/test/support/httpoison_mock.ex b/test/support/httpoison_mock.ex @@ -531,6 +531,14 @@ defmodule HTTPoisonMock do }} end + def get("http://status.alpicola.com/.well-known/host-meta", [], follow_redirect: true) do + {:ok, + %Response{ + status_code: 200, + body: File.read!("test/fixtures/httpoison_mock/status.alpicola.com_host_meta") + }} + end + def get("http://macgirvin.com/.well-known/host-meta", [], follow_redirect: true) do {:ok, %Response{ diff --git a/test/web/web_finger/web_finger_test.exs b/test/web/web_finger/web_finger_test.exs @@ -88,6 +88,12 @@ defmodule Pleroma.Web.WebFingerTest do assert template == "https://macgirvin.com/xrd/?uri={uri}" end + + test "it gets the xrd endpoint for statusnet" do + {:ok, template} = WebFinger.find_lrdd_template("status.alpicola.com") + + assert template == "http://status.alpicola.com/main/xrd?uri={uri}" + end end describe "ensure_keys_present" do