Handle finding webmention targets better

If a site does not support webmentions, my code should not error
This commit is contained in:
Jonny Barnes 2022-11-09 19:32:22 +00:00
parent 8ad225c8f6
commit 9fcd16ec16
Signed by: jonny
SSH key fingerprint: SHA256:CTuSlns5U7qlD9jqHvtnVmfYV3Zwl2Z7WnJ4/dqOaL8
2 changed files with 19 additions and 2 deletions

View file

@ -100,9 +100,12 @@ class SendWebMentions implements ShouldQueue
} elseif (array_key_exists('http://webmention.org/', $rels[0])) {
$endpoint = $rels[0]['http://webmention.org/'][0];
}
if ($endpoint) {
return $this->resolveUri($endpoint, $url);
if ($endpoint === null) {
return null;
}
return $this->resolveUri($endpoint, $url);
}
/**

View file

@ -109,4 +109,18 @@ class SendWebMentionJobTest extends TestCase
$job->handle();
$this->assertTrue(true);
}
/** @test */
public function linksInNotesCanNotSupportWebmentions(): void
{
$mock = new MockHandler([
new Response(200),
]);
$handler = HandlerStack::create($mock);
$client = new Client(['handler' => $handler]);
$this->app->instance(Client::class, $client);
$job = new SendWebMentions(new Note());
$this->assertNull($job->discoverWebmentionEndpoint('https://example.org'));
}
}