source: products/quintagroup.plonecomments/trunk/quintagroup/plonecomments/tests/testQPloneCommentsReportAbuse.py @ 1222

Last change on this file since 1222 was 1201, checked in by liebster, 15 years ago

Added "report abuse" feature contributed by jcbrand.

File size: 2.5 KB
Line 
1from base import getToolByName, TestCase
2from config import *
3
4from testQPloneCommentsCommenting import TestCommBase
5from zExceptions import Unauthorized
6
7USERS = {# Common Members
8         'admin':{'passw': 'secret_admin', 'roles': ['Manager']},
9         'owner':{'passw': 'secret_owner', 'roles': ['Owner']},
10         'member':{'passw': 'secret_member', 'roles': ['Member']},
11         'reviewer':{'passw': 'secret_reviewer', 'roles': ['Reviewer']},
12         # Members for discussion manager group
13         'dm_admin':{'passw': 'secret_dm_admin', 'roles': ['Manager']},
14         'dm_owner':{'passw': 'secret_dm_owner', 'roles': ['Owner']},
15         'dm_member':{'passw': 'secret_dm_member', 'roles': ['Member']},
16         'dm_reviewer':{'passw': 'secret_dm_reviewer', 'roles': ['Reviewer']},
17        }
18COMMON_USERS_IDS = [u for u in USERS.keys() if not u.startswith('dm_')]
19COMMON_USERS_IDS.append('anonym')
20DM_USERS_IDS = [u for u in USERS.keys() if u.startswith('dm_')]
21
22
23class TestReportAbuse(TestCommBase):
24
25    def afterSetUp(self):
26        TestCommBase.afterSetUp(self)
27        self.testAnonymousReportAbuse()
28        self.testAuthenticatedReportAbuse()
29
30    def testAnonymousReportAbuse(self):
31        self.login('dm_admin')
32        doc_obj = getattr(self.portal, "doc_anonym")
33        discussion = self.discussion.getDiscussionFor(doc_obj)
34        comment = discussion._container.values()[0]
35        self.logout()
36        # Add abuse report on document.
37        doc_obj.REQUEST.set('comment_id', comment.id)
38        try:
39            doc_obj.report_abuse("Anonymous Report Abuse") 
40        except:
41            raise "Anonymous user CAN'T report abuse in turned ON *Anonymous report abuse mode*."
42
43
44    def testAuthenticatedReportAbuse(self):
45        not_anonym_users = [u for u in self.all_users_id if not u=='anonym']
46        failed_users = []
47        for u in not_anonym_users:
48            self.login('dm_admin')
49            doc_id = "doc_%s" % u
50            doc_obj = getattr(self.portal, doc_id)
51            discussion = self.discussion.getDiscussionFor(doc_obj)
52            comment = discussion._container.values()[0]
53            doc_obj.REQUEST.set('comment_id', comment.id)
54            self.login(u)
55            try:
56                doc_obj.report_abuse("Anonymous Report Abuse") 
57            except:
58                failed_users.append(u)
59
60        self.assert_(not failed_users, "%s - user(s) can not report abuse" % failed_users)
61
62
63def test_suite():
64    from unittest import TestSuite, makeSuite
65    suite = TestSuite()
66    suite.addTest(makeSuite(TestReportAbuse))
67    return suite
Note: See TracBrowser for help on using the repository browser.