web/test/unittest_form.py
branchtls-sprint
changeset 1300 62d2b890a980
parent 1181 620ec8e6ae19
child 1345 9f086baa2537
equal deleted inserted replaced
1298:ca02a2b5e9be 1300:62d2b890a980
    17         self.entity = self.user(self.req)
    17         self.entity = self.user(self.req)
    18         self.renderer = FormRenderer()
    18         self.renderer = FormRenderer()
    19         
    19         
    20     # form view tests #########################################################
    20     # form view tests #########################################################
    21         
    21         
    22     def test_delete_conf_formview(self):
       
    23         rset = self.execute('EGroup X')
       
    24         self.view('deleteconf', rset, template=None).source
       
    25         
       
    26     def test_massmailing_formview(self):
    22     def test_massmailing_formview(self):
    27         self.execute('INSERT EmailAddress X: X address L + "@cubicweb.org", '
    23         self.execute('INSERT EmailAddress X: X address L + "@cubicweb.org", '
    28                      'U use_email X WHERE U is EUser, U login L')
    24                      'U use_email X WHERE U is EUser, U login L')
    29         rset = self.execute('EUser X')
    25         rset = self.execute('EUser X')
    30         self.view('massmailing', rset, template=None)
    26         self.view('massmailing', rset, template=None)
    31         
    27         
    32     def test_automatic_edition_formview(self):
       
    33         rset = self.execute('EUser X')
       
    34         self.view('edition', rset, row=0, template=None).source
       
    35         
       
    36     def test_automatic_edition_formview(self):
       
    37         rset = self.execute('EUser X')
       
    38         self.view('copy', rset, row=0, template=None).source
       
    39         
       
    40     def test_automatic_creation_formview(self):
       
    41         self.view('creation', None, etype='EUser', template=None).source
       
    42         
       
    43     def test_automatic_muledit_formview(self):
       
    44         rset = self.execute('EUser X')
       
    45         self.view('muledit', rset, template=None).source
       
    46         
       
    47     def test_automatic_reledit_formview(self):
       
    48         rset = self.execute('EUser X')
       
    49         self.view('reledit', rset, row=0, rtype='login', template=None).source
       
    50         
       
    51     def test_automatic_inline_edit_formview(self):
       
    52         geid = self.execute('EGroup X LIMIT 1')[0][0]
       
    53         rset = self.execute('EUser X LIMIT 1')
       
    54         self.view('inline-edition', rset, row=0, rtype='in_group', peid=geid, template=None).source
       
    55                               
       
    56     def test_automatic_inline_creation_formview(self):
       
    57         geid = self.execute('EGroup X LIMIT 1')[0][0]
       
    58         self.view('inline-creation', None, etype='EUser', rtype='in_group', peid=geid, template=None).source
       
    59 
    28 
    60     # form tests ##############################################################
    29     # form tests ##############################################################
    61     
    30     
    62     def test_form_inheritance(self):
    31     def test_form_inheritance(self):
    63         class CustomChangeStateForm(ChangeStateForm):
    32         class CustomChangeStateForm(ChangeStateForm):
    69 
    38 
    70     def test_change_state_form(self):
    39     def test_change_state_form(self):
    71         form = ChangeStateForm(self.req, redirect_path='perdu.com',
    40         form = ChangeStateForm(self.req, redirect_path='perdu.com',
    72                                entity=self.entity)
    41                                entity=self.entity)
    73         form.form_render(state=123, trcomment=u'')
    42         form.form_render(state=123, trcomment=u'')
    74         
       
    75     def test_edition_form(self):
       
    76         rset = self.execute('EUser X LIMIT 1')
       
    77         form = self.vreg.select_object('forms', 'edition', rset.req, rset, row=0, col=0)
       
    78         # should be also selectable by specifying entity
       
    79         self.vreg.select_object('forms', 'edition', self.request(), entity=rset.get_entity(0, 0))
       
    80         self.failIf(any(f for f in form.fields if f is None))
       
    81         
    43         
    82     # fields tests ############################################################
    44     # fields tests ############################################################
    83 
    45 
    84     def _render_entity_field(self, name, form):
    46     def _render_entity_field(self, name, form):
    85         form.form_add_entity_hiddens(form.edited_entity.e_schema)
    47         form.form_add_entity_hiddens(form.edited_entity.e_schema)
    97 
    59 
    98         
    60         
    99     def test_richtextfield_1(self):
    61     def test_richtextfield_1(self):
   100         self.req.use_fckeditor = lambda: False
    62         self.req.use_fckeditor = lambda: False
   101         self._test_richtextfield('''<select name="content_format:%(eid)s" id="content_format:%(eid)s" tabindex="0">
    63         self._test_richtextfield('''<select name="content_format:%(eid)s" id="content_format:%(eid)s" tabindex="0">
   102 <option value="text/rest">text/rest</option>
    64 <option value="text/cubicweb-page-template">text/cubicweb-page-template</option>
   103 <option selected="selected" value="text/html">text/html</option>
    65 <option selected="selected" value="text/html">text/html</option>
   104 <option value="text/plain">text/plain</option>
    66 <option value="text/plain">text/plain</option>
   105 <option value="text/cubicweb-page-template">text/cubicweb-page-template</option>
    67 <option value="text/rest">text/rest</option>
   106 </select><textarea tabindex="1" id="content:%(eid)s" name="content:%(eid)s" onkeypress="autogrow(this)">&lt;h1&gt;new widgets system&lt;/h1&gt;</textarea>''')
    68 </select><textarea tabindex="1" id="content:%(eid)s" name="content:%(eid)s" onkeypress="autogrow(this)">&lt;h1&gt;new widgets system&lt;/h1&gt;</textarea>''')
   107 
    69 
   108     
    70     
   109     def test_richtextfield_2(self):
    71     def test_richtextfield_2(self):
   110         self.req.use_fckeditor = lambda: True
    72         self.req.use_fckeditor = lambda: True
   161             upassword = StringField(widget=PasswordInput)
   123             upassword = StringField(widget=PasswordInput)
   162         form = PFForm(self.req, redirect_path='perdu.com', entity=self.entity)
   124         form = PFForm(self.req, redirect_path='perdu.com', entity=self.entity)
   163         self.assertTextEquals(self._render_entity_field('upassword', form),
   125         self.assertTextEquals(self._render_entity_field('upassword', form),
   164                               '''<input id="upassword:%(eid)s" type="password" name="upassword:%(eid)s" value="__cubicweb_internal_field__" tabindex="0"/>
   126                               '''<input id="upassword:%(eid)s" type="password" name="upassword:%(eid)s" value="__cubicweb_internal_field__" tabindex="0"/>
   165 <br/>
   127 <br/>
   166 <input type="password" name="upassword-confirm:%(eid)s" tabindex="0"/>
   128 <input type="password" name="upassword-confirm:%(eid)s" value="__cubicweb_internal_field__" tabindex="0"/>
   167 &nbsp;
   129 &nbsp;
   168 <span class="emphasis">confirm password</span>''' % {'eid': self.entity.eid})
   130 <span class="emphasis">confirm password</span>''' % {'eid': self.entity.eid})
   169 
   131 
   170         
   132         
   171 if __name__ == '__main__':
   133 if __name__ == '__main__':