/
test_behaviors_richtext.py
61 lines (48 loc) · 2 KB
/
test_behaviors_richtext.py
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
import unittest2 as unittest
from Products.CMFCore.utils import getToolByName
from plone.app.dexterity.testing import DEXTERITY_INTEGRATION_TESTING
from plone.app.testing import TEST_USER_ID, setRoles
from plone.app.testing import SITE_OWNER_NAME
from plone.app.testing import SITE_OWNER_PASSWORD
from plone.testing.z2 import Browser
from plone.dexterity.fti import DexterityFTI
from plone.app.contenttypes.behaviors.richtext import IRichText
class RichTextBase:
# subclass here
_behaviors = None
_portal_type = None
def _setupFTI(self):
fti = DexterityFTI(self._portal_type)
self.portal.portal_types._setObject(self._portal_type, fti)
fti.klass = 'plone.dexterity.content.Item'
fti.behaviors = self._behaviors
class RichTextBehaviorTests(RichTextBase, unittest.TestCase):
""" basic use cases and tests for richtext behavior"""
layer = DEXTERITY_INTEGRATION_TESTING
_behaviors = (
'plone.app.contenttypes.behaviors.richtext.IRichText',)
_portal_type = 'SomeDocument'
def setUp(self):
app = self.layer['app']
self.portal = self.layer['portal']
self.wf = getToolByName(self.portal, "portal_workflow")
self.portal.acl_users._doAddUser('user_std', 'secret', ['Member'], [])
self.portal_url = self.portal.absolute_url()
setRoles(self.portal, TEST_USER_ID, ['Manager'])
self._setupFTI()
self.portal.invokeFactory(self._portal_type, 'doc1')
setRoles(self.portal, TEST_USER_ID, ['Member'])
import transaction
transaction.commit()
# Set up browser
self.browser = Browser(app)
self.browser.handleErrors = False
self.browser.addHeader(
'Authorization',
'Basic %s:%s' % (SITE_OWNER_NAME, SITE_OWNER_PASSWORD,)
)
def test_richtext_behavior(self):
IRichText.providedBy(self.portal.doc1)
def test_suite():
from unittest import defaultTestLoader
return defaultTestLoader.loadTestsFromName(__name__)