[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/ Check for valid charset added and test for it.
Charlie Clark
charlie at begeistert.org
Sun Sep 26 16:59:47 EDT 2010
Log message for revision 116959:
Check for valid charset added and test for it.
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/tests/portal_config.txt
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py 2010-09-26 20:43:25 UTC (rev 116958)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/interfaces.py 2010-09-26 20:59:47 UTC (rev 116959)
@@ -1,4 +1,5 @@
"""Schema for portal forms"""
+import codecs
from zope.interface import Interface
from zope.schema import TextLine, ASCIILine, Bool, Choice
@@ -13,6 +14,14 @@
]
)
+def check_encoding(value):
+ encoding = ""
+ try:
+ encoding = codecs.lookup(value)
+ except LookupError:
+ pass
+ return encoding != ""
+
class IPortalConfig(Interface):
email_from_name = TextLine(
@@ -48,14 +57,16 @@
default_charset = ASCIILine(
title=_(u"Portal default encoding"),
- description=_(u"Charset used to decode portal content strings. If empty, 'ascii' is used."),
+ description=_(u"Charset used to decode portal content strings. If empty, 'utf-8' is used."),
required=False,
+ constraint=check_encoding,
default="UTF-8")
email_charset = ASCIILine(
title=_(u"Portal email encoding"),
description=_(u"Charset used to encode emails send by the portal. If empty, 'utf-8' is used if necessary."),
required=False,
+ constraint=check_encoding,
default="UTF-8")
enable_actionicons = Bool(
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/tests/portal_config.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/tests/portal_config.txt 2010-09-26 20:43:25 UTC (rev 116958)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/portal/tests/portal_config.txt 2010-09-26 20:59:47 UTC (rev 116959)
@@ -45,4 +45,8 @@
>>> browser.getControl(name="form.default_charset").value = "Caché"
>>> browser.getControl(name="form.actions.change").click()
>>> "[[cmf_default][[[zope][There were errors]" in browser.contents
+ True
+ >>> browser.getControl(name="form.default_charset").value = "utf-9"
+ >>> browser.getControl(name="form.actions.change").click()
+ >>> "[Constraint not satisfied]" in browser.contents
True
\ No newline at end of file
More information about the checkins
mailing list