user portal membership tool for is_anonyous method; tests for comments viewlet added.

svn path=/plone.app.discussion/trunk/; revision=33216
This commit is contained in:
Timo Stollenwerk 2010-01-18 11:04:08 +00:00
parent 77eaee146e
commit ca0aecd170
2 changed files with 52 additions and 14 deletions

View File

@ -321,7 +321,7 @@ class CommentsViewlet(ViewletBase, layout.FormWrapper):
return settings.show_commenter_image return settings.show_commenter_image
def is_anonymous(self): def is_anonymous(self):
return self.portal_state.anonymous() return self.portal_membership.isAnonymousUser()
def login_action(self): def login_action(self):
return '%s/login_form?came_from=%s' % (self.navigation_root_url, url_quote(self.request.get('URL', '')),) return '%s/login_form?came_from=%s' % (self.navigation_root_url, url_quote(self.request.get('URL', '')),)

View File

@ -39,26 +39,56 @@ class TestCommentsViewlet(PloneTestCase):
self.viewlet = CommentsViewlet(context, request, None, None) self.viewlet = CommentsViewlet(context, request, None, None)
def test_can_reply(self): def test_can_reply(self):
# Portal owner can reply
self.failUnless(self.viewlet.can_reply()) self.failUnless(self.viewlet.can_reply())
self.logout()
# Anonymous users can not reply
self.failIf(self.viewlet.can_reply())
def test_can_manage(self): def test_can_manage(self):
# Portal owner has manage rights
self.failUnless(self.viewlet.can_manage()) self.failUnless(self.viewlet.can_manage())
self.logout()
# Anonymous has no manage rights
self.failIf(self.viewlet.can_manage())
def test_is_discussion_allowed(self): def test_is_discussion_allowed(self):
#self.failUnless(self.viewlet.is_discussion_allowed()) # By default, discussion is disabled
pass self.failIf(self.viewlet.is_discussion_allowed())
# Enable discussion
portal_discussion = getToolByName(self.portal, 'portal_discussion')
portal_discussion.overrideDiscussionFor(self.portal.doc1, True)
# Test if discussion has been enabled
self.failUnless(self.viewlet.is_discussion_allowed())
def test_has_replies(self, workflow_actions=False): def test_has_replies(self, workflow_actions=False):
#self.failUnless(self.viewlet.has_replies()) self.failIf(self.viewlet.has_replies())
pass comment = createObject('plone.Comment')
comment.title = 'Comment 1'
comment.text = 'Comment text'
conversation = IConversation(self.portal.doc1)
conversation.addComment(comment)
self.failUnless(self.viewlet.has_replies())
def test_get_replies(self, workflow_actions=False): def test_get_replies(self, workflow_actions=False):
#self.failUnless(self.viewlet.get_replies()) self.failIf(self.viewlet.get_replies())
pass comment = createObject('plone.Comment')
comment.title = 'Comment 1'
comment.text = 'Comment text'
conversation = IConversation(self.portal.doc1)
conversation.addComment(comment)
conversation.addComment(comment)
self.assertEquals(sum(1 for w in self.viewlet.get_replies()), 2)
def test_get_commenter_home_url(self): def test_get_commenter_home_url(self):
#self.failUnless(self.viewlet.get_commenter_home_url()) comment = createObject('plone.Comment')
pass comment.title = 'Comment 1'
comment.text = 'Comment text'
conversation = IConversation(self.portal.doc1)
portal_membership = getToolByName(self.portal, 'portal_membership')
m = portal_membership.getAuthenticatedMember()
self.assertEquals(self.viewlet.get_commenter_home_url(m.getUserName()),
'http://nohost/plone/author/portal_owner')
def test_get_commenter_portrait(self): def test_get_commenter_portrait(self):
@ -117,12 +147,20 @@ class TestCommentsViewlet(PloneTestCase):
def test_show_commenter_image(self): def test_show_commenter_image(self):
self.failUnless(self.viewlet.show_commenter_image()) self.failUnless(self.viewlet.show_commenter_image())
registry = queryUtility(IRegistry)
settings = registry.forInterface(IDiscussionSettings)
registry['plone.app.discussion.interfaces.IDiscussionSettings.show_commenter_image'] = False
self.failIf(self.viewlet.show_commenter_image())
def test_is_anonymous(self): def test_is_anonymous(self):
pass self.failIf(self.viewlet.is_anonymous())
self.logout()
self.failUnless(self.viewlet.is_anonymous())
def test_login_action(self): def test_login_action(self):
pass self.viewlet.update()
self.assertEquals(self.viewlet.login_action(),
'http://nohost/plone/login_form?came_from=http%3A//nohost')
def test_format_time(self): def test_format_time(self):
python_time = datetime(2009, 02, 01, 23, 32, 03, 57) python_time = datetime(2009, 02, 01, 23, 32, 03, 57)