/** * Pass webmentions to the component objects * * @param string $source The source URL * @param string $target The target URL (i.e., the page on this site that was pinged) * @param string $source_content The source page's HTML * @param array $source_mf2 Parsed Microformats 2 content from $source * @return bool */ function addWebmentions($source, $target, $source_content, $source_mf2) { if ($object = $this->getObject()) { return $object->addWebmentions($source, $target, $source_content, $source_mf2); } return parent::addWebmentions($source, $target, $source_content, $source_mf2); }
/** * When we get a webmention where the source is a feed, make * sure we handle it gracefully. */ function testAddWebmentions_RemoteFeed() { $entity = new Entity(); $entity->setOwner($this->user()); $entity->title = "This post will be the webmention target"; $entity->publish(); $this->toDelete[] = $entity; $target = $entity->getURL(); $source = 'http://example.com/'; $sourceContent = <<<EOD <!DOCTYPE html> <html> <body> <div class="h-entry"> <a class="p-author h-card" href="https://example.com/">Jane Example</a> <span class="p-name e-content">This is just nonsense</span> <a class="u-url" href="http://example.com/2015/this-is-just-nonsense">permalink</a> </div> <div class="h-entry"> <a class="u-in-reply-to" href="{$target}">in reply to</a> <a class="p-author h-card" href="https://example.com/">Jane Example</a> <span class="p-name e-content">This is a reply</span> <a class="u-url" href="http://example.com/2015/this-is-a-reply">permalink</a> </div> <div class="h-entry"> <a class="p-author h-card" href="https://example.com/">Jane Example</a> <span class="p-name e-content">This is probably really serious</span> <a class="u-url" href="http://example.com/2015/this-is-probably-really-serious">permalink</a> </div> </body> </html> EOD; $sourceResp = ['response' => 200, 'content' => $sourceContent]; $sourceMf2 = (new \Mf2\Parser($sourceContent, $source))->parse(); $entity->addWebmentions($source, $target, $sourceResp, $sourceMf2); $this->assertEmpty($entity->getAllAnnotations()); }