Changeset 2076 in products


Ignore:
Timestamp:
Apr 7, 2010 3:07:15 PM (14 years ago)
Author:
mylan
Message:

#185: Add tests for captcha widget

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.z3cform.captcha/branches/captchas-refactoring/quintagroup/z3cform/captcha/tests.py

    r2075 r2076  
     1import re 
    12import unittest 
    23 
     
    67from zope.publisher.browser import TestRequest 
    78 
     9from z3c.form import form 
    810from z3c.form.interfaces import IFormLayer 
    911from z3c.form.interfaces import IValidator 
     
    7274 
    7375 
     76class TestCaptchaWidget(ptc.PloneTestCase): 
     77 
     78    def afterSetUp(self): 
     79        super(TestCaptchaWidget, self).afterSetUp() 
     80        self.request = self.app.REQUEST 
     81        alsoProvides(self.request, IFormLayer) 
     82 
     83        cform = form.BaseForm(self.portal, self.request) 
     84        cform.prefix = "" 
     85        cwidget = CaptchaWidget(self.request) 
     86        cwidget.form = cform 
     87        self.html = cwidget.render() 
     88 
     89    def testHidden(self): 
     90        HIDDENTAG = '<input\s+[^>]*(?:' \ 
     91            '(?:type="hidden"\s*)|' \ 
     92            '(?:name="hashkey"\s*)|' \ 
     93            '(?:value="(?P<value>[0-9a-fA-F]+)"\s*)' \ 
     94            '){3}/>' 
     95        open('/tmp/z3c.form.html','w').write(self.html) 
     96        hidden = re.search(HIDDENTAG, self.html) 
     97        self.assertTrue(hidden and hidden.group('value')) 
     98 
     99    def testImg(self): 
     100        IMAGETAG = '<img\s+[^>]*src=\"' \ 
     101            '(?P<src>[^\"]*/getCaptchaImage/[0-9a-fA-F]+)' \ 
     102            '\"[^>]*>' 
     103        img = re.search(IMAGETAG, self.html) 
     104        self.assertTrue(img and img.group('src')) 
     105 
     106    def testTextField(self): 
     107        FIELDTAG = '<input\s+[^>]*type=\"text\"\s*[^>]*>' 
     108        self.assertEqual(re.search(FIELDTAG, self.html) is not None, True) 
     109         
     110 
    74111def test_suite(): 
    75112    suite = unittest.TestSuite() 
    76113    suite.addTest(unittest.makeSuite(TestRegistrations)) 
     114    suite.addTest(unittest.makeSuite(TestCaptchaWidget)) 
    77115    return suite 
Note: See TracChangeset for help on using the changeset viewer.