2009-06-06 10:23:33 +02:00
|
|
|
import unittest
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
|
|
from plone.registry import Registry
|
|
|
|
|
|
|
|
from zope.component import createObject
|
|
|
|
|
|
|
|
from Acquisition import aq_base, aq_parent, aq_inner
|
|
|
|
|
2009-06-07 22:58:41 +02:00
|
|
|
from OFS.Image import Image
|
|
|
|
|
2009-06-06 10:23:33 +02:00
|
|
|
from plone.app.vocabularies.types import BAD_TYPES
|
|
|
|
|
2009-06-07 22:58:41 +02:00
|
|
|
from Products.CMFCore.FSImage import FSImage
|
2009-06-06 10:23:33 +02:00
|
|
|
from Products.CMFCore.utils import getToolByName
|
2009-06-07 22:58:41 +02:00
|
|
|
from Products.CMFPlone.tests import dummy
|
2009-06-06 10:23:33 +02:00
|
|
|
from Products.PloneTestCase.ptc import PloneTestCase
|
|
|
|
|
|
|
|
from plone.app.discussion.browser.comments import CommentsViewlet
|
|
|
|
from plone.app.discussion.interfaces import IConversation, IComment, IReplies, IDiscussionSettings
|
|
|
|
from plone.app.discussion.tests.layer import DiscussionLayer
|
|
|
|
|
|
|
|
|
|
|
|
class CommentsViewletTest(PloneTestCase):
|
|
|
|
|
|
|
|
layer = DiscussionLayer
|
|
|
|
|
|
|
|
def afterSetUp(self):
|
|
|
|
self.loginAsPortalOwner()
|
|
|
|
typetool = self.portal.portal_types
|
|
|
|
typetool.constructContent('Document', self.portal, 'doc1')
|
|
|
|
self.portal_discussion = getToolByName(self.portal, 'portal_discussion', None)
|
2009-06-07 22:58:41 +02:00
|
|
|
self.membership_tool = getToolByName(self.folder, 'portal_membership')
|
|
|
|
self.memberdata = self.portal.portal_memberdata
|
2009-06-06 10:23:33 +02:00
|
|
|
request = self.app.REQUEST
|
|
|
|
context = getattr(self.portal, 'doc1')
|
|
|
|
self.viewlet = CommentsViewlet(context, request, None, None)
|
|
|
|
|
|
|
|
def test_format_time(self):
|
2009-06-16 22:53:45 +02:00
|
|
|
python_time = datetime(2009, 02, 01, 23, 32, 03, 57)
|
|
|
|
localized_time = self.viewlet.format_time(python_time)
|
|
|
|
self.assertEquals(localized_time, "Feb 01, 2009 11:32 PM")
|
2009-06-06 10:23:33 +02:00
|
|
|
|
|
|
|
def test_get_commenter_portrait(self):
|
2009-06-07 22:58:41 +02:00
|
|
|
|
|
|
|
# Add a user with a member image
|
|
|
|
self.membership_tool.addMember('jim', 'Jim', ['Member'], [])
|
|
|
|
self.memberdata._setPortrait(Image(id='jim', file=dummy.File(), title=''), 'jim')
|
|
|
|
self.assertEqual(self.memberdata._getPortrait('jim').getId(), 'jim')
|
|
|
|
self.assertEqual(self.memberdata._getPortrait('jim').meta_type, 'Image')
|
|
|
|
|
|
|
|
# Add a conversation with a comment
|
|
|
|
conversation = IConversation(self.portal.doc1)
|
|
|
|
conversation = conversation.__of__(self.portal.doc1)
|
|
|
|
comment = createObject('plone.Comment')
|
|
|
|
comment.title = 'Comment 1'
|
|
|
|
comment.text = 'Comment text'
|
|
|
|
comment.Creator = 'Jim'
|
|
|
|
comment.author_username = 'jim'
|
|
|
|
new_id = conversation.addComment(comment)
|
|
|
|
|
|
|
|
# Call get_commenter_portrait method of the viewlet
|
2009-06-06 10:23:33 +02:00
|
|
|
self.viewlet.update()
|
2009-06-15 10:54:35 +02:00
|
|
|
portrait_url = self.viewlet.get_commenter_portrait('jim')
|
2009-06-07 22:58:41 +02:00
|
|
|
|
2009-06-15 10:54:35 +02:00
|
|
|
# Check if the correct member image URL is returned
|
|
|
|
self.assertEquals(portrait_url, 'http://nohost/plone/portal_memberdata/portraits/jim')
|
2009-06-06 10:23:33 +02:00
|
|
|
|
|
|
|
def test_get_commenter_portrait_without_userimage(self):
|
2009-06-07 22:58:41 +02:00
|
|
|
|
2009-06-06 10:23:33 +02:00
|
|
|
# Create a user without a user image
|
2009-06-07 22:58:41 +02:00
|
|
|
self.membership_tool.addMember('jim', 'Jim', ['Member'], [])
|
|
|
|
|
|
|
|
# Add a conversation with a comment
|
|
|
|
conversation = IConversation(self.portal.doc1)
|
|
|
|
conversation = conversation.__of__(self.portal.doc1)
|
|
|
|
comment = createObject('plone.Comment')
|
|
|
|
comment.title = 'Comment 1'
|
|
|
|
comment.text = 'Comment text'
|
|
|
|
comment.Creator = 'Jim'
|
|
|
|
comment.author_username = 'jim'
|
|
|
|
new_id = conversation.addComment(comment)
|
|
|
|
|
|
|
|
# Call get_commenter_portrait method of the viewlet
|
|
|
|
self.viewlet.update()
|
2009-06-15 10:54:35 +02:00
|
|
|
portrait_url = self.viewlet.get_commenter_portrait('jim')
|
2009-06-07 22:58:41 +02:00
|
|
|
|
2009-06-15 10:54:35 +02:00
|
|
|
# Check if the correct default member image URL is returned
|
|
|
|
self.assertEquals(portrait_url, 'http://nohost/plone/defaultUser.gif')
|
2009-06-06 10:23:33 +02:00
|
|
|
|
|
|
|
def test_get_commenter_home(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def test_get_commenter_home_without_username(self):
|
|
|
|
# Create a user without setting a username
|
|
|
|
pass
|
|
|
|
|
|
|
|
def test_suite():
|
|
|
|
return unittest.defaultTestLoader.loadTestsFromName(__name__)
|