Skip to content

Commit

Permalink
fixes #4
Browse files Browse the repository at this point in the history
  • Loading branch information
NinoSkopac committed May 4, 2018
1 parent f08adf9 commit 649d4fb
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 3 deletions.
7 changes: 6 additions & 1 deletion src/Item.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,17 @@ class Item implements ItemInterface
* @var null|string
*/
private $guid;
/**
* @var bool|string
*/
private $link;

private static $template;

public function __construct(
string $title, string $fileUrl, string $duration,
string $description, int $publishDate, int $fileSizeBytes,
string $mime, ?string $guid = null
string $mime, ?string $guid = null, ?string $link = null
) {
$this->title = $this->escape($title);
$this->fileUrl = $fileUrl;
Expand All @@ -63,6 +67,7 @@ public function __construct(
$this->fileSizeBytes = $fileSizeBytes;
$this->mime = $mime;
$this->guid = $guid ?: $this->fileUrl;
$this->link = $link ?: $this->fileUrl;

if (empty(self::$template)) // avoid disk IO for every item instance
self::$template = file_get_contents(__DIR__ . '/templates/item.xml');
Expand Down
1 change: 1 addition & 0 deletions src/templates/item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@

<enclosure url="{{fileUrl}}" length="{{fileSizeBytes}}" type="{{mime}}" />
<guid>{{guid}}</guid>
<link>{{link}}</link>
</item>
12 changes: 10 additions & 2 deletions tests/ItemTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ class ItemTest extends TestCase
private const Filesize = 828387;
private const Mime = 'audio/mpeg';

public static function getItem(?string $guid = null): Item {
public static function getItem(?string $guid = null, ?string $link = null): Item {
return new Item(
self::Title, self::File_Url, self::Duration,
self::Description, self::Date, self::Filesize,
self::Mime, $guid
self::Mime, $guid, $link
);
}

Expand All @@ -44,4 +44,12 @@ public function testCustomGuid(): void {

$this->assertEquals($expected, $actual);
}

public function testCustomLink(): void {
$item = static::getItem(null, 'https://mysite.com/podcast/episodes/123');
$expected = file_get_contents(__DIR__ . '/fixtures/item-custom-link.xml');
$actual = $item->getXml();

$this->assertEquals($expected, $actual);
}
}
2 changes: 2 additions & 0 deletions tests/fixtures/feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@

<enclosure url="https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3" length="828387" type="audio/mpeg" />
<guid>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</guid>
<link>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</link>
</item>
<item>
<title>Trump Says Disclosure of Mueller Questions in Russia Probe Is ‘Disgraceful’</title>
Expand All @@ -49,6 +50,7 @@

<enclosure url="https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3" length="828387" type="audio/mpeg" />
<guid>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</guid>
<link>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</link>
</item>

</channel>
Expand Down
1 change: 1 addition & 0 deletions tests/fixtures/item-custom-guid.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@

<enclosure url="https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3" length="828387" type="audio/mpeg" />
<guid>foobar</guid>
<link>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</link>
</item>
14 changes: 14 additions & 0 deletions tests/fixtures/item-custom-link.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<item>
<title>Trump Says Disclosure of Mueller Questions in Russia Probe Is ‘Disgraceful’</title>
<link>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</link>

<duration>2:18</duration>
<itunes:duration>2:18</itunes:duration>

<description>WASHINGTON — President Trump on Tuesday said it was “disgraceful” that questions the special counsel would like to ask him were publicly disclosed, and he incorrectly noted that there were no questions about collusion. The president also said collusion was a “phony” crime.</description>
<pubDate>Tue, 01 May 2018 12:30:08 +0000</pubDate>

<enclosure url="https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3" length="828387" type="audio/mpeg" />
<guid>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</guid>
<link>https://mysite.com/podcast/episodes/123</link>
</item>
1 change: 1 addition & 0 deletions tests/fixtures/item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@

<enclosure url="https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3" length="828387" type="audio/mpeg" />
<guid>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</guid>
<link>https://s3.read2me.online/audio/www-nytimes-com-2018-05-01-us-politics-trump-mueller-russia-questions-html-7e9601.mp3</link>
</item>

0 comments on commit 649d4fb

Please sign in to comment.