def testWidgetAllowedTypesField(self): from zope.interface import Interface, implements from plone.app.textfield import RichText from zope.publisher.browser import TestRequest from Products.CMFCore.PortalContent import PortalContent from plone.app.textfield.widget import RichTextWidget from z3c.form.widget import FieldWidget class IWithText(Interface): text = RichText(title=u"Text", default_mime_type='text/structured', output_mime_type='text/html', allowed_mime_types=('text/structured', 'text/html')) class Context(PortalContent): implements(IWithText) text = None request = TestRequest() widget = FieldWidget(IWithText['text'], RichTextWidget(request)) widget.update() self.portal['portal_properties']['site_properties']._setPropValue( 'forbidden_contenttypes', ['text/structured']) allowed = widget.allowedMimeTypes() self.failUnless('text/html' in allowed) self.failUnless('text/structured' in allowed)
def testWidgetExtract(self): from zope.interface import Interface, implements from plone.app.textfield import RichText from zope.publisher.browser import TestRequest from Products.CMFCore.PortalContent import PortalContent from plone.app.textfield.widget import RichTextWidget from z3c.form.widget import FieldWidget from z3c.form.interfaces import NOVALUE class IWithText(Interface): text = RichText(title=u"Text", default_mime_type='text/structured', output_mime_type='text/html') class Context(PortalContent): implements(IWithText) text = None request = TestRequest() widget = FieldWidget(IWithText['text'], RichTextWidget(request)) widget.update() value = widget.extract() self.assertEquals(NOVALUE, value) request.form['%s' % widget.name] = u"Sample **text**" request.form['%s.mimeType' % widget.name] = 'text/structured' value = widget.extract() self.assertEquals(u"<p>Sample <strong>text</strong></p>", value.output.strip())
def testWidgetConverter(self): from zope.interface import Interface from plone.app.textfield import RichText from zope.publisher.browser import TestRequest from plone.app.textfield.value import RichTextValue from plone.app.textfield.widget import RichTextWidget from plone.app.textfield.widget import RichTextConverter from z3c.form.widget import FieldWidget _marker = object() class IWithText(Interface): text = RichText(title=u"Text", default_mime_type='text/structured', output_mime_type='text/html', missing_value=_marker) request = TestRequest() widget = FieldWidget(IWithText['text'], RichTextWidget(request)) widget.update() converter = RichTextConverter(IWithText['text'], widget) self.assertTrue(converter.toFieldValue(u'') is _marker) self.assertTrue(converter.toFieldValue(RichTextValue(u'')) is _marker)
def testRichTextAreaWidgetConverter(self): from zope.interface import Interface from plone.app.textfield import RichText from zope.publisher.browser import TestRequest from plone.app.textfield.value import RichTextValue from plone.app.textfield.widget import RichTextWidget from plone.app.textfield.widget import RichTextAreaConverter from z3c.form.widget import FieldWidget _marker = object() class IWithText(Interface): text = RichText(title=u"Text", default_mime_type='text/structured', output_mime_type='text/html', missing_value=_marker) request = TestRequest() widget = FieldWidget(IWithText['text'], RichTextWidget(request)) widget.update() converter = RichTextAreaConverter(IWithText['text'], widget) # Test with None input. self.assertRaises(ValueError, converter.toFieldValue, None) self.assertTrue(converter.toWidgetValue(None) is None) # Test with string input. self.assertTrue(converter.toFieldValue('') is _marker) self.assertRaises(ValueError, converter.toFieldValue, b'Foo') self.assertRaises(ValueError, converter.toWidgetValue, b'') self.assertRaises(ValueError, converter.toWidgetValue, b'Foo') # Test with unicode input. self.assertTrue(converter.toFieldValue(u'') is _marker) self.assertEqual(converter.toFieldValue(u'Foo').raw, u'Foo') self.assertTrue( isinstance(converter.toFieldValue(u'Foo'), RichTextValue)) self.assertEqual(converter.toWidgetValue(u''), u'') self.assertEqual(converter.toWidgetValue(u'Foo'), u'Foo') # Test with RichTextValue input. self.assertTrue(converter.toFieldValue(RichTextValue(u'')) is _marker) rich_text = RichTextValue(u'Foo') self.assertEqual(converter.toFieldValue(rich_text), rich_text) self.assertEqual(converter.toFieldValue(rich_text).raw, u'Foo') self.assertEqual(converter.toWidgetValue(rich_text), u'Foo')