Tests for moderate comments bulk actions added.
svn path=/plone.app.discussion/trunk/; revision=39942
This commit is contained in:
parent
087efab54a
commit
8d866a0ff6
@ -22,7 +22,7 @@ from plone.app.discussion.interfaces import IComment
|
||||
# Bug report: https://bugs.launchpad.net/zope2/+bug/176566
|
||||
#
|
||||
|
||||
def _getContext(self):
|
||||
def _getContext(self): # pragma: no cover
|
||||
self = self.aq_parent
|
||||
while getattr(self, '_is_wrapperish', None):
|
||||
self = self.aq_parent
|
||||
|
@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import unittest
|
||||
|
||||
from DateTime import DateTime
|
||||
@ -8,6 +9,7 @@ from Products.CMFCore.utils import getToolByName
|
||||
from Products.PloneTestCase.ptc import PloneTestCase
|
||||
|
||||
from plone.app.discussion.browser.moderation import View
|
||||
from plone.app.discussion.browser.moderation import BulkActionsView
|
||||
from plone.app.discussion.interfaces import IConversation
|
||||
from plone.app.discussion.tests.layer import DiscussionLayer
|
||||
|
||||
@ -92,5 +94,102 @@ class ModerationViewTest(PloneTestCase):
|
||||
self.view()
|
||||
self.assertEquals(len(self.view.comments), 3)
|
||||
|
||||
|
||||
class ModerationBulkActionsViewTest(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)
|
||||
self.membership_tool = getToolByName(self.folder,
|
||||
'portal_membership')
|
||||
self.memberdata = self.portal.portal_memberdata
|
||||
self.request = self.app.REQUEST
|
||||
self.context = self.portal
|
||||
self.portal.portal_workflow.setChainForPortalTypes(
|
||||
('Discussion Item',), 'comment_review_workflow')
|
||||
self.wf_tool = self.portal.portal_workflow
|
||||
|
||||
# Add a conversation with three comments
|
||||
|
||||
conversation = IConversation(self.portal.doc1)
|
||||
|
||||
comment1 = createObject('plone.Comment')
|
||||
comment1.title = 'Comment 1'
|
||||
comment1.text = 'Comment text'
|
||||
comment1.Creator = 'Jim'
|
||||
new_id_1 = conversation.addComment(comment1)
|
||||
self.comment1 = self.portal.doc1.restrictedTraverse(\
|
||||
'++conversation++default/%s' % new_id_1)
|
||||
|
||||
comment2 = createObject('plone.Comment')
|
||||
comment2.title = 'Comment 2'
|
||||
comment2.text = 'Comment text'
|
||||
comment2.Creator = 'Joe'
|
||||
new_id_2 = conversation.addComment(comment2)
|
||||
self.comment2 = self.portal.doc1.restrictedTraverse(\
|
||||
'++conversation++default/%s' % new_id_2)
|
||||
|
||||
comment3 = createObject('plone.Comment')
|
||||
comment3.title = 'Comment 3'
|
||||
comment3.text = 'Comment text'
|
||||
comment3.Creator = 'Emma'
|
||||
new_id_3 = conversation.addComment(comment3)
|
||||
self.comment3 = self.portal.doc1.restrictedTraverse(\
|
||||
'++conversation++default/%s' % new_id_3)
|
||||
|
||||
self.conversation = conversation
|
||||
|
||||
def test_retract(self):
|
||||
self.request = self.app.REQUEST
|
||||
self.context = self.portal
|
||||
self.request.set('form.select.BulkAction', 'retract')
|
||||
view = BulkActionsView(self.context, self.request)
|
||||
|
||||
self.assertRaises(NotImplementedError,
|
||||
view.retract)
|
||||
|
||||
def test_publish(self):
|
||||
self.request = self.app.REQUEST
|
||||
self.context = self.portal
|
||||
self.request.set('form.select.BulkAction', 'publish')
|
||||
self.request.set('paths', [])
|
||||
view = BulkActionsView(self.context, self.request)
|
||||
|
||||
def test_mark_as_spam(self):
|
||||
self.request = self.app.REQUEST
|
||||
self.context = self.portal
|
||||
self.request.set('form.select.BulkAction', 'mark_as_spam')
|
||||
view = BulkActionsView(self.context, self.request)
|
||||
|
||||
self.assertRaises(NotImplementedError,
|
||||
view.mark_as_spam)
|
||||
|
||||
def test_delete(self):
|
||||
self.request = self.app.REQUEST
|
||||
self.context = self.app
|
||||
|
||||
# Initially we have three comments
|
||||
self.assertEquals(self.conversation.total_comments, 3)
|
||||
|
||||
# Delete two comments with bulk actions
|
||||
self.request.set('form.select.BulkAction', 'delete')
|
||||
self.request.set('paths', ['/'.join(self.comment1.getPhysicalPath()),
|
||||
'/'.join(self.comment3.getPhysicalPath())])
|
||||
view = BulkActionsView(self.context, self.request)
|
||||
view()
|
||||
|
||||
# Make sure that the two comments have been deleted
|
||||
self.assertEquals(self.conversation.total_comments, 1)
|
||||
comment = self.conversation.getComments().next()
|
||||
self.failUnless(comment)
|
||||
self.assertEquals(comment.title, 'Comment 2')
|
||||
|
||||
def test_suite():
|
||||
return unittest.defaultTestLoader.loadTestsFromName(__name__)
|
Loading…
Reference in New Issue
Block a user