1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#
# logged_in.cpy tests
#
import os, sys
if __name__ == '__main__':
execfile(os.path.join(sys.path[0], 'framework.py'))
from Products.CMFPlone.tests import PloneTestCase
from Products.CMFCore.permissions import SetOwnProperties
from DateTime import DateTime
from time import sleep
class TestLogin(PloneTestCase.PloneTestCase):
def afterSetUp(self):
self.membership = self.portal.portal_membership
self.membership.addMember('member', 'secret', ['Member'], [])
self.login('member')
def testLoggedInCreatesMemberArea(self):
self.assertEqual(self.membership.getHomeFolder(), None)
self.portal.logged_in()
self.failIfEqual(self.membership.getHomeFolder(), None)
def testLoggedInSetsLoginTime(self):
now = DateTime()
member = self.membership.getAuthenticatedMember()
self.failUnless(DateTime(member.getProperty('login_time')) < now)
self.portal.logged_in()
member = self.membership.getAuthenticatedMember()
self.failUnless(DateTime(member.getProperty('login_time')) >= now)
def testLoggedInSetsLastLoginTime(self):
now = DateTime()
member = self.membership.getAuthenticatedMember()
self.failUnless(DateTime(member.getProperty('last_login_time')) < now)
self.portal.logged_in()
member = self.membership.getAuthenticatedMember()
self.failUnless(DateTime(member.getProperty('last_login_time')) >= now)
def testLoggedInSetsLastLoginTimeIfMemberLacksSetOwnPropertiesPermission(self):
# If members lack the "Set own properties" permission, they should still
# be able to log in, and their login times should be set.
now = DateTime()
self.portal.manage_permission(SetOwnProperties, ['Manager'], acquire=0)
self.portal.logged_in()
member = self.membership.getAuthenticatedMember()
self.failUnless(DateTime(member.getProperty('last_login_time')) >= now)
def testInitialLoginTimeDoesChange(self):
member = self.membership.getAuthenticatedMember()
self.portal.logged_in()
member = self.membership.getAuthenticatedMember()
login_time = DateTime(member.getProperty('login_time'))
# Log in again later
sleep(0.2)
self.portal.logged_in()
# login_time did change
member = self.membership.getAuthenticatedMember()
self.failUnless(DateTime(member.getProperty('login_time')) > login_time)
def test_suite():
from unittest import TestSuite, makeSuite
suite = TestSuite()
suite.addTest(makeSuite(TestLogin))
return suite
if __name__ == '__main__':
framework()
|