mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-13 22:41:32 -05:00
eadbf7dffb
closes #2114 - instead of putting author in feedOptions of node-rss, it was moved to itemOptions - supplying author: user ? user.name : null in itemOptions will still result to creating a dc:creator tag inside item tags so the info needed to have the author is still there like before - node-rss should however still fix this quirk to not have that nasty author tag in channel tag when you supply author in feedOptions
59 lines
3.3 KiB
JavaScript
59 lines
3.3 KiB
JavaScript
/**
|
|
* Tests if RSS exists and is working
|
|
*/
|
|
/*globals url, CasperTest, casper */
|
|
CasperTest.begin('Ensure that RSS is available', 11, function suite(test) {
|
|
CasperTest.Routines.togglePermalinks.run('off');
|
|
casper.thenOpen(url + 'rss/', function (response) {
|
|
var content = this.getPageContent(),
|
|
siteTitle = '<title><![CDATA[Ghost]]></title>',
|
|
siteDescription = '<description><![CDATA[Just a blogging platform.]]></description>',
|
|
siteUrl = '<link>http://127.0.0.1:2369/</link>',
|
|
postTitle = '<![CDATA[Welcome to Ghost]]>',
|
|
postStart = '<description><![CDATA[<p>You\'re live!',
|
|
postEnd = 'you think :)</p>]]></description>',
|
|
postLink = '<link>http://127.0.0.1:2369/welcome-to-ghost/</link>',
|
|
postCreator = '<dc:creator><![CDATA[Test User]]>';
|
|
|
|
test.assertEqual(response.status, 200, 'Response status should be 200.');
|
|
test.assert(content.indexOf('<rss') >= 0, 'Feed should contain <rss');
|
|
test.assert(content.indexOf(siteTitle) >= 0, 'Feed should contain blog title.');
|
|
test.assert(content.indexOf(siteDescription) >= 0, 'Feed should contain blog description.');
|
|
test.assert(content.indexOf(siteUrl) >= 0, 'Feed should contain link to blog.');
|
|
test.assert(content.indexOf(postTitle) >= 0, 'Feed should contain welcome post title.');
|
|
test.assert(content.indexOf(postStart) >= 0, 'Feed should contain start of welcome post content.');
|
|
test.assert(content.indexOf(postEnd) >= 0, 'Feed should contain end of welcome post content.');
|
|
test.assert(content.indexOf(postLink) >= 0, 'Feed should have link to the welcome post.');
|
|
test.assert(content.indexOf(postCreator) >= 0, 'Welcome post should have Test User as the creator.');
|
|
test.assert(content.indexOf('</rss>') >= 0, 'Feed should contain </rss>');
|
|
});
|
|
}, false);
|
|
|
|
CasperTest.begin('Ensure that author element is not included. Only dc:creator', 3, function suite(test) {
|
|
CasperTest.Routines.togglePermalinks.run('off');
|
|
casper.thenOpen(url + 'rss/', function (response) {
|
|
var content = this.getPageContent(),
|
|
author = '<author>',
|
|
postCreator = '<dc:creator><![CDATA[Test User]]>';
|
|
|
|
test.assertEqual(response.status, 200, 'Response status should be 200.');
|
|
test.assert(content.indexOf(author) < 0, 'Author element should not be included');
|
|
test.assert(content.indexOf(postCreator) >= 0, 'Welcome post should have Test User as the creator.');
|
|
});
|
|
}, false);
|
|
|
|
CasperTest.begin('Ensures dated permalinks works with RSS', 2, function suite(test) {
|
|
CasperTest.Routines.togglePermalinks.run('on');
|
|
casper.thenOpen(url + 'rss/', function (response) {
|
|
var content = this.getPageContent(),
|
|
today = new Date(),
|
|
dd = ("0" + today.getDate()).slice(-2),
|
|
mm = ("0" + (today.getMonth() + 1)).slice(-2),
|
|
yyyy = today.getFullYear(),
|
|
postLink = '/' + yyyy + '/' + mm + '/' + dd + '/welcome-to-ghost/';
|
|
|
|
test.assertEqual(response.status, 200, 'Response status should be 200.');
|
|
test.assert(content.indexOf(postLink) >= 0, 'Feed should have dated permalink.');
|
|
});
|
|
CasperTest.Routines.togglePermalinks.run('off');
|
|
}, false);
|