34 |
34 |
35 class FieldsFormTC(CubicWebTC): |
35 class FieldsFormTC(CubicWebTC): |
36 |
36 |
37 def test_form_field_format(self): |
37 def test_form_field_format(self): |
38 form = FieldsForm(self.request(), None) |
38 form = FieldsForm(self.request(), None) |
39 self.assertEquals(StringField().format(form), 'text/html') |
39 self.assertEqual(StringField().format(form), 'text/html') |
40 self.execute('INSERT CWProperty X: X pkey "ui.default-text-format", X value "text/rest", X for_user U WHERE U login "admin"') |
40 self.execute('INSERT CWProperty X: X pkey "ui.default-text-format", X value "text/rest", X for_user U WHERE U login "admin"') |
41 self.commit() |
41 self.commit() |
42 self.assertEquals(StringField().format(form), 'text/rest') |
42 self.assertEqual(StringField().format(form), 'text/rest') |
43 |
43 |
44 |
44 |
45 class EntityFieldsFormTC(CubicWebTC): |
45 class EntityFieldsFormTC(CubicWebTC): |
46 |
46 |
47 def setUp(self): |
47 def setUp(self): |
68 def test_form_field_vocabulary_new_entity(self): |
68 def test_form_field_vocabulary_new_entity(self): |
69 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
69 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
70 form = self.vreg['forms'].select('edition', self.req, entity=e) |
70 form = self.vreg['forms'].select('edition', self.req, entity=e) |
71 unrelated = [rview for rview, reid in form.field_by_name('in_group', 'subject').choices(form)] |
71 unrelated = [rview for rview, reid in form.field_by_name('in_group', 'subject').choices(form)] |
72 # should be default groups but owners, i.e. managers, users, guests |
72 # should be default groups but owners, i.e. managers, users, guests |
73 self.assertEquals(unrelated, [u'guests', u'managers', u'users']) |
73 self.assertEqual(unrelated, [u'guests', u'managers', u'users']) |
74 |
74 |
75 def test_consider_req_form_params(self): |
75 def test_consider_req_form_params(self): |
76 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
76 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
77 e.eid = 'A' |
77 e.eid = 'A' |
78 form = EntityFieldsForm(self.request(login=u'toto'), None, entity=e) |
78 form = EntityFieldsForm(self.request(login=u'toto'), None, entity=e) |
79 field = StringField(name='login', role='subject', eidparam=True) |
79 field = StringField(name='login', role='subject', eidparam=True) |
80 form.append_field(field) |
80 form.append_field(field) |
81 form.build_context({}) |
81 form.build_context({}) |
82 self.assertEquals(field.widget.values(form, field), (u'toto',)) |
82 self.assertEqual(field.widget.values(form, field), (u'toto',)) |
83 |
83 |
84 |
84 |
85 def test_linkto_field_duplication(self): |
85 def test_linkto_field_duplication(self): |
86 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
86 e = self.vreg['etypes'].etype_class('CWUser')(self.request()) |
87 e.eid = 'A' |
87 e.eid = 'A' |
142 state = self.vreg['etypes'].etype_class('State')(self.req) |
142 state = self.vreg['etypes'].etype_class('State')(self.req) |
143 state.eid = 'S' |
143 state.eid = 'S' |
144 form = RTFForm(self.req, redirect_path='perdu.com', entity=state) |
144 form = RTFForm(self.req, redirect_path='perdu.com', entity=state) |
145 # make it think it can use fck editor anyway |
145 # make it think it can use fck editor anyway |
146 form.field_by_name('description', 'subject').format = lambda x: 'text/html' |
146 form.field_by_name('description', 'subject').format = lambda x: 'text/html' |
147 self.assertTextEquals(self._render_entity_field('description', form), |
147 self.assertMultiLineEqual(self._render_entity_field('description', form), |
148 expected % {'eid': state.eid}) |
148 expected % {'eid': state.eid}) |
149 |
149 |
150 |
150 |
151 def test_richtextfield_1(self): |
151 def test_richtextfield_1(self): |
152 self.req.use_fckeditor = lambda: False |
152 self.req.use_fckeditor = lambda: False |
172 eidparam=True, role='subject'), |
172 eidparam=True, role='subject'), |
173 eidparam=True, role='subject') |
173 eidparam=True, role='subject') |
174 file = self.req.create_entity('File', data_name=u"pouet.txt", data_encoding=u'UTF-8', |
174 file = self.req.create_entity('File', data_name=u"pouet.txt", data_encoding=u'UTF-8', |
175 data=Binary('new widgets system')) |
175 data=Binary('new widgets system')) |
176 form = FFForm(self.req, redirect_path='perdu.com', entity=file) |
176 form = FFForm(self.req, redirect_path='perdu.com', entity=file) |
177 self.assertTextEquals(self._render_entity_field('data', form), |
177 self.assertMultiLineEqual(self._render_entity_field('data', form), |
178 '''<input id="data-subject:%(eid)s" name="data-subject:%(eid)s" tabindex="1" type="file" value="" /> |
178 '''<input id="data-subject:%(eid)s" name="data-subject:%(eid)s" tabindex="1" type="file" value="" /> |
179 <a href="javascript: toggleVisibility('data-subject:%(eid)s-advanced')" title="show advanced fields"><img src="http://testing.fr/cubicweb/data/puce_down.png" alt="show advanced fields"/></a> |
179 <a href="javascript: toggleVisibility('data-subject:%(eid)s-advanced')" title="show advanced fields"><img src="http://testing.fr/cubicweb/data/puce_down.png" alt="show advanced fields"/></a> |
180 <div id="data-subject:%(eid)s-advanced" class="hidden"> |
180 <div id="data-subject:%(eid)s-advanced" class="hidden"> |
181 <label for="data_format-subject:%(eid)s">data_format</label><input id="data_format-subject:%(eid)s" maxlength="50" name="data_format-subject:%(eid)s" size="45" tabindex="2" type="text" value="text/plain" /><br/> |
181 <label for="data_format-subject:%(eid)s">data_format</label><input id="data_format-subject:%(eid)s" maxlength="50" name="data_format-subject:%(eid)s" size="45" tabindex="2" type="text" value="text/plain" /><br/> |
182 <label for="data_encoding-subject:%(eid)s">data_encoding</label><input id="data_encoding-subject:%(eid)s" maxlength="20" name="data_encoding-subject:%(eid)s" size="20" tabindex="3" type="text" value="UTF-8" /><br/> |
182 <label for="data_encoding-subject:%(eid)s">data_encoding</label><input id="data_encoding-subject:%(eid)s" maxlength="20" name="data_encoding-subject:%(eid)s" size="20" tabindex="3" type="text" value="UTF-8" /><br/> |
183 </div> |
183 </div> |
184 <br/> |
184 <br/> |
185 <input name="data-subject__detach:%(eid)s" type="checkbox" /> |
185 <input name="data-subject__detach:%(eid)s" type="checkbox" /> |
186 detach attached file |
186 detach attached file''' % {'eid': file.eid}) |
187 ''' % {'eid': file.eid}) |
|
188 |
187 |
189 |
188 |
190 def test_editablefilefield(self): |
189 def test_editablefilefield(self): |
191 class EFFForm(EntityFieldsForm): |
190 class EFFForm(EntityFieldsForm): |
192 data = EditableFileField( |
191 data = EditableFileField( |
196 eidparam=True, role='subject'), |
195 eidparam=True, role='subject'), |
197 eidparam=True, role='subject') |
196 eidparam=True, role='subject') |
198 file = self.req.create_entity('File', data_name=u"pouet.txt", data_encoding=u'UTF-8', |
197 file = self.req.create_entity('File', data_name=u"pouet.txt", data_encoding=u'UTF-8', |
199 data=Binary('new widgets system')) |
198 data=Binary('new widgets system')) |
200 form = EFFForm(self.req, redirect_path='perdu.com', entity=file) |
199 form = EFFForm(self.req, redirect_path='perdu.com', entity=file) |
201 self.assertTextEquals(self._render_entity_field('data', form), |
200 self.assertMultiLineEqual(self._render_entity_field('data', form), |
202 '''<input id="data-subject:%(eid)s" name="data-subject:%(eid)s" tabindex="1" type="file" value="" /> |
201 '''<input id="data-subject:%(eid)s" name="data-subject:%(eid)s" tabindex="1" type="file" value="" /> |
203 <a href="javascript: toggleVisibility('data-subject:%(eid)s-advanced')" title="show advanced fields"><img src="http://testing.fr/cubicweb/data/puce_down.png" alt="show advanced fields"/></a> |
202 <a href="javascript: toggleVisibility('data-subject:%(eid)s-advanced')" title="show advanced fields"><img src="http://testing.fr/cubicweb/data/puce_down.png" alt="show advanced fields"/></a> |
204 <div id="data-subject:%(eid)s-advanced" class="hidden"> |
203 <div id="data-subject:%(eid)s-advanced" class="hidden"> |
205 <label for="data_format-subject:%(eid)s">data_format</label><input id="data_format-subject:%(eid)s" maxlength="50" name="data_format-subject:%(eid)s" size="45" tabindex="2" type="text" value="text/plain" /><br/> |
204 <label for="data_format-subject:%(eid)s">data_format</label><input id="data_format-subject:%(eid)s" maxlength="50" name="data_format-subject:%(eid)s" size="45" tabindex="2" type="text" value="text/plain" /><br/> |
206 <label for="data_encoding-subject:%(eid)s">data_encoding</label><input id="data_encoding-subject:%(eid)s" maxlength="20" name="data_encoding-subject:%(eid)s" size="20" tabindex="3" type="text" value="UTF-8" /><br/> |
205 <label for="data_encoding-subject:%(eid)s">data_encoding</label><input id="data_encoding-subject:%(eid)s" maxlength="20" name="data_encoding-subject:%(eid)s" size="20" tabindex="3" type="text" value="UTF-8" /><br/> |
214 |
213 |
215 def test_passwordfield(self): |
214 def test_passwordfield(self): |
216 class PFForm(EntityFieldsForm): |
215 class PFForm(EntityFieldsForm): |
217 upassword = PasswordField(eidparam=True, role='subject') |
216 upassword = PasswordField(eidparam=True, role='subject') |
218 form = PFForm(self.req, redirect_path='perdu.com', entity=self.entity) |
217 form = PFForm(self.req, redirect_path='perdu.com', entity=self.entity) |
219 self.assertTextEquals(self._render_entity_field('upassword', form), |
218 self.assertMultiLineEqual(self._render_entity_field('upassword', form), |
220 '''<input id="upassword-subject:%(eid)s" name="upassword-subject:%(eid)s" tabindex="1" type="password" value="" /> |
219 '''<input id="upassword-subject:%(eid)s" name="upassword-subject:%(eid)s" tabindex="1" type="password" value="" /> |
221 <br/> |
220 <br/> |
222 <input name="upassword-subject-confirm:%(eid)s" tabindex="1" type="password" value="" /> |
221 <input name="upassword-subject-confirm:%(eid)s" tabindex="1" type="password" value="" /> |
223   |
222   |
224 <span class="emphasis">confirm password</span>''' % {'eid': self.entity.eid}) |
223 <span class="emphasis">confirm password</span>''' % {'eid': self.entity.eid}) |
228 # class DFForm(EntityFieldsForm): |
227 # class DFForm(EntityFieldsForm): |
229 # creation_date = DateTimeField(widget=Input) |
228 # creation_date = DateTimeField(widget=Input) |
230 # form = DFForm(self.req, entity=self.entity) |
229 # form = DFForm(self.req, entity=self.entity) |
231 # init, cur = (fromstring(self._render_entity_field(attr, form)).get('value') |
230 # init, cur = (fromstring(self._render_entity_field(attr, form)).get('value') |
232 # for attr in ('edits-creation_date', 'creation_date')) |
231 # for attr in ('edits-creation_date', 'creation_date')) |
233 # self.assertEquals(init, cur) |
232 # self.assertEqual(init, cur) |
234 |
233 |
235 if __name__ == '__main__': |
234 if __name__ == '__main__': |
236 unittest_main() |
235 unittest_main() |