jonnybarnes.uk/tests/Feature/FeedsTest.php
Jonny Barnes 3d1ae20afb Squashed commit of the following:
commit a01812b0d709e556af060a393168acc471aca774
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Thu Apr 12 18:15:25 2018 +0100

    Improve JSON feed generation to better match the spec

commit 72ad2c629738ef73ccaf984ed3ad9b726956dd71
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Sun Apr 8 13:07:48 2018 +0100

    Add a test for null title entries
2018-04-12 18:15:42 +01:00

98 lines
2.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Tests\Feature;
use Tests\TestCase;
class FeedsTest extends TestCase
{
/**
* Test the blog RSS feed.
*
* @return void
*/
public function test_blog_rss_feed()
{
$response = $this->get('/blog/feed.rss');
$response->assertHeader('Content-Type', 'application/rss+xml; charset=utf-8');
}
/**
* Test the notes RSS feed.
*
* @return void
*/
public function test_notes_rss_feed()
{
$response = $this->get('/notes/feed.rss');
$response->assertHeader('Content-Type', 'application/rss+xml; charset=utf-8');
}
/**
* Test the blog RSS feed.
*
* @return void
*/
public function test_blog_atom_feed()
{
$response = $this->get('/blog/feed.atom');
$response->assertHeader('Content-Type', 'application/atom+xml; charset=utf-8');
}
/**
* Test the notes RSS feed.
*
* @return void
*/
public function test_notes_atom_feed()
{
$response = $this->get('/notes/feed.atom');
$response->assertHeader('Content-Type', 'application/atom+xml; charset=utf-8');
}
/**
* Test the blog JSON feed.
*
* @return void
*/
public function test_blog_json_feed()
{
$response = $this->get('/blog/feed.json');
$response->assertHeader('Content-Type', 'application/json');
}
/**
* Test the notes JSON feed.
*
* @return void
*/
public function test_notes_json_feed()
{
$response = $this->get('/notes/feed.json');
$response->assertHeader('Content-Type', 'application/json');
}
/**
* Each JSON feed item must have one of `content_text` or `content_html`,
* and whichever one they have cant be `null`.
*
* @return void
*/
public function test_json_feed_has_one_content_attribute_and_it_isnt_null()
{
$response = $this->get('/notes/feed.json');
$data = json_decode($response->content());
foreach ($data->items as $item) {
$this->assertTrue(
property_exists($item, 'content_text') ||
property_exists($item, 'content_html')
);
if (property_exists($item, 'content_text')) {
$this->assertNotNull($item->content_text);
}
if (property_exists($item, 'content_html')) {
$this->assertNotNull($item->content_html);
}
}
}
}