Browse Source

include featured image for h-entry

closes #51
pull/60/head
Aaron Parecki 7 years ago
parent
commit
2515f618c7
No known key found for this signature in database GPG Key ID: 276C2817346D6056
3 changed files with 41 additions and 1 deletions
  1. +1
    -1
      lib/XRay/Formats/Mf2.php
  2. +23
    -0
      tests/ParseTest.php
  3. +17
    -0
      tests/data/source.example.com/article-with-featured-image

+ 1
- 1
lib/XRay/Formats/Mf2.php View File

@ -360,7 +360,7 @@ class Mf2 extends Format {
$refs = [];
// Single plaintext and URL values
self::collectSingleValues(['published','summary','rsvp','swarm-coins'], ['url'], $item, $url, $data);
self::collectSingleValues(['published','summary','rsvp','swarm-coins'], ['url','featured'], $item, $url, $data);
if(isset($data['rsvp']))
$data['rsvp'] = strtolower($data['rsvp']);

+ 23
- 0
tests/ParseTest.php View File

@ -118,6 +118,18 @@ class ParseTest extends PHPUnit_Framework_TestCase {
$this->assertEquals('This page has a link to target.example.com and some formatted text but is in a p-content element so is plaintext.', $data->data->content->text);
}
public function testArticleWithFeaturedImage() {
$url = 'http://source.example.com/article-with-featured-image';
$response = $this->parse(['url' => $url]);
$body = $response->getContent();
$this->assertEquals(200, $response->getStatusCode());
$data = json_decode($body);
$this->assertEquals('Post Title', $data->data->name);
$this->assertEquals('This is a blog post.', $data->data->content->text);
$this->assertEquals('http://source.example.com/featured.jpg', $data->data->featured);
}
public function testContentWithPrefixedName() {
$url = 'http://source.example.com/content-with-prefixed-name';
$response = $this->parse(['url' => $url]);
@ -247,6 +259,17 @@ class ParseTest extends PHPUnit_Framework_TestCase {
$this->assertEquals('http://syndicated.example/', $data['data']['syndication'][0]);
}
public function testHEntryNoContent() {
$url = 'http://source.example.com/h-entry-no-content';
$response = $this->parse(['url' => $url]);
$body = $response->getContent();
$this->assertEquals(200, $response->getStatusCode());
$data = json_decode($body);
$this->assertObjectNotHasAttribute('content', $data->data);
$this->assertEquals('This is a Post', $data->data->name);
}
public function testHEntryIsNotFirstObject() {
$url = 'http://source.example.com/h-entry-is-not-first';
$response = $this->parse(['url' => $url]);

+ 17
- 0
tests/data/source.example.com/article-with-featured-image View File

@ -0,0 +1,17 @@
HTTP/1.1 200 OK
Server: Apache
Date: Wed, 09 Dec 2015 03:29:14 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
<html>
<head>
<title>Test</title>
</head>
<body class="h-entry">
<img src="/featured.jpg" class="u-featured" width="100%">
<img src="/featured2.jpg" class="u-featured" width="100%">
<h2 class="p-name">Post Title</h2>
<p class="e-content">This is a blog post.</p>
</body>
</html>

Loading…
Cancel
Save