diff --git a/test/casper/helpers.coffee b/test/casper/helpers.coffee index 3bfdd216e5..438d3832a5 100644 --- a/test/casper/helpers.coffee +++ b/test/casper/helpers.coffee @@ -1,39 +1,56 @@ +utils = require('utils') + module.exports = -> - url: 'http://localhost:3000/?play=1' + random = Math.random().toString(36).substring(7) - casper: require("casper").create + casper = require("casper").create clientScripts: 'test/includes/lodash.min.js' - utils: require('utils') + { + casper: casper - getUser: -> casper.evaluate -> window.DERBY.app.model.get('_user') + url: 'http://localhost:3000' - addTasks: -> - ['habit', 'daily', 'todo', 'reward'].forEach (type) -> - # Add 15 of each task type - num = 0 - casper.repeat 15, -> - casper.fill "form#new-#{type}", {'new-task': "#{type}-#{num}"} # why can't I use true here? - casper.click "form#new-#{type} input[type=submit]" + utils: utils - reset: -> casper.evaluate -> window.DERBY.app.reset() + getUser: -> + casper.evaluate -> window.DERBY.app.model.get('_user') - userBeforeAfter: (callback) -> - user = {} - user.before = getUser() - callback() - user.after = getUser() - user + addTasks: -> + ['habit', 'daily', 'todo', 'reward'].forEach (type) -> + # Add 15 of each task type + num = 0 + casper.repeat 15, -> + casper.fill "form#new-#{type}", {'new-task': "#{type}-#{num}"} # why can't I use true here? + casper.click "form#new-#{type} input[type=submit]" - runCron: -> - casper.evaluate -> window.DERBY.model.set('_user.lastCron', new Date('01/10/2013')) - casper.reload() + reset: -> + casper.evaluate -> window.DERBY.app.reset() - register: -> - casper.fill 'form#derby-auth-register', - username: 'lefnire' - email: 'x@x.com' - 'email-confirmation': 'x@x.com' - password: 'habitrpg123' - , true + userBeforeAfter: (callback) -> + user = {} + user.before = getUser() + callback() + user.after = getUser() + user + + runCron: -> + casper.evaluate -> window.DERBY.model.set('_user.lastCron', new Date('01/25/2013')) + casper.reload() + + register: -> + casper.fill 'form#derby-auth-register', + username: random + email: random + '@gmail.com' + 'email-confirmation': random + '@gmail.com' + password: random + , true + + login: -> + casper.fill 'form#derby-auth-login', + username: random + password: random + , true + + } diff --git a/test/casper/registration.casper.coffee b/test/casper/registration.casper.coffee index 85e2d1f5b6..005c04245f 100644 --- a/test/casper/registration.casper.coffee +++ b/test/casper/registration.casper.coffee @@ -1,23 +1,35 @@ -helpers = require('./helpers') -casper = helpers.casper -utils = helpers.utils -url = helpers.url +helper = new require('./test/casper/helpers')() +casper = helper.casper +utils = helper.utils +url = helper.url + +casper.start url + '/?play=1' # ---------- Register ------------ user = undefined +casper.then -> helper.register() +casper.then -> user = helper.getUser() +casper.then -> casper.reload() casper.then -> - helpers.register() -casper.then -> user = helpers.getUser() -casper.then -> reload() -casper.then -> - nowUser = getUser() + nowUser = helper.getUser() casper.then -> casper.test.assertEqual user.id, nowUser.id, 'user registered and maintained session' +# ---------- Log Out ------------ +casper.thenOpen helper.url + '/logout' +casper.thenOpen helper.url + '/?play=1' +casper.then -> + nowUser = helper.getUser() + casper.then -> + casper.test.assertNotEquals user.id, nowUser.id, 'user logged out' + # ---------- Login ------------ -#TODO logout -#TODO login -#TODO make sure same id +casper.then -> helper.login() +casper.then -> utils.dump casper.debugHTML '#derby-auth-login' +casper.then -> + nowUser = helper.getUser() + casper.then -> + casper.test.assertEqual user.id, nowUser.id, 'user logged in' # ---------- Run ------------ casper.run ->