Functional tests for home and post page

closes #1373

- Note that the tests fail if you run them pre #1363, thus future proofing us from this happening again.
- Added submodule handling to travis
- Added a new test for each of the home and post pages
This commit is contained in:
Hannah Wolfe 2013-11-01 11:13:43 +00:00
parent 422403c40b
commit cfe272e175
4 changed files with 49 additions and 5 deletions

View File

@ -4,9 +4,8 @@ node_js:
env: env:
- DB=sqlite3 - DB=sqlite3
- DB=mysql - DB=mysql
git:
submodules: false
before_install: before_install:
- git submodule update --init
- gem update --system - gem update --system
- gem install sass bourbon - gem install sass bourbon
- npm install -g grunt-cli - npm install -g grunt-cli

View File

@ -0,0 +1,22 @@
/**
* Tests the homepage
*/
/*globals CasperTest, casper, __utils__, url, testPost, falseUser, email */
CasperTest.begin('Home page loads', 3, function suite(test) {
casper.start(url, function then(response) {
test.assertTitle('Ghost', 'The homepage should have a title and it should be Ghost');
test.assertExists('.content .post', 'There is at least one post on this page');
test.assertSelectorHasText('.poweredby', 'Proudly published with Ghost');
});
}, true);
CasperTest.begin('Test helpers on homepage', 3, function suite(test) {
casper.start(url, function then(response) {
// body class
test.assertExists('body.home-template', 'body_class outputs correct home-template class');
// post class
test.assertExists('article.post', 'post_class outputs correct post class');
test.assertExists('article.tag-getting-started', 'post_class outputs correct tag class');
});
});

View File

@ -0,0 +1,23 @@
/**
* Tests the default post page
*/
/*globals CasperTest, casper, __utils__, url, testPost, falseUser, email */
CasperTest.begin('Post page loads', 3, function suite(test) {
casper.start(url + 'welcome-to-ghost', function then(response) {
test.assertTitle('Welcome to Ghost', 'The post should have a title and it should be "Welcome to Ghost"');
test.assertElementCount('.content .post', 1, 'There is exactly one post on this page');
test.assertSelectorHasText('.poweredby', 'Proudly published with Ghost');
});
}, true);
CasperTest.begin('Test helpers on homepage', 4, function suite(test) {
casper.start(url + 'welcome-to-ghost', function then(response) {
// body class
test.assertExists('body.post-template', 'body_class outputs correct post-template class');
test.assertExists('body.tag-getting-started', 'body_class outputs correct tag class');
// post class
test.assertExists('article.post', 'post_class outputs correct post class');
test.assertExists('article.tag-getting-started', 'post_class outputs correct tag class');
});
});

View File

@ -1,10 +1,10 @@
/** /**
* Tests logging out and attempting to sign up * Tests archive page routing
*/ */
/*globals casper, __utils__, url, testPost, falseUser, email */ /*globals CasperTest, casper, __utils__, url, testPost, falseUser, email */
CasperTest.begin('Redirects page 1 request', 1, function suite(test) { CasperTest.begin('Redirects page 1 request', 1, function suite(test) {
casper.thenOpen(url + 'page/1/', function then(response) { casper.thenOpen(url + 'page/1/', function then(response) {
test.assertEqual(casper.getCurrentUrl().indexOf('page/'), -1, 'Should be redirected to "/".'); test.assertEqual(casper.getCurrentUrl().indexOf('page/'), -1, 'Should be redirected to "/".');
}); });
}, true); }, true);