Skip to content

Commit

Permalink
Functional tests for home and post page
Browse files Browse the repository at this point in the history
closes TryGhost#1373

- Note that the tests fail if you run them pre TryGhost#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
  • Loading branch information
ErisDS committed Nov 1, 2013
1 parent 422403c commit cfe272e
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 5 deletions.
3 changes: 1 addition & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ node_js:
env:
- DB=sqlite3
- DB=mysql
git:
submodules: false
before_install:
- git submodule update --init
- gem update --system
- gem install sass bourbon
- npm install -g grunt-cli
Expand Down
22 changes: 22 additions & 0 deletions core/test/functional/frontend/home_test.js
Original file line number Diff line number Diff line change
@@ -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');
});
});
23 changes: 23 additions & 0 deletions core/test/functional/frontend/post_test.js
Original file line number Diff line number Diff line change
@@ -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');
});
});
6 changes: 3 additions & 3 deletions core/test/functional/frontend/route_test.js
Original file line number Diff line number Diff line change
@@ -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) {
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 "/".');
});
}, true);

0 comments on commit cfe272e

Please sign in to comment.