summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/friendica_salmon.xml7
-rw-r--r--test/fixtures/httpoison_mock/atarifrosch_feed.xml473
-rw-r--r--test/fixtures/httpoison_mock/atarifrosch_webfinger.xml18
-rw-r--r--test/fixtures/httpoison_mock/eal_sakamoto.xml1
-rw-r--r--test/fixtures/httpoison_mock/gs.example.org_host_meta9
-rw-r--r--test/fixtures/httpoison_mock/https___pawoo.net_users_aqidaqidaqid.xml11
-rw-r--r--test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml42
-rw-r--r--test/fixtures/httpoison_mock/macgirvin.com_host_meta11
-rw-r--r--test/fixtures/httpoison_mock/mamot.fr_host_meta4
-rw-r--r--test/fixtures/httpoison_mock/mastodon.social_host_meta4
-rw-r--r--test/fixtures/httpoison_mock/mastodon.xyz_host_meta4
-rw-r--r--test/fixtures/httpoison_mock/pawoo.net_host_meta4
-rw-r--r--test/fixtures/httpoison_mock/pleroma.soykaf.com_host_meta1
-rw-r--r--test/fixtures/httpoison_mock/shitposter.club_host_meta9
-rw-r--r--test/fixtures/httpoison_mock/social.heldscal.la_host_meta9
-rw-r--r--test/fixtures/httpoison_mock/social.sakamoto.gq_host_meta1
-rw-r--r--test/fixtures/httpoison_mock/social.stopwatchingus-heidelberg.de_host_meta9
-rw-r--r--test/fixtures/httpoison_mock/social.wxcafe.net_host_meta4
-rw-r--r--test/fixtures/httpoison_mock/squeet.me_host_meta16
-rw-r--r--test/fixtures/nil_mention_entry.xml52
-rw-r--r--test/support/httpoison_mock.ex184
-rw-r--r--test/upload_test.exs5
-rw-r--r--test/web/ostatus/incoming_documents/delete_handling_test.exs5
-rw-r--r--test/web/ostatus/ostatus_test.exs7
-rw-r--r--test/web/salmon/salmon_test.exs6
-rw-r--r--test/web/twitter_api/representers/activity_representer_test.exs7
-rw-r--r--test/web/twitter_api/twitter_api_controller_test.exs16
-rw-r--r--test/web/twitter_api/twitter_api_utils_test.exs6
-rw-r--r--test/web/twitter_api/views/user_view_test.exs8
-rw-r--r--test/web/web_finger/web_finger_test.exs25
30 files changed, 945 insertions, 13 deletions
diff --git a/test/fixtures/friendica_salmon.xml b/test/fixtures/friendica_salmon.xml
new file mode 100644
index 000000000..8a01d04e6
--- /dev/null
+++ b/test/fixtures/friendica_salmon.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<me:env xmlns:me="http://salmon-protocol.org/ns/magic-env">
+ <me:data type="application/atom+xml">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPGVudHJ5IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iIHhtbG5zOnRocj0iaHR0cDovL3B1cmwub3JnL3N5bmRpY2F0aW9uL3RocmVhZC8xLjAiIHhtbG5zOmdlb3Jzcz0iaHR0cDovL3d3dy5nZW9yc3Mub3JnL2dlb3JzcyIgeG1sbnM6YWN0aXZpdHk9Imh0dHA6Ly9hY3Rpdml0eXN0cmVhLm1zL3NwZWMvMS4wLyIgeG1sbnM6bWVkaWE9Imh0dHA6Ly9wdXJsLm9yZy9zeW5kaWNhdGlvbi9hdG9tbWVkaWEiIHhtbG5zOnBvY289Imh0dHA6Ly9wb3J0YWJsZWNvbnRhY3RzLm5ldC9zcGVjLzEuMCIgeG1sbnM6b3N0YXR1cz0iaHR0cDovL29zdGF0dXMub3JnL3NjaGVtYS8xLjAiIHhtbG5zOnN0YXR1c25ldD0iaHR0cDovL3N0YXR1cy5uZXQvc2NoZW1hL2FwaS8xLyIgeG1sbnM6bWFzdG9kb249Imh0dHA6Ly9tYXN0b2Rvbi5zb2NpYWwvc2NoZW1hLzEuMCI-CiAgPGF1dGhvcj4KICAgIDxpZD5odHRwczovL3NxdWVldC5tZS9wcm9maWxlL2xhaW48L2lkPgogICAgPGFjdGl2aXR5Om9iamVjdC10eXBlPmh0dHA6Ly9hY3Rpdml0eXN0cmVhLm1zL3NjaGVtYS8xLjAvcGVyc29uPC9hY3Rpdml0eTpvYmplY3QtdHlwZT4KICAgIDx1cmk-aHR0cHM6Ly9zcXVlZXQubWUvcHJvZmlsZS9sYWluPC91cmk-CiAgICA8bmFtZT5sYWluPC9uYW1lPgogICAgPGVtYWlsPmxhaW5Ac3F1ZWV0Lm1lPC9lbWFpbD4KICAgIDxzdW1tYXJ5Lz4KICAgIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJ0ZXh0L2h0bWwiIGhyZWY9Imh0dHBzOi8vc3F1ZWV0Lm1lL3Byb2ZpbGUvbGFpbiIvPgogICAgPGxpbmsgcmVsPSJhdmF0YXIiIHR5cGU9ImltYWdlL2pwZWciIG1lZGlhOndpZHRoPSIxNzUiIG1lZGlhOmhlaWdodD0iMTc1IiBocmVmPSJodHRwczovL3NxdWVldC5tZS9waG90by9hYmYyZWU0MGJmY2IwNDRhYzdmZDFkMTQzYzgyZjYzYS00LmpwZyIvPgogICAgPGxpbmsgcmVsPSJhdmF0YXIiIHR5cGU9ImltYWdlL2pwZWciIG1lZGlhOndpZHRoPSI4MCIgbWVkaWE6aGVpZ2h0PSI4MCIgaHJlZj0iaHR0cHM6Ly9zcXVlZXQubWUvcGhvdG8vYWJmMmVlNDBiZmNiMDQ0YWM3ZmQxZDE0M2M4MmY2M2EtNS5qcGciLz4KICAgIDxwb2NvOnByZWZlcnJlZFVzZXJuYW1lPmxhaW48L3BvY286cHJlZmVycmVkVXNlcm5hbWU-CiAgICA8cG9jbzpkaXNwbGF5TmFtZT5MYWluIEl3YWt1cmE8L3BvY286ZGlzcGxheU5hbWU-CiAgICA8cG9jbzpub3RlLz4KICAgIDxmb2xsb3dlcnMgdXJsPSJodHRwczovL3NxdWVldC5tZS92aWV3Y29udGFjdHMvbGFpbiIvPgogICAgPHN0YXR1c25ldDpwcm9maWxlX2luZm8gbG9jYWxfaWQ9IjMwMSIvPgogICAgPG1hc3RvZG9uOnNjb3BlPnB1YmxpYzwvbWFzdG9kb246c2NvcGU-CiAgPC9hdXRob3I-CiAgPGlkPnRhZzpzcXVlZXQubWUsMjAxNy0wOC0yNTpzdWJzY3JpcHRpb246MzAxOnBlcnNvbjoyMTYwOTc6MjAxNy0wOC0yNVQwODo0NTowOCswMDowMDwvaWQ-CiAgPHRpdGxlPmZvbGxvd2luZzwvdGl0bGU-CiAgPGNvbnRlbnQgdHlwZT0iaHRtbCI-bGFpbiBpcyBub3cgZm9sbG93aW5nIGxhaW4uPC9jb250ZW50PgogIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJ0ZXh0L2h0bWwiIGhyZWY9Imh0dHBzOi8vc3F1ZWV0Lm1lL2Rpc3BsYXkvIi8-CiAgPGFjdGl2aXR5OnZlcmI-aHR0cDovL2FjdGl2aXR5c3RyZWEubXMvc2NoZW1hLzEuMC9mb2xsb3c8L2FjdGl2aXR5OnZlcmI-CiAgPHB1Ymxpc2hlZD4yMDE3LTA4LTI1VDA4OjQ1OjA4WjwvcHVibGlzaGVkPgogIDx1cGRhdGVkPjIwMTctMDgtMjVUMDg6NDU6MDhaPC91cGRhdGVkPgogIDxhY3Rpdml0eTpvYmplY3Q-CiAgICA8YWN0aXZpdHk6b2JqZWN0LXR5cGU-aHR0cDovL2FjdGl2aXR5c3RyZWEubXMvc2NoZW1hLzEuMC9wZXJzb248L2FjdGl2aXR5Om9iamVjdC10eXBlPgogICAgPGlkPmh0dHBzOi8vcGxlcm9tYS5zb3lrYWYuY29tL3VzZXJzL2xhaW48L2lkPgogICAgPHRpdGxlPmxhaW48L3RpdGxlPgogICAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cHM6Ly9wbGVyb21hLnNveWthZi5jb20vdXNlcnMvbGFpbiIvPgogICAgPGxpbmsgcmVsPSJhdmF0YXIiIHR5cGU9ImltYWdlL2pwZWciIG1lZGlhOndpZHRoPSIxNzUiIG1lZGlhOmhlaWdodD0iMTc1IiBocmVmPSJodHRwczovL3BsZXJvbWEuc295a2FmLmNvbS9tZWRpYS82NTE5YzhmOS1iMmFkLTQ5YjAtOTZlOC1lMjg4NWUxNjNmNTQvNERBMzUwNkVBMTBBRTc0QTZDREU2MTI3NzgxOEE0RTg4RkVDNjY1QTk4NEU4Njc4OUM0NDBDOEJCRERDNEI1OS5naWYiLz4KICAgIDxwb2NvOnByZWZlcnJlZFVzZXJuYW1lPmxhaW48L3BvY286cHJlZmVycmVkVXNlcm5hbWU-CiAgICA8cG9jbzpkaXNwbGF5TmFtZT5MYWluIEl3YWt1cmE8L3BvY286ZGlzcGxheU5hbWU-CiAgPC9hY3Rpdml0eTpvYmplY3Q-CjwvZW50cnk-</me:data>
+ <me:encoding>base64url</me:encoding>
+ <me:alg>RSA-SHA256</me:alg>
+ <me:sig key_id="MTU1ODkzNjliMGE4MzQ5NmEwMjkyMGJiNjUwMTg1ODZkMTdjOWQ0MWVhZTBmOGM3ZTYwNzU5Y2I1NWU1OTZjMw">l5O0lORlg5chdRQZkb-1GiEPU6OLY6FI-IBP84FwbOKY_hjy9on_VBxXcvcLN5r32VDbma0Ra4r933wQuATu1Q==</me:sig>
+</me:env>
diff --git a/test/fixtures/httpoison_mock/atarifrosch_feed.xml b/test/fixtures/httpoison_mock/atarifrosch_feed.xml
new file mode 100644
index 000000000..e00df782e
--- /dev/null
+++ b/test/fixtures/httpoison_mock/atarifrosch_feed.xml
@@ -0,0 +1,473 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
+ <generator uri="https://gnu.io/social" version="1.2.0-alpha2">GNU social</generator>
+ <id>https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom</id>
+ <title>atarifrosch-Zeitleiste</title>
+ <subtitle>Aktualisierungen von atarifrosch auf social.stopwatchingus-heidelberg.de!</subtitle>
+ <logo>https://social.stopwatchingus-heidelberg.de/avatar/18330-96-20150628163706.png</logo>
+ <updated>2017-08-24T12:06:55+02:00</updated>
+<author>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
+ <uri>https://social.stopwatchingus-heidelberg.de/user/18330</uri>
+ <name>atarifrosch</name>
+ <summary>Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE</summary>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/atarifrosch"/>
+ <link rel="avatar" type="image/png" media:width="480" media:height="480" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-480-20150628163705.png"/>
+ <link rel="avatar" type="image/png" media:width="96" media:height="96" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-96-20150628163706.png"/>
+ <link rel="avatar" type="image/png" media:width="48" media:height="48" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-48-20150628163713.png"/>
+ <link rel="avatar" type="image/png" media:width="24" media:height="24" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-24-20150628163714.png"/>
+ <poco:preferredUsername>atarifrosch</poco:preferredUsername>
+ <poco:displayName>Atari-Frosch</poco:displayName>
+ <poco:note>Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE</poco:note>
+ <poco:address>
+ <poco:formatted>Düsseldorf, NRW, Germany</poco:formatted>
+ </poco:address>
+ <poco:urls>
+ <poco:type>homepage</poco:type>
+ <poco:value>https://www.atari-frosch.de/</poco:value>
+ <poco:primary>true</poco:primary>
+ </poco:urls>
+ <followers url="https://social.stopwatchingus-heidelberg.de/atarifrosch/subscribers"></followers>
+ <statusnet:profile_info local_id="18330"></statusnet:profile_info>
+</author>
+ <link href="https://social.stopwatchingus-heidelberg.de/atarifrosch" rel="alternate" type="text/html"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/main/sup" rel="http://api.friendfeed.com/2008/03#sup" type="application/json"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom?max_id=976980" rel="next" type="application/atom+xml"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/main/push/hub" rel="hub"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/main/salmon/user/18330" rel="salmon"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/main/salmon/user/18330" rel="http://salmon-protocol.org/ns/salmon-replies"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/main/salmon/user/18330" rel="http://salmon-protocol.org/ns/salmon-mention"/>
+ <link href="https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom" rel="self" type="application/atom+xml"/>
+<entry>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978735:objectType=note</id>
+ <title>atarifrosch repeated a notice by hoergen</title>
+ <content type="html">RT @&lt;a href=&quot;https://social.hoergen.org/hoergen&quot; class=&quot;h-card mention&quot; title=&quot;hoergen&quot;&gt;hoergen&lt;/a&gt; Das falsche Bild der Tagesschau &amp;quot;Auffallend &amp;quot;erfolgreich&amp;quot; - Andrea Nahles und Manuela Schwesig&amp;quot; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/geringverdiener&quot; rel=&quot;tag&quot;&gt;Geringverdiener&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/mindestlohn&quot; rel=&quot;tag&quot;&gt;Mindestlohn&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/mannxismus&quot; rel=&quot;tag&quot;&gt;mannxismus&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/erwerbsminderungsrente&quot; rel=&quot;tag&quot;&gt;Erwerbsminderungsrente&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/arbeitnehmerflexibilisierung&quot; rel=&quot;tag&quot;&gt;ArbeitnehmerFlexibilisierung&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/altersarmut&quot; rel=&quot;tag&quot;&gt;AltersArmut&lt;/a&gt;&lt;/span&gt; ..... &lt;a href=&quot;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&quot; title=&quot;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&quot; class=&quot;attachment&quot; id=&quot;attachment-450858&quot; rel=&quot;nofollow external&quot;&gt;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&lt;/a&gt;</content>
+ <link rel="alternate" type="text/html">https://social.stopwatchingus-heidelberg.de/notice/978735</link>
+ <activity:verb>http://activitystrea.ms/schema/1.0/share</activity:verb>
+ <published>2017-08-24T09:18:25+00:00</published>
+ <updated>2017-08-24T09:18:25+00:00</updated>
+ <activity:object>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/activity</activity:object-type>
+ <id>tag:social.hoergen.org,2017-08-24:noticeId=222320:objectType=note</id>
+ <title></title>
+ <content type="html">Das falsche Bild der Tagesschau &lt;br /&gt; &amp;quot;Auffallend &amp;quot;erfolgreich&amp;quot; - Andrea Nahles und Manuela Schwesig&amp;quot; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/geringverdiener&quot; rel=&quot;tag&quot;&gt;Geringverdiener&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/mindestlohn&quot; rel=&quot;tag&quot;&gt;Mindestlohn&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/mannxismus&quot; rel=&quot;tag&quot;&gt;mannxismus&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/erwerbsminderungsrente&quot; rel=&quot;tag&quot;&gt;Erwerbsminderungsrente&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/arbeitnehmerflexibilisierung&quot; rel=&quot;tag&quot;&gt;ArbeitnehmerFlexibilisierung&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/altersarmut&quot; rel=&quot;tag&quot;&gt;AltersArmut&lt;/a&gt;&lt;/span&gt; ..... &lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&quot; title=&quot;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&quot; rel=&quot;nofollow external noreferrer&quot; class=&quot;attachment&quot;&gt;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&lt;/a&gt;</content>
+ <link rel="alternate" type="text/html">https://social.hoergen.org/notice/222320</link>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-24T07:36:31+00:00</published>
+ <updated>2017-08-24T07:36:31+00:00</updated>
+ <author>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
+ <uri>https://social.hoergen.org/user/2</uri>
+ <name>hoergen</name>
+ <summary>aka Andi Memyself #humanist #nerd Menschen liebhabender Misanthrop und auch sonst sehr vielseitig interessiert.</summary>
+ <link rel="alternate" type="text/html" href="https://social.hoergen.org/hoergen"/>
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="https://social.stopwatchingus-heidelberg.de/avatar/54316-original-20170824072526.jpeg"/>
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="https://social.stopwatchingus-heidelberg.de/avatar/54316-original-20170824072526.jpeg"/>
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="https://social.stopwatchingus-heidelberg.de/avatar/54316-48-20170824072544.jpeg"/>
+ <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="https://social.stopwatchingus-heidelberg.de/avatar/54316-24-20170824074851.jpeg"/>
+ <poco:preferredUsername>hoergen</poco:preferredUsername>
+ <poco:displayName>hoergen</poco:displayName>
+ <poco:note>aka Andi Memyself #humanist #nerd Menschen liebhabender Misanthrop und auch sonst sehr vielseitig interessiert.</poco:note>
+ <poco:address>
+ <poco:formatted>Berlin</poco:formatted>
+ </poco:address>
+ <poco:urls>
+ <poco:type>homepage</poco:type>
+ <poco:value>https://hyperblog.de/hoergen/</poco:value>
+ <poco:primary>true</poco:primary>
+ </poco:urls>
+ <statusnet:profile_info local_id="54316"></statusnet:profile_info>
+ </author>
+ <activity:object>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.hoergen.org,2017-08-24:noticeId=222320:objectType=note</id>
+ <title>New note by hoergen</title>
+ <content type="html">Das falsche Bild der Tagesschau &lt;br /&gt; &amp;quot;Auffallend &amp;quot;erfolgreich&amp;quot; - Andrea Nahles und Manuela Schwesig&amp;quot; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/geringverdiener&quot; rel=&quot;tag&quot;&gt;Geringverdiener&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/mindestlohn&quot; rel=&quot;tag&quot;&gt;Mindestlohn&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/mannxismus&quot; rel=&quot;tag&quot;&gt;mannxismus&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/erwerbsminderungsrente&quot; rel=&quot;tag&quot;&gt;Erwerbsminderungsrente&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/arbeitnehmerflexibilisierung&quot; rel=&quot;tag&quot;&gt;ArbeitnehmerFlexibilisierung&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.hoergen.org/tag/altersarmut&quot; rel=&quot;tag&quot;&gt;AltersArmut&lt;/a&gt;&lt;/span&gt; ..... &lt;br /&gt; &lt;br /&gt; &lt;a href=&quot;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&quot; title=&quot;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&quot; rel=&quot;nofollow external noreferrer&quot; class=&quot;attachment&quot;&gt;http://www.tagesschau.de/inland/btw17/bilanz-schwesig-nahles-101.html&lt;/a&gt;</content>
+ <link rel="alternate" type="text/html" href="https://social.hoergen.org/notice/222320"/>
+ <status_net notice_id="978711"></status_net>
+ </activity:object>
+ <link rel="ostatus:conversation" href="https://social.hoergen.org/conversation/98616"/>
+ <ostatus:conversation>https://social.hoergen.org/conversation/98616</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <category term="altersarmut"></category>
+ <category term="arbeitnehmerflexibilisierung"></category>
+ <category term="erwerbsminderungsrente"></category>
+ <category term="geringverdiener"></category>
+ <category term="mannxismus"></category>
+ <category term="mindestlohn"></category>
+ <source>
+ <id>https://social.hoergen.org/api/statuses/user_timeline/2.atom</id>
+ <title>hoergen</title>
+ <link rel="alternate" type="text/html" href="https://social.hoergen.org/hoergen"/>
+ <link rel="self" type="application/atom+xml" href="https://social.hoergen.org/api/statuses/user_timeline/2.atom"/>
+ <icon>https://social.stopwatchingus-heidelberg.de/avatar/54316-original-20170824072526.jpeg</icon>
+ <updated>2017-08-24T09:48:30+00:00</updated>
+ </source>
+ </activity:object>
+ <link rel="ostatus:conversation" href="https://social.hoergen.org/conversation/98616"/>
+ <ostatus:conversation>https://social.hoergen.org/conversation/98616</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <category term="altersarmut"></category>
+ <category term="arbeitnehmerflexibilisierung"></category>
+ <category term="erwerbsminderungsrente"></category>
+ <category term="geringverdiener"></category>
+ <category term="mannxismus"></category>
+ <category term="mindestlohn"></category>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978735.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978735.atom"/>
+ <statusnet:notice_info local_id="978735" source="web" repeat_of="978711"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/comment</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978734:objectType=comment</id>
+ <title>New comment by atarifrosch</title>
+ <content type="html">Jo, die Anzahl der Hartz-IV-Sanktionen nennt sie genausowenig wie die Anzahl der Menschen, die von den Repressionsbehörden in Obdachlosigkeit und Suizid getrieben wurden. Das würde die Erfolgszahlen dann doch ein wenig trüben, nech?</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978734"/>
+ <status_net notice_id="978734"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-24T09:18:13+00:00</published>
+ <updated>2017-08-24T09:18:13+00:00</updated>
+ <thr:in-reply-to ref="tag:social.hoergen.org,2017-08-24:noticeId=222320:objectType=note" href="https://social.hoergen.org/notice/222320"></thr:in-reply-to>
+ <link rel="related" href="https://social.hoergen.org/notice/222320"/>
+ <link rel="ostatus:conversation" href="https://social.hoergen.org/conversation/98616"/>
+ <ostatus:conversation>https://social.hoergen.org/conversation/98616</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="https://social.hoergen.org/user/2"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978734.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978734.atom"/>
+ <statusnet:notice_info local_id="978734" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978732:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">Moin-quak.</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978732"/>
+ <status_net notice_id="978732"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-24T09:09:39+00:00</published>
+ <updated>2017-08-24T09:09:39+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978732:objectType=thread:crc32=2f92b7b6"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-24:noticeId=978732:objectType=thread:crc32=2f92b7b6</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978732.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978732.atom"/>
+ <statusnet:notice_info local_id="978732" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978594:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">n8-quak!</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978594"/>
+ <status_net notice_id="978594"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-23T21:39:54+00:00</published>
+ <updated>2017-08-23T21:39:54+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978594:objectType=thread:crc32=9bdb0ac9"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978594:objectType=thread:crc32=9bdb0ac9</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978594.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978594.atom"/>
+ <statusnet:notice_info local_id="978594" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978503:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">2017-08-16 Michal Špaček: Post a boarding pass on Facebook, get your account stolen – Post a boarding pass on Facebook, get your account stolen (gilt übrinx nicht nur für Facebook)</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978503"/>
+ <status_net notice_id="978503"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-23T15:14:29+00:00</published>
+ <updated>2017-08-23T15:14:29+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978503:objectType=thread:crc32=3de05c3a"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978503:objectType=thread:crc32=3de05c3a</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978503.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978503.atom"/>
+ <statusnet:notice_info local_id="978503" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-23:fave:18330:activity:978458:2017-08-23T15:18:19+02:00</id>
+ <title>Favorite</title>
+ <content type="html">atarifrosch favorited something by einebiene: Haha, große Überraschung. &lt;a href=&quot;http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636&quot; title=&quot;http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636&quot; rel=&quot;nofollow noreferrer&quot; class=&quot;attachment&quot;&gt;https://quitter.is/url/1122672&lt;/a&gt;&lt;br /&gt; Was ich an all diesen Artikeln schade finde, ist, daß immer nur auf den Umstieg von Auto zu anderem Auto gesprochen wird. Öffis werden nicht erwähnt, Carsharing nicht, radeln nicht, und in der Stadt wäre ne Vespa auch deutlich besser als ein SUV.</content>
+ <activity:verb>http://activitystrea.ms/schema/1.0/favorite</activity:verb>
+ <published>2017-08-23T13:18:19+00:00</published>
+ <updated>2017-08-23T13:18:19+00:00</updated>
+ <activity:object>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:quitter.is,2017-08-23:noticeId=4032910:objectType=note</id>
+ <title>New note by einebiene</title>
+ <content type="html">Haha, große Überraschung. &lt;a href=&quot;http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636&quot; title=&quot;http://www.sueddeutsche.de/wirtschaft/abgasaffaere-software-updates-fuer-dieselautos-helfen-kaum-1.3637636&quot; rel=&quot;nofollow noreferrer&quot; class=&quot;attachment&quot;&gt;https://quitter.is/url/1122672&lt;/a&gt;&lt;br /&gt; Was ich an all diesen Artikeln schade finde, ist, daß immer nur auf den Umstieg von Auto zu anderem Auto gesprochen wird. Öffis werden nicht erwähnt, Carsharing nicht, radeln nicht, und in der Stadt wäre ne Vespa auch deutlich besser als ein SUV.</content>
+ <link rel="alternate" type="text/html" href="https://quitter.is/notice/4032910"/>
+ <status_net notice_id="978458"></status_net>
+ </activity:object>
+ <thr:in-reply-to ref="tag:quitter.is,2017-08-23:noticeId=4032910:objectType=note" href="https://quitter.is/notice/4032910"></thr:in-reply-to>
+ <link rel="related" href="https://quitter.is/notice/4032910"/>
+ <link rel="ostatus:conversation" href="https://quitter.is/conversation/2535246"/>
+ <ostatus:conversation>https://quitter.is/conversation/2535246</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="https://quitter.is/user/8380"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <statusnet:notice_info local_id="978464" source="unknown"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978402:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">moin-quak</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978402"/>
+ <status_net notice_id="978402"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-23T10:57:26+00:00</published>
+ <updated>2017-08-23T10:57:26+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978402:objectType=thread:crc32=7050c397"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-23:noticeId=978402:objectType=thread:crc32=7050c397</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978402.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978402.atom"/>
+ <statusnet:notice_info local_id="978402" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978164:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">n8-quak</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978164"/>
+ <status_net notice_id="978164"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-22T19:54:30+00:00</published>
+ <updated>2017-08-22T19:54:30+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978164:objectType=thread:crc32=b0a209c7"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978164:objectType=thread:crc32=b0a209c7</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978164.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978164.atom"/>
+ <statusnet:notice_info local_id="978164" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">2017-08-22 Bundesverfassungsgericht: Erfolgreiche Verfassungsbeschwerde gegen die Versagung vorläufiger Leistungen für Kosten der Unterkunft und Heizung – &lt;a href=&quot;https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html&quot; title=&quot;https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html&quot; class=&quot;attachment&quot; id=&quot;attachment-450768&quot; rel=&quot;nofollow external&quot;&gt;https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html&lt;/a&gt; !&lt;a href=&quot;http://quitter.se/group/2184/id&quot; class=&quot;h-card group&quot; title=&quot;HartzIV (hartziv)&quot;&gt;hartziv&lt;/a&gt;</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978072"/>
+ <status_net notice_id="978072"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-22T12:00:21+00:00</published>
+ <updated>2017-08-22T12:00:21+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=thread:crc32=28a35f44"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=thread:crc32=28a35f44</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href=""/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/group" href="http://quitter.se/group/2184/id"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978072.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978072.atom"/>
+ <statusnet:notice_info local_id="978072" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978042:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">moin-quak!</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978042"/>
+ <status_net notice_id="978042"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-22T07:55:27+00:00</published>
+ <updated>2017-08-22T07:55:27+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978042:objectType=thread:crc32=f070a9f7"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978042:objectType=thread:crc32=f070a9f7</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978042.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978042.atom"/>
+ <statusnet:notice_info local_id="978042" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977914:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">So, morgen geht's weiter. n8-quak!</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/977914"/>
+ <status_net notice_id="977914"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-21T22:09:53+00:00</published>
+ <updated>2017-08-21T22:09:53+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977914:objectType=thread:crc32=c0a9f7fa"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977914:objectType=thread:crc32=c0a9f7fa</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977914.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977914.atom"/>
+ <statusnet:notice_info local_id="977914" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977710:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">moin-quak.</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/977710"/>
+ <status_net notice_id="977710"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-21T08:58:26+00:00</published>
+ <updated>2017-08-21T08:58:26+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977710:objectType=thread:crc32=60cfb466"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-21:noticeId=977710:objectType=thread:crc32=60cfb466</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977710.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977710.atom"/>
+ <statusnet:notice_info local_id="977710" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977526:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">Meine Augen meinen, für heute sei es genug. Nun denn. n8-quak.</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/977526"/>
+ <status_net notice_id="977526"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-20T19:58:16+00:00</published>
+ <updated>2017-08-20T19:58:16+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977526:objectType=thread:crc32=ce79634"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977526:objectType=thread:crc32=ce79634</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977526.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977526.atom"/>
+ <statusnet:notice_info local_id="977526" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977369:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">[Blog] Im Netz aufgefischt #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;https://social.stopwatchingus-heidelberg.de/tag/330&quot; rel=&quot;tag&quot;&gt;330&lt;/a&gt;&lt;/span&gt; – &lt;a href=&quot;https://blog.atari-frosch.de/2017/08/20/im-netz-aufgefischt-330/&quot; title=&quot;https://blog.atari-frosch.de/2017/08/20/im-netz-aufgefischt-330/&quot; class=&quot;attachment&quot; id=&quot;attachment-450668&quot; rel=&quot;nofollow external&quot;&gt;https://blog.atari-frosch.de/2017/08/20/im-netz-aufgefischt-330/&lt;/a&gt; (was ich diese Woche so gelesen habe)</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/977369"/>
+ <status_net notice_id="977369"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-20T09:14:07+00:00</published>
+ <updated>2017-08-20T09:14:07+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977369:objectType=thread:crc32=2f800b86"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-20:noticeId=977369:objectType=thread:crc32=2f800b86</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <category term="330"></category>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977369.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977369.atom"/>
+ <statusnet:notice_info local_id="977369" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977268:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">Fast ständig husten müssen ist echt anstrengend … naja, n8-quak.</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/977268"/>
+ <status_net notice_id="977268"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-19T21:59:20+00:00</published>
+ <updated>2017-08-19T21:59:20+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977268:objectType=thread:crc32=deda767a"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977268:objectType=thread:crc32=deda767a</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977268.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977268.atom"/>
+ <statusnet:notice_info local_id="977268" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-19:fave:18330:activity:977146:2017-08-19T21:39:26+02:00</id>
+ <title>Favorite</title>
+ <content type="html">atarifrosch favorited something by einebienezwo: Ich mach gerade Kompetenztraining.&lt;br /&gt; Ich trainiere die Kompetenz, eine halb aufgegessene Gummibärchentüte nicht ganz aufzuessen.</content>
+ <activity:verb>http://activitystrea.ms/schema/1.0/favorite</activity:verb>
+ <published>2017-08-19T19:39:26+00:00</published>
+ <updated>2017-08-19T19:39:26+00:00</updated>
+ <activity:object>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:gnusocial.de,2017-08-19:noticeId=11011264:objectType=note</id>
+ <title>New note by einebienezwo</title>
+ <content type="html">Ich mach gerade Kompetenztraining.&lt;br /&gt; Ich trainiere die Kompetenz, eine halb aufgegessene Gummibärchentüte nicht ganz aufzuessen.</content>
+ <link rel="alternate" type="text/html" href="https://gnusocial.de/notice/11011264"/>
+ <status_net notice_id="977146"></status_net>
+ </activity:object>
+ <thr:in-reply-to ref="tag:gnusocial.de,2017-08-19:noticeId=11011264:objectType=note" href="https://gnusocial.de/notice/11011264"></thr:in-reply-to>
+ <link rel="related" href="https://gnusocial.de/notice/11011264"/>
+ <link rel="ostatus:conversation" href="https://gnusocial.de/conversation/9363945"/>
+ <ostatus:conversation>https://gnusocial.de/conversation/9363945</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="https://gnusocial.de/user/219865"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <statusnet:notice_info local_id="977243" source="unknown"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/comment</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=977242:objectType=comment</id>
+ <title>New comment by atarifrosch</title>
+ <content type="html">Wir hatten hier schon Ordnungsdienst auf'm Radweg. Fotografisch dokumentiert (nicht von mir, Bekannter hatte es gesehen). Da hatte grad 'ne Pizzeria neu eröffnet …</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/977242"/>
+ <status_net notice_id="977242"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-19T19:38:53+00:00</published>
+ <updated>2017-08-19T19:38:53+00:00</updated>
+ <thr:in-reply-to ref="tag:gnusocial.de,2017-08-19:noticeId=11010978:objectType=note" href="https://gnusocial.de/notice/11010978"></thr:in-reply-to>
+ <link rel="related" href="https://gnusocial.de/notice/11010978"/>
+ <link rel="ostatus:conversation" href="https://gnusocial.de/conversation/9363813"/>
+ <ostatus:conversation>https://gnusocial.de/conversation/9363813</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="https://gnusocial.de/user/219865"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977242.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/977242.atom"/>
+ <statusnet:notice_info local_id="977242" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-19:fave:18330:activity:977180:2017-08-19T21:37:36+02:00</id>
+ <title>Favorite</title>
+ <content type="html">atarifrosch favorited something by jcaktiv: BTW Hallo zusammen &amp;lt;3, wo ich schon mal wieder hier bin</content>
+ <activity:verb>http://activitystrea.ms/schema/1.0/favorite</activity:verb>
+ <published>2017-08-19T19:37:36+00:00</published>
+ <updated>2017-08-19T19:37:36+00:00</updated>
+ <activity:object>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:quitter.se,2017-08-19:noticeId=17372467:objectType=note</id>
+ <title>New note by jcaktiv</title>
+ <content type="html">BTW Hallo zusammen &amp;lt;3, wo ich schon mal wieder hier bin</content>
+ <link rel="alternate" type="text/html" href="http://quitter.se/notice/17372467"/>
+ <status_net notice_id="977180"></status_net>
+ </activity:object>
+ <thr:in-reply-to ref="tag:quitter.se,2017-08-19:noticeId=17372467:objectType=note" href="http://quitter.se/notice/17372467"></thr:in-reply-to>
+ <link rel="related" href="http://quitter.se/notice/17372467"/>
+ <link rel="ostatus:conversation" href="tag:quitter.se,2017-08-19:objectType=thread:nonce=46c1c433d88aaa9f"/>
+ <ostatus:conversation>tag:quitter.se,2017-08-19:objectType=thread:nonce=46c1c433d88aaa9f</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="http://quitter.se/user/149873"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <statusnet:notice_info local_id="977240" source="unknown"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/comment</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976985:objectType=comment</id>
+ <title>New comment by atarifrosch</title>
+ <content type="html">Jo, oder einfach mal nachfragen, so als Realitätsabgleich.</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/976985"/>
+ <status_net notice_id="976985"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-19T10:34:50+00:00</published>
+ <updated>2017-08-19T10:34:50+00:00</updated>
+ <thr:in-reply-to ref="tag:status.pirati.ca,2017-08-19:noticeId=2310317:objectType=note" href="https://status.pirati.ca/notice/2310317"></thr:in-reply-to>
+ <link rel="related" href="https://status.pirati.ca/notice/2310317"/>
+ <link rel="ostatus:conversation" href="https://gnusocial.de/conversation/9362516"/>
+ <ostatus:conversation>https://gnusocial.de/conversation/9362516</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href="http://status.pirati.ca/user/2092"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/976985.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/976985.atom"/>
+ <statusnet:notice_info local_id="976985" source="web"></statusnet:notice_info>
+</entry>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976983:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">Schöne Alternative zu mit Werbung überladenen kommerziellen Anbietern: &lt;a href=&quot;http://ifconfig.at/&quot; title=&quot;http://ifconfig.at/&quot; class=&quot;attachment&quot; id=&quot;attachment-450636&quot; rel=&quot;nofollow external&quot;&gt;http://ifconfig.at/&lt;/a&gt; – eigene IP, Hostname etc. abfragen, mit curl dann auch in Textform zur lokalen Weiterverarbeitung in Scripten etc. Leider (noch?) kein https.</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/976983"/>
+ <status_net notice_id="976983"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-19T10:33:04+00:00</published>
+ <updated>2017-08-19T10:33:04+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976983:objectType=thread:crc32=4a3593c0"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-19:noticeId=976983:objectType=thread:crc32=4a3593c0</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/976983.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/976983.atom"/>
+ <statusnet:notice_info local_id="976983" source="web"></statusnet:notice_info>
+</entry>
+</feed>
diff --git a/test/fixtures/httpoison_mock/atarifrosch_webfinger.xml b/test/fixtures/httpoison_mock/atarifrosch_webfinger.xml
new file mode 100644
index 000000000..24188362c
--- /dev/null
+++ b/test/fixtures/httpoison_mock/atarifrosch_webfinger.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Subject>https://social.stopwatchingus-heidelberg.de/user/18330</Subject>
+ <Alias>acct:atarifrosch@social.stopwatchingus-heidelberg.de</Alias>
+ <Alias>https://social.stopwatchingus-heidelberg.de/atarifrosch</Alias>
+ <Link rel="http://webfinger.net/rel/profile-page" type="text/html" href="https://social.stopwatchingus-heidelberg.de/atarifrosch"/>
+ <Link rel="http://gmpg.org/xfn/11" type="text/html" href="https://social.stopwatchingus-heidelberg.de/atarifrosch"/>
+ <Link rel="describedby" type="application/rdf+xml" href="https://social.stopwatchingus-heidelberg.de/atarifrosch/foaf"/>
+ <Link rel="http://apinamespace.org/atom" type="application/atomsvc+xml" href="https://social.stopwatchingus-heidelberg.de/api/statusnet/app/service/atarifrosch.xml"/>
+ <Link rel="http://apinamespace.org/twitter" href="https://social.stopwatchingus-heidelberg.de/api/"/>
+ <Link rel="http://specs.openid.net/auth/2.0/provider" href="https://social.stopwatchingus-heidelberg.de/atarifrosch"/>
+ <Link rel="http://schemas.google.com/g/2010#updates-from" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom"/>
+ <Link rel="magic-public-key" href="data:application/magic-public-key,RSA.1ZeJGulQfTrrWooBUVcqpeJUMWfIFdCU1lprlUEHOKU6XF1an0bkoFzSXxnc_USbLfkeGo_Y2FBLeB8zQbOem3hHccbDOVAo4UhnMeAhiZIMJvE3X8fsk5KEuORpsSt9UjvygxF8CZFlhd13B4jL2ai-j1nWQPOgU-jAshgQQHk=.AQAB"/>
+ <Link rel="salmon" href="https://social.stopwatchingus-heidelberg.de/main/salmon/user/18330"/>
+ <Link rel="http://salmon-protocol.org/ns/salmon-replies" href="https://social.stopwatchingus-heidelberg.de/main/salmon/user/18330"/>
+ <Link rel="http://salmon-protocol.org/ns/salmon-mention" href="https://social.stopwatchingus-heidelberg.de/main/salmon/user/18330"/>
+ <Link rel="http://ostatus.org/schema/1.0/subscribe" template="https://social.stopwatchingus-heidelberg.de/main/ostatussub?profile={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/eal_sakamoto.xml b/test/fixtures/httpoison_mock/eal_sakamoto.xml
new file mode 100644
index 000000000..934d539c9
--- /dev/null
+++ b/test/fixtures/httpoison_mock/eal_sakamoto.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"><Subject>acct:eal@social.sakamoto.gq</Subject><Alias>https://social.sakamoto.gq/users/eal</Alias><Link href="https://social.sakamoto.gq/users/eal/feed.atom" rel="http://schemas.google.com/g/2010#updates-from" type="application/atom+xml" /><Link href="https://social.sakamoto.gq/users/eal" rel="http://webfinger.net/rel/profile-page" type="text/html" /><Link href="https://social.sakamoto.gq/users/eal/salmon" rel="salmon" /><Link href="data:application/magic-public-key,RSA.z3pF85YOhhv2Zaxv9YQ7rCe1aEhetCMVHtrK63tUVGoGdsblyKnVeJNbFcr6k3y35OpHS3HXIi6GzgihYcTuONLP4eQMHTnLUNAQZi03mjJA4iIq8v_tm8ZkL2mXsQSAbWj6Iq518mHNN7OvCoNt3Xjepl_0kgkc2gsund7m8r-Wu0Fusx6UlUyyAk3PexdDRdSSlVLeskqtP8jtdQDoL70pMyL-VD-Qb9RKFdtgJ-M4OqYP-7FVzCqXN0QIPhFf_kvHSLr-c4Y3Wm0nAKHU9CwXWXz5Xqscpv41KlgnUCOkTXb5eBSt23lNulae5srVzWBiFb6guiCpNzBGa-Sqrw==.AQAB" rel="magic-public-key" /></XRD> \ No newline at end of file
diff --git a/test/fixtures/httpoison_mock/gs.example.org_host_meta b/test/fixtures/httpoison_mock/gs.example.org_host_meta
new file mode 100644
index 000000000..c2fcd7305
--- /dev/null
+++ b/test/fixtures/httpoison_mock/gs.example.org_host_meta
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/jrd+json" template="http://gs.example.org/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/json" template="http://gs.example.org/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/xrd+xml" template="http://gs.example.org/.well-known/webfinger?resource={uri}"/>
+ <Link rel="http://apinamespace.org/oauth/access_token" href="http://gs.example.org/api/oauth/access_token"/>
+ <Link rel="http://apinamespace.org/oauth/request_token" href="http://gs.example.org/api/oauth/request_token"/>
+ <Link rel="http://apinamespace.org/oauth/authorize" href="http://gs.example.org/api/oauth/authorize"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/https___pawoo.net_users_aqidaqidaqid.xml b/test/fixtures/httpoison_mock/https___pawoo.net_users_aqidaqidaqid.xml
new file mode 100644
index 000000000..2de8a44b9
--- /dev/null
+++ b/test/fixtures/httpoison_mock/https___pawoo.net_users_aqidaqidaqid.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Subject>acct:aqidaqidaqid@pawoo.net</Subject>
+ <Alias>https://pawoo.net/@aqidaqidaqid</Alias>
+ <Alias>https://pawoo.net/users/aqidaqidaqid</Alias>
+ <Link rel="http://webfinger.net/rel/profile-page" type="text/html" href="https://pawoo.net/@aqidaqidaqid"/>
+ <Link rel="http://schemas.google.com/g/2010#updates-from" type="application/atom+xml" href="https://pawoo.net/users/aqidaqidaqid.atom"/>
+ <Link rel="salmon" href="https://pawoo.net/api/salmon/24733"/>
+ <Link rel="magic-public-key" href="data:application/magic-public-key,RSA.mRLlTE_m1_HAm9GKPPtfKqQuTJzdDg3k1D8_MVfGHrw14KFr3QFYieV0DmXSCBWcrNcFrnw1ItFdkd7hh-cvhrBAER2MAR_YNDlGQh5RDriBidCa-FvMAYX0f5aDyy33D392OoFxre-esc54VRvCm0JSWLUpm6iNHYc36nHKIJKKW3HbmVfAWp5N-R8kP0IyB5xBWAqBPZA8pnjeXd_jygRfAxfXU7PaXkNeY3xPBpkEujJXGuUjlmz6FcZYlPfhqtNTPsiyE-ZN1u7OdFZ5TOM7zy6Wzs5xa2xhEGv-RrdPZa2OAiYT-xWPLlQsGu5YEO_fAuz3HQx4iOriVb6ndQ==.AQAB"/>
+ <Link rel="http://ostatus.org/schema/1.0/subscribe" template="https://pawoo.net/authorize_follow?acct={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml b/test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml
new file mode 100644
index 000000000..948e4758e
--- /dev/null
+++ b/test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Subject>lain@squeet.me</Subject>
+ <Alias>https://squeet.me/profile/lain</Alias>
+ <Alias>https://squeet.me/profile/lain</Alias>
+
+ <Link rel="http://purl.org/macgirvin/dfrn/1.0"
+ href="https://squeet.me/profile/lain" />
+ <Link rel="http://schemas.google.com/g/2010#updates-from"
+ type="application/atom+xml"
+ href="https://squeet.me/dfrn_poll/lain" />
+ <Link rel="http://webfinger.net/rel/profile-page"
+ type="text/html"
+ href="https://squeet.me/profile/lain" />
+ <Link rel="http://microformats.org/profile/hcard"
+ type="text/html"
+ href="https://squeet.me/hcard/lain" />
+ <Link rel="http://portablecontacts.net/spec/1.0"
+ href="https://squeet.me/poco/lain" />
+ <Link rel="http://webfinger.net/rel/avatar"
+ type="image/jpeg"
+ href="https://squeet.me/photo/profile/301.jpg" />
+ <Link rel="http://joindiaspora.com/seed_location" type="text/html" href="https://squeet.me/" />
+ <Link rel="http://joindiaspora.com/guid" type="text/html" href="962c3e1016599bd8cede8a9274362922" />
+ <Link rel="diaspora-public-key" type="RSA" href="LS0tLS1CRUdJTiBSU0EgUFVCTElDIEtFWS0tLS0tCk1JSUNDZ0tDQWdFQTNkM0JPUkdITHJSWXZYNUFGcEhzeTlpQy9wSlVBSHl4dlhYQW04S3RvRkpqTFZZc2N0bS8KclJwTE81OE5rTUZlTTZOQWJMWmROOFArdEdLNFBORWhsSWNqek9DdS82UmxjVGZwWU9yaDdaeWtWNmk1UlVHRApKQ3JJcjJ5OUVURXBFL09zZ25QNVEwVmpJWWwxdVJLNytPeGZHOGVUTjhDVnpnY2pjM205MnM0MjBXS2dKTHA1CmFaVkRESS9OcHYwektlVi9Pb21Fb2N6U1ZuckEzZGZKSkltQ3IxdWpvUEoyOVJzb1dpeCtLMjJWZU5BdVlOYmUKeWdXY3F3cTlZeWRNaDNqUEVNRVZXUzMvRjZuTE9VS084MDAzY2p1V1NxNXhvZkptVnJkMVlCVFFWR0wzOUNXMAorQUFVcEJhMXc0YWcvc1Nya0xsMFk1QUs0akJKcHVpbHFZcXFtRXlVS2NTWElHVlIyNG5UWWdlWExCRDFtcS80CmVnaTc1eUtWbysrRVdYUTlyb0oxblUxVHYvbkRDY0lYSWE4Zi9uNEpMTk8wTG1DR01aWjVjS3dnMFBmVUZkdEoKK3UwL2UrczFyWmk5d0JZb1B5RGhGM1ZPS0Z5REs1b0xUVEJ6ZERlTklYUjdDc004VElSZnkyaU1rSTh4NTRCQgp3TkFrZGV0b3owZXFrZmFyejd2TUdWajB0SWRZZWRmTFpFYk1jSUVWTk1kWXhqUWJnSGZ3aGUxZ2xZS2RLdmNECjhCanpZU1VDR2Q2ZitSR2ZrYXBvaFBqanBSbW1QaHhlZHNlTEVpZkZMQ2JvWTlUSUIrR1V2NXJPTG1iblVsL3IKdE42dzRsRzlqQ2F1a25UYU5LSmVYVlRmRGRBSE9FbFZLdTN2L05taTA2dnlkMzhWS1JlSFc3OENBd0VBQVE9PQotLS0tLUVORCBSU0EgUFVCTElDIEtFWS0tLS0tCg==" />
+
+ <Link rel="salmon"
+ href="https://squeet.me/salmon/lain" />
+ <Link rel="http://salmon-protocol.org/ns/salmon-replies"
+ href="https://squeet.me/salmon/lain" />
+ <Link rel="http://salmon-protocol.org/ns/salmon-mention"
+ href="https://squeet.me/salmon/lain/mention" />
+ <Link rel="http://ostatus.org/schema/1.0/subscribe"
+ template="https://squeet.me/follow?url={uri}" />
+ <Link rel="magic-public-key"
+ href="data:application/magic-public-key,RSA.AMwa8FUs2fWEjX0xN7yRQgegQffhBpuKNC6fa5VNSVorFjGZhRrlPMn7TQOeihlc9lBz2OsHlIedbYn2uJ7yCs0.AQAB" />
+
+ <Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
+ type="http://salmon-protocol.org/ns/magic-key"
+ mk:key_id="1">RSA.AN3dwTkRhy60WL1-QBaR7MvYgv6SVAB8sb11wJvCraBSYy1WLHLZv60aSzufDZDBXjOjQGy2XTfD_rRiuDzRIZSHI8zgrv-kZXE36WDq4e2cpFeouUVBgyQqyK9svRExKRPzrIJz-UNFYyGJdbkSu_jsXxvHkzfAlc4HI3N5vdrONtFioCS6eWmVQwyPzab9MynlfzqJhKHM0lZ6wN3XySSJgq9bo6DydvUbKFosfittlXjQLmDW3soFnKsKvWMnTId4zxDBFVkt_xepyzlCjvNNN3I7lkqucaHyZla3dWAU0FRi9_QltPgAFKQWtcOGoP7Eq5C5dGOQCuIwSabopamKqphMlCnElyBlUduJ02IHlywQ9Zqv-HoIu-cilaPvhFl0Pa6CdZ1NU7_5wwnCFyGvH_5-CSzTtC5ghjGWeXCsIND31BXbSfrtP3vrNa2YvcAWKD8g4Rd1TihcgyuaC00wc3Q3jSF0ewrDPEyEX8tojJCPMeeAQcDQJHXraM9HqpH2q8-7zBlY9LSHWHnXy2RGzHCBFTTHWMY0G4B38IXtYJWCnSr3A_AY82ElAhnen_kRn5GqaIT446UZpj4cXnbHixInxSwm6GPUyAfhlL-azi5m51Jf67TesOJRvYwmrpJ02jSiXl1U3w3QBzhJVSrt7_zZotOr8nd_FSkXh1u_.AQAB</Property>
+
+</XRD>
diff --git a/test/fixtures/httpoison_mock/macgirvin.com_host_meta b/test/fixtures/httpoison_mock/macgirvin.com_host_meta
new file mode 100644
index 000000000..cd30b602f
--- /dev/null
+++ b/test/fixtures/httpoison_mock/macgirvin.com_host_meta
@@ -0,0 +1,11 @@
+<?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>macgirvin.com</hm:Host>
+
+ <Link rel='lrdd' type="application/xrd+xml" template='https://macgirvin.com/xrd/?uri={uri}' />
+ <Link rel="http://oexchange.org/spec/0.8/rel/resident-target" type="application/xrd+xml"
+ href="https://macgirvin.com/oexchange/xrd" />
+
+</XRD>
diff --git a/test/fixtures/httpoison_mock/mamot.fr_host_meta b/test/fixtures/httpoison_mock/mamot.fr_host_meta
new file mode 100644
index 000000000..ed7a95094
--- /dev/null
+++ b/test/fixtures/httpoison_mock/mamot.fr_host_meta
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/xrd+xml" template="https://mamot.fr/.well-known/webfinger?resource={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/mastodon.social_host_meta b/test/fixtures/httpoison_mock/mastodon.social_host_meta
new file mode 100644
index 000000000..78e46e260
--- /dev/null
+++ b/test/fixtures/httpoison_mock/mastodon.social_host_meta
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/xrd+xml" template="https://mastodon.social/.well-known/webfinger?resource={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/mastodon.xyz_host_meta b/test/fixtures/httpoison_mock/mastodon.xyz_host_meta
new file mode 100644
index 000000000..8604316fb
--- /dev/null
+++ b/test/fixtures/httpoison_mock/mastodon.xyz_host_meta
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/xrd+xml" template="https://mastodon.xyz/.well-known/webfinger?resource={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/pawoo.net_host_meta b/test/fixtures/httpoison_mock/pawoo.net_host_meta
new file mode 100644
index 000000000..dbbe7be5f
--- /dev/null
+++ b/test/fixtures/httpoison_mock/pawoo.net_host_meta
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/xrd+xml" template="https://pawoo.net/.well-known/webfinger?resource={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/pleroma.soykaf.com_host_meta b/test/fixtures/httpoison_mock/pleroma.soykaf.com_host_meta
new file mode 100644
index 000000000..fb5c15a4f
--- /dev/null
+++ b/test/fixtures/httpoison_mock/pleroma.soykaf.com_host_meta
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"><Link rel="lrdd" template="https://pleroma.soykaf.com/.well-known/webfinger?resource={uri}" type="application/xrd+xml" /></XRD> \ No newline at end of file
diff --git a/test/fixtures/httpoison_mock/shitposter.club_host_meta b/test/fixtures/httpoison_mock/shitposter.club_host_meta
new file mode 100644
index 000000000..9d012e1df
--- /dev/null
+++ b/test/fixtures/httpoison_mock/shitposter.club_host_meta
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/jrd+json" template="https://shitposter.club/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/json" template="https://shitposter.club/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/xrd+xml" template="https://shitposter.club/.well-known/webfinger?resource={uri}"/>
+ <Link rel="http://apinamespace.org/oauth/access_token" href="https://shitposter.club/api/oauth/access_token"/>
+ <Link rel="http://apinamespace.org/oauth/request_token" href="https://shitposter.club/api/oauth/request_token"/>
+ <Link rel="http://apinamespace.org/oauth/authorize" href="https://shitposter.club/api/oauth/authorize"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/social.heldscal.la_host_meta b/test/fixtures/httpoison_mock/social.heldscal.la_host_meta
new file mode 100644
index 000000000..540e6257e
--- /dev/null
+++ b/test/fixtures/httpoison_mock/social.heldscal.la_host_meta
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/jrd+json" template="https://social.heldscal.la/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/json" template="https://social.heldscal.la/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/xrd+xml" template="https://social.heldscal.la/.well-known/webfinger?resource={uri}"/>
+ <Link rel="http://apinamespace.org/oauth/access_token" href="https://social.heldscal.la/api/oauth/access_token"/>
+ <Link rel="http://apinamespace.org/oauth/request_token" href="https://social.heldscal.la/api/oauth/request_token"/>
+ <Link rel="http://apinamespace.org/oauth/authorize" href="https://social.heldscal.la/api/oauth/authorize"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/social.sakamoto.gq_host_meta b/test/fixtures/httpoison_mock/social.sakamoto.gq_host_meta
new file mode 100644
index 000000000..f193dce2b
--- /dev/null
+++ b/test/fixtures/httpoison_mock/social.sakamoto.gq_host_meta
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"><Link rel="lrdd" template="https://social.sakamoto.gq/.well-known/webfinger?resource={uri}" type="application/xrd+xml" /></XRD> \ No newline at end of file
diff --git a/test/fixtures/httpoison_mock/social.stopwatchingus-heidelberg.de_host_meta b/test/fixtures/httpoison_mock/social.stopwatchingus-heidelberg.de_host_meta
new file mode 100644
index 000000000..aafc9f60d
--- /dev/null
+++ b/test/fixtures/httpoison_mock/social.stopwatchingus-heidelberg.de_host_meta
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/jrd+json" template="https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/json" template="https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource={uri}"/>
+ <Link rel="lrdd" type="application/xrd+xml" template="https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource={uri}"/>
+ <Link rel="http://apinamespace.org/oauth/access_token" href="https://social.stopwatchingus-heidelberg.de/api/oauth/access_token"/>
+ <Link rel="http://apinamespace.org/oauth/request_token" href="https://social.stopwatchingus-heidelberg.de/api/oauth/request_token"/>
+ <Link rel="http://apinamespace.org/oauth/authorize" href="https://social.stopwatchingus-heidelberg.de/api/oauth/authorize"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/social.wxcafe.net_host_meta b/test/fixtures/httpoison_mock/social.wxcafe.net_host_meta
new file mode 100644
index 000000000..5ffc40a90
--- /dev/null
+++ b/test/fixtures/httpoison_mock/social.wxcafe.net_host_meta
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
+ <Link rel="lrdd" type="application/xrd+xml" template="https://social.wxcafe.net/.well-known/webfinger?resource={uri}"/>
+</XRD>
diff --git a/test/fixtures/httpoison_mock/squeet.me_host_meta b/test/fixtures/httpoison_mock/squeet.me_host_meta
new file mode 100644
index 000000000..4a94ae574
--- /dev/null
+++ b/test/fixtures/httpoison_mock/squeet.me_host_meta
@@ -0,0 +1,16 @@
+<?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>squeet.me</hm:Host>
+
+ <Link rel='lrdd' type='application/xrd+xml' template='https://squeet.me/xrd/?uri={uri}' />
+ <Link rel='acct-mgmt' href='https://squeet.me/amcd' />
+ <Link rel='http://services.mozilla.com/amcd/0.1' href='https://squeet.me/amcd' />
+ <Link rel="http://oexchange.org/spec/0.8/rel/resident-target" type="application/xrd+xml"
+ href="https://squeet.me/oexchange/xrd" />
+
+ <Property xmlns:mk="http://salmon-protocol.org/ns/magic-key"
+ type="http://salmon-protocol.org/ns/magic-key"
+ mk:key_id="1">RSA.AMZTNgTQx_YZzt1urzlHyefrXFAml_q8fpCsnUHeIbdtQLeA-HdTK2epwELu653-aK_WGUYSKYLyb1walkqNM5gC5FGVFa7EvVoR-uSNKrduFzUz2SdRXTw3e3NQtd9Rs5Mpgm1wYnt1NiWk-7dKIpoVilHgOOYDX15NU9Zfu7-J.AQAB</Property>
+</XRD>
diff --git a/test/fixtures/nil_mention_entry.xml b/test/fixtures/nil_mention_entry.xml
new file mode 100644
index 000000000..e13024cb3
--- /dev/null
+++ b/test/fixtures/nil_mention_entry.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
+ <generator uri="https://gnu.io/social" version="1.2.0-alpha2">GNU social</generator>
+ <id>https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom</id>
+ <title>atarifrosch timeline</title>
+ <subtitle>Updates from atarifrosch on social.stopwatchingus-heidelberg.de!</subtitle>
+ <logo>https://social.stopwatchingus-heidelberg.de/avatar/18330-96-20150628163706.png</logo>
+ <updated>2017-08-24T11:36:49+02:00</updated>
+<author>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
+ <uri>https://social.stopwatchingus-heidelberg.de/user/18330</uri>
+ <name>atarifrosch</name>
+ <summary>Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE</summary>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/atarifrosch"/>
+ <link rel="avatar" type="image/png" media:width="480" media:height="480" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-480-20150628163705.png"/>
+ <link rel="avatar" type="image/png" media:width="96" media:height="96" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-96-20150628163706.png"/>
+ <link rel="avatar" type="image/png" media:width="48" media:height="48" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-48-20150628163713.png"/>
+ <link rel="avatar" type="image/png" media:width="24" media:height="24" href="https://social.stopwatchingus-heidelberg.de/avatar/18330-24-20150628163714.png"/>
+ <poco:preferredUsername>atarifrosch</poco:preferredUsername>
+ <poco:displayName>Atari-Frosch</poco:displayName>
+ <poco:note>Nerd, Pirat, Debian user, CAcert assurer, Geocacher, Freifunker. Autismus/Depression, agender. GnuPG Key-ID: 0xBCF81ADE</poco:note>
+ <poco:address>
+ <poco:formatted>Düsseldorf, NRW, Germany</poco:formatted>
+ </poco:address>
+ <poco:urls>
+ <poco:type>homepage</poco:type>
+ <poco:value>https://www.atari-frosch.de/</poco:value>
+ <poco:primary>true</poco:primary>
+ </poco:urls>
+ <followers url="https://social.stopwatchingus-heidelberg.de/atarifrosch/subscribers"></followers>
+ <statusnet:profile_info local_id="18330"></statusnet:profile_info>
+</author>
+<entry>
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
+ <id>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=note</id>
+ <title>New note by atarifrosch</title>
+ <content type="html">2017-08-22 Bundesverfassungsgericht: Erfolgreiche Verfassungsbeschwerde gegen die Versagung vorläufiger Leistungen für Kosten der Unterkunft und Heizung – &lt;a href=&quot;https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html&quot; title=&quot;https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html&quot; class=&quot;attachment&quot; id=&quot;attachment-450768&quot; rel=&quot;nofollow external&quot;&gt;https://www.bundesverfassungsgericht.de/SharedDocs/Pressemitteilungen/DE/2017/bvg17-072.html&lt;/a&gt; !&lt;a href=&quot;http://quitter.se/group/2184/id&quot; class=&quot;h-card group&quot; title=&quot;HartzIV (hartziv)&quot;&gt;hartziv&lt;/a&gt;</content>
+ <link rel="alternate" type="text/html" href="https://social.stopwatchingus-heidelberg.de/notice/978072"/>
+ <status_net notice_id="978072"></status_net>
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
+ <published>2017-08-22T12:00:21+00:00</published>
+ <updated>2017-08-22T12:00:21+00:00</updated>
+ <link rel="ostatus:conversation" href="tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=thread:crc32=28a35f44"/>
+ <ostatus:conversation>tag:social.stopwatchingus-heidelberg.de,2017-08-22:noticeId=978072:objectType=thread:crc32=28a35f44</ostatus:conversation>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/person" href=""/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/group" href="http://quitter.se/group/2184/id"/>
+ <link rel="mentioned" ostatus:object-type="http://activitystrea.ms/schema/1.0/collection" href="http://activityschema.org/collection/public"/>
+ <link rel="self" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978072.atom"/>
+ <link rel="edit" type="application/atom+xml" href="https://social.stopwatchingus-heidelberg.de/api/statuses/show/978072.atom"/>
+ <statusnet:notice_info local_id="978072" source="web"></statusnet:notice_info>
+</entry>
+</feed>
diff --git a/test/support/httpoison_mock.ex b/test/support/httpoison_mock.ex
index 08b566fcd..091fb9ded 100644
--- a/test/support/httpoison_mock.ex
+++ b/test/support/httpoison_mock.ex
@@ -10,6 +10,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://social.heldscal.la/.well-known/webfinger?resource=shp@social.heldscal.la", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/shp@social.heldscal.la.xml")
+ }}
+ end
+
def get("https://social.heldscal.la/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "shp@social.heldscal.la"]]) do
{:ok, %Response{
status_code: 200,
@@ -23,7 +30,14 @@ defmodule HTTPoisonMock do
body: File.read!("test/fixtures/httpoison_mock/https___social.heldscal.la_user_23211.xml")
}}
end
-
+
+ def get("https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/23211", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/https___social.heldscal.la_user_23211.xml")
+ }}
+ end
+
def get("https://social.heldscal.la/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "https://social.heldscal.la/user/29191"]]) do
{:ok, %Response{
status_code: 200,
@@ -31,6 +45,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/29191", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/https___social.heldscal.la_user_29191.xml")
+ }}
+ end
+
def get("https://mastodon.social/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "https://mastodon.social/users/lambadalambda"]]) do
{:ok, %Response{
status_code: 200,
@@ -38,6 +59,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://mastodon.social/.well-known/webfinger?resource=https://mastodon.social/users/lambadalambda", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/https___mastodon.social_users_lambadalambda.xml")
+ }}
+ end
+
def get("https://shitposter.club/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "https://shitposter.club/user/1"]]) do
{:ok, %Response{
status_code: 200,
@@ -45,6 +73,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/1", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/https___shitposter.club_user_1.xml")
+ }}
+ end
+
def get("http://gs.example.org/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "http://gs.example.org:4040/index.php/user/1"], follow_redirect: true]) do
{:ok, %Response{
status_code: 200,
@@ -52,6 +87,20 @@ defmodule HTTPoisonMock do
}}
end
+ def get("http://gs.example.org/.well-known/webfinger?resource=http://gs.example.org:4040/index.php/user/1", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/http___gs.example.org_4040_index.php_user_1.xml")
+ }}
+ end
+
+ def get("https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource=https://social.stopwatchingus-heidelberg.de/user/18330", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/atarifrosch_webfinger.xml")
+ }}
+ end
+
def get("https://pleroma.soykaf.com/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "https://pleroma.soykaf.com/users/lain"]]) do
{:ok, %Response{
status_code: 200,
@@ -59,6 +108,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://pleroma.soykaf.com/.well-known/webfinger?resource=https://pleroma.soykaf.com/users/lain", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/https___pleroma.soykaf.com_users_lain.xml")
+ }}
+ end
+
def get("https://social.heldscal.la/api/statuses/user_timeline/29191.atom", _body, _headers) do
{:ok, %Response{
status_code: 200,
@@ -80,6 +136,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom", _body, _headers) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/atarifrosch_feed.xml")
+ }}
+ end
+
def get("https://pleroma.soykaf.com/users/lain/feed.atom", _body, _headers) do
{:ok, %Response{
status_code: 200,
@@ -135,6 +198,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://pawoo.net/.well-known/webfinger?resource=https://pawoo.net/users/pekorino", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/https___pawoo.net_users_pekorino.xml")
+ }}
+ end
+
def get("https://pawoo.net/users/pekorino.atom", _, _) do
{:ok, %Response{
status_code: 200,
@@ -149,6 +219,13 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://mamot.fr/.well-known/webfinger?resource=https://mamot.fr/users/Skruyb", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/skruyb@mamot.fr.atom")
+ }}
+ end
+
def get("https://social.sakamoto.gq/.well-known/webfinger", [Accept: "application/xrd+xml"], [params: [resource: "https://social.sakamoto.gq/users/eal"]]) do
{:ok, %Response{
status_code: 200,
@@ -156,6 +233,20 @@ defmodule HTTPoisonMock do
}}
end
+ def get("https://social.sakamoto.gq/.well-known/webfinger?resource=https://social.sakamoto.gq/users/eal", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/eal_sakamoto.xml")
+ }}
+ end
+
+ def get("https://squeet.me/xrd/?uri=lain@squeet.me", [Accept: "application/xrd+xml"], []) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml")
+ }}
+ end
+
def get("https://mamot.fr/users/Skruyb.atom", _, _) do
{:ok, %Response{
status_code: 200,
@@ -171,6 +262,97 @@ defmodule HTTPoisonMock do
end
+ def get("http://social.heldscal.la/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/social.heldscal.la_host_meta")
+ }}
+ end
+
+ def get("http://macgirvin.com/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/macgirvin.com_host_meta")
+ }}
+ end
+
+ def get("http://mastodon.social/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/mastodon.social_host_meta")
+ }}
+ end
+
+ def get("http://shitposter.club/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/shitposter.club_host_meta")
+ }}
+ end
+
+ def get("http://pleroma.soykaf.com/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/pleroma.soykaf.com_host_meta")
+ }}
+ end
+
+ def get("http://social.sakamoto.gq/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/social.sakamoto.gq_host_meta")
+ }}
+ end
+
+ def get("http://gs.example.org/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/gs.example.org_host_meta")
+ }}
+ end
+
+ def get("http://pawoo.net/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/pawoo.net_host_meta")
+ }}
+ end
+
+ def get("http://mamot.fr/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/mamot.fr_host_meta")
+ }}
+ end
+
+ def get("http://mastodon.xyz/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/mastodon.xyz_host_meta")
+ }}
+ end
+
+ def get("http://social.wxcafe.net/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/social.wxcafe.net_host_meta")
+ }}
+ end
+
+ def get("http://squeet.me/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/squeet.me_host_meta")
+ }}
+ end
+
+ def get("http://social.stopwatchingus-heidelberg.de/.well-known/host-meta", [], [follow_redirect: true]) do
+ {:ok, %Response{
+ status_code: 200,
+ body: File.read!("test/fixtures/httpoison_mock/social.stopwatchingus-heidelberg.de_host_meta")
+ }}
+ end
+
def get(url, body, headers) do
{:error, "Not implemented the mock response for get #{inspect(url)}, #{inspect(body)}, #{inspect(headers)}"}
end
diff --git a/test/upload_test.exs b/test/upload_test.exs
index e8c954341..71041e83c 100644
--- a/test/upload_test.exs
+++ b/test/upload_test.exs
@@ -4,9 +4,10 @@ defmodule Pleroma.UploadTest do
describe "Storing a file" do
test "copies the file to the configured folder" do
- file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an_image.jpg"}
+ file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an [image.jpg"}
data = Upload.store(file)
- assert data["name"] == "an_image.jpg"
+ assert data["name"] == "an [image.jpg"
+ assert List.first(data["url"])["href"] == "http://localhost:4001/media/#{data["uuid"]}/an%20%5Bimage.jpg"
end
end
end
diff --git a/test/web/ostatus/incoming_documents/delete_handling_test.exs b/test/web/ostatus/incoming_documents/delete_handling_test.exs
index 8cd6e295e..989c87afa 100644
--- a/test/web/ostatus/incoming_documents/delete_handling_test.exs
+++ b/test/web/ostatus/incoming_documents/delete_handling_test.exs
@@ -9,12 +9,17 @@ defmodule Pleroma.Web.OStatus.DeleteHandlingTest do
test "it removes the mentioned activity" do
note = insert(:note_activity)
second_note = insert(:note_activity)
+ user = insert(:user)
+ object = Object.get_by_ap_id(note.data["object"]["id"])
+
+ {:ok, like, object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
incoming = File.read!("test/fixtures/delete.xml")
|> String.replace("tag:mastodon.sdf.org,2017-06-10:objectId=310513:objectType=Status", note.data["object"]["id"])
{:ok, []} = OStatus.handle_incoming(incoming)
refute Repo.get(Activity, note.id)
+ refute Repo.get(Activity, like.id)
refute Object.get_by_ap_id(note.data["object"]["id"])
assert Repo.get(Activity, second_note.id)
assert Object.get_by_ap_id(second_note.data["object"]["id"])
diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs
index 44d687d8e..8dd3c3b54 100644
--- a/test/web/ostatus/ostatus_test.exs
+++ b/test/web/ostatus/ostatus_test.exs
@@ -346,4 +346,11 @@ defmodule Pleroma.Web.OStatusTest do
assert {:ok, %User{}} = OStatus.insert_or_update_user(data)
end
+
+ test "it doesn't add nil in the do field" do
+ incoming = File.read!("test/fixtures/nil_mention_entry.xml")
+ {:ok, [activity]} = OStatus.handle_incoming(incoming)
+
+ assert activity.data["to"] == ["http://localhost:4001/users/atarifrosch@social.stopwatchingus-heidelberg.de/followers", "https://www.w3.org/ns/activitystreams#Public"]
+ end
end
diff --git a/test/web/salmon/salmon_test.exs b/test/web/salmon/salmon_test.exs
index e722f08ef..f2b729da9 100644
--- a/test/web/salmon/salmon_test.exs
+++ b/test/web/salmon/salmon_test.exs
@@ -8,6 +8,8 @@ defmodule Pleroma.Web.Salmon.SalmonTest do
@wrong_magickey "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwQhh-1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAA"
+ @magickey_friendica "RSA.AMwa8FUs2fWEjX0xN7yRQgegQffhBpuKNC6fa5VNSVorFjGZhRrlPMn7TQOeihlc9lBz2OsHlIedbYn2uJ7yCs0.AQAB"
+
test "decodes a salmon" do
{:ok, salmon} = File.read("test/fixtures/salmon.xml")
{:ok, doc} = Salmon.decode_and_validate(@magickey, salmon)
@@ -32,6 +34,10 @@ defmodule Pleroma.Web.Salmon.SalmonTest do
assert @magickey == magic_key
end
+ test "it decodes a friendica public key" do
+ key = Salmon.decode_key(@magickey_friendica)
+ end
+
test "returns a public and private key from a pem" do
pem = File.read!("test/fixtures/private_key.pem")
{:ok, private, public} = Salmon.keys_from_pem(pem)
diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs
index e9f6a1915..4f090ee8e 100644
--- a/test/web/twitter_api/representers/activity_representer_test.exs
+++ b/test/web/twitter_api/representers/activity_representer_test.exs
@@ -27,6 +27,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
assert status["statusnet_conversation_id"] == retweeted_status["statusnet_conversation_id"]
assert status["retweeted_status"] == retweeted_status
+ assert status["activity_type"] == "repeat"
end
test "a like activity" do
@@ -44,6 +45,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
activity_actor = Repo.get_by(User, ap_id: note_activity.data["actor"])
liked_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user})
assert liked_status["favorited"] == true
+ assert status["activity_type"] == "like"
end
test "an activity" do
@@ -127,7 +129,9 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
"favorited" => false,
"repeated" => false,
"external_url" => "some url",
- "tags" => ["content", "mentioning", "nsfw"]
+ "tags" => ["content", "mentioning", "nsfw"],
+ "activity_type" => "post",
+ "possibly_sensitive" => true
}
assert ActivityRepresenter.to_map(activity, %{user: user, for: follower, mentioned: [mentioned_user]}) == expected_status
@@ -142,5 +146,6 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
map = ActivityRepresenter.to_map(unfollow, %{user: follower})
assert map["is_post_verb"] == false
+ assert map["activity_type"] == "undo"
end
end
diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs
index 8c689d7d3..89b8c2eeb 100644
--- a/test/web/twitter_api/twitter_api_controller_test.exs
+++ b/test/web/twitter_api/twitter_api_controller_test.exs
@@ -455,6 +455,22 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
end
end
+ describe "POST /api/account/update_profile.json" do
+ test "it updates a user's profile" do
+ user = insert(:user)
+
+ conn = conn
+ |> assign(:user, user)
+ |> post("/api/account/update_profile.json", %{"name" => "new name", "description" => "new description"})
+
+ user = Repo.get!(User, user.id)
+ assert user.name == "new name"
+ assert user.bio == "new description"
+
+ assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})
+ end
+ end
+
defp valid_user(_context) do
user = insert(:user)
[user: user]
diff --git a/test/web/twitter_api/twitter_api_utils_test.exs b/test/web/twitter_api/twitter_api_utils_test.exs
index 62aa7843b..ff03414d6 100644
--- a/test/web/twitter_api/twitter_api_utils_test.exs
+++ b/test/web/twitter_api/twitter_api_utils_test.exs
@@ -3,12 +3,14 @@ defmodule Pleroma.Web.TwitterAPI.UtilsTest do
use Pleroma.DataCase
test "it adds attachment links to a given text and attachment set" do
+ name = "Sakura%20Mana%20%E2%80%93%20Turned%20on%20by%20a%20Senior%20OL%20with%20a%20Temptating%20Tight%20Skirt-s%20Full%20Hipline%20and%20Panty%20Shot-%20Beautiful%20Thick%20Thighs-%20and%20Erotic%20Ass-%20-2015-%20--%20Oppaitime%208-28-2017%206-50-33%20PM.png"
+
attachment = %{
- "url" => [%{"href" => "http://heise.de/i\"m a boy.png"}]
+ "url" => [%{"href" => name}]
}
res = Utils.add_attachments("", [attachment])
- assert res == "<br>\n<a href=\"http://heise.de/i%22m%20a%20boy.png\" class='attachment'>i\"m a boy.png</a>"
+ assert res == "<br>\n<a href=\"#{name}\" class='attachment'>Sakura Mana – Turned on by a Se…</a>"
end
end
diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs
index b81d3d64d..7b3289422 100644
--- a/test/web/twitter_api/views/user_view_test.exs
+++ b/test/web/twitter_api/views/user_view_test.exs
@@ -50,7 +50,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
"profile_image_url_original" => image,
"following" => false,
"rights" => %{},
- "statusnet_profile_url" => user.ap_id
+ "statusnet_profile_url" => user.ap_id,
+ "cover_photo" => nil,
+ "background_image" => nil
}
assert represented == UserView.render("show.json", %{user: user})
@@ -76,7 +78,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
"profile_image_url_original" => image,
"following" => true,
"rights" => %{},
- "statusnet_profile_url" => user.ap_id
+ "statusnet_profile_url" => user.ap_id,
+ "cover_photo" => nil,
+ "background_image" => nil
}
assert represented == UserView.render("show.json", %{user: user, for: follower})
diff --git a/test/web/web_finger/web_finger_test.exs b/test/web/web_finger/web_finger_test.exs
index 495d3d50b..38640b6d3 100644
--- a/test/web/web_finger/web_finger_test.exs
+++ b/test/web/web_finger/web_finger_test.exs
@@ -31,17 +31,32 @@ defmodule Pleroma.Web.WebFingerTest do
test "returns the info for a user" do
user = "shp@social.heldscal.la"
- getter = fn(_url, _headers, [params: [resource: ^user]]) ->
- {:ok, %{status_code: 200, body: File.read!("test/fixtures/webfinger.xml")}}
- end
-
- {:ok, data} = WebFinger.finger(user, getter)
+ {:ok, data} = WebFinger.finger(user)
assert data["magic_key"] == "RSA.wQ3i9UA0qmAxZ0WTIp4a-waZn_17Ez1pEEmqmqoooRsG1_BvpmOvLN0G2tEcWWxl2KOtdQMCiPptmQObeZeuj48mdsDZ4ArQinexY2hCCTcbV8Xpswpkb8K05RcKipdg07pnI7tAgQ0VWSZDImncL6YUGlG5YN8b5TjGOwk2VG8=.AQAB"
assert data["topic"] == "https://social.heldscal.la/api/statuses/user_timeline/29191.atom"
assert data["subject"] == "acct:shp@social.heldscal.la"
assert data["salmon"] == "https://social.heldscal.la/main/salmon/user/29191"
end
+
+ test "it works for friendica" do
+ user = "lain@squeet.me"
+
+ {:ok, data} = WebFinger.finger(user)
+
+ end
+
+ test "it gets the xrd endpoint" do
+ {:ok, template} = WebFinger.find_lrdd_template("social.heldscal.la")
+
+ assert template == "https://social.heldscal.la/.well-known/webfinger?resource={uri}"
+ end
+
+ test "it gets the xrd endpoint for hubzilla" do
+ {:ok, template} = WebFinger.find_lrdd_template("macgirvin.com")
+
+ assert template == "https://macgirvin.com/xrd/?uri={uri}"
+ end
end
describe "ensure_keys_present" do