6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
7 """ |
7 """ |
8 import simplejson |
8 import simplejson |
9 |
9 |
10 from logilab.common.testlib import unittest_main, mock_object |
10 from logilab.common.testlib import unittest_main, mock_object |
11 |
|
12 from cubicweb import Binary, Unauthorized |
|
13 from cubicweb.devtools._apptest import TestEnvironment |
|
14 from cubicweb.devtools.apptest import EnvBasedTC, ControllerTC |
11 from cubicweb.devtools.apptest import EnvBasedTC, ControllerTC |
15 |
12 |
16 from cubicweb.common import ValidationError |
13 from cubicweb import Binary, NoSelectableObject, ValidationError |
|
14 from cubicweb.view import STRICT_DOCTYPE |
17 from cubicweb.common.uilib import rql_for_eid |
15 from cubicweb.common.uilib import rql_for_eid |
18 |
16 |
19 from cubicweb.web import INTERNAL_FIELD_VALUE, Redirect, RequestError |
17 from cubicweb.web import INTERNAL_FIELD_VALUE, Redirect, RequestError |
20 from cubicweb.web.views.basecontrollers import xhtml_wrap |
|
21 |
18 |
22 from cubicweb.entities.authobjs import CWUser |
19 from cubicweb.entities.authobjs import CWUser |
23 |
20 |
24 |
21 |
25 class EditControllerTC(ControllerTC): |
22 class EditControllerTC(ControllerTC): |
513 class SendMailControllerTC(EnvBasedTC): |
510 class SendMailControllerTC(EnvBasedTC): |
514 |
511 |
515 def test_not_usable_by_guets(self): |
512 def test_not_usable_by_guets(self): |
516 self.login('anon') |
513 self.login('anon') |
517 req = self.request() |
514 req = self.request() |
518 self.assertRaises(Unauthorized, self.env.app.select_controller, 'sendmail', req) |
515 self.assertRaises(NoSelectableObject, self.env.vreg.select, 'controllers', 'sendmail', req) |
519 |
516 |
520 |
517 |
521 |
518 |
522 class JSONControllerTC(EnvBasedTC): |
519 class JSONControllerTC(EnvBasedTC): |
523 |
520 |
536 req = self.request(rql='CWUser P WHERE P login "John"', |
533 req = self.request(rql='CWUser P WHERE P login "John"', |
537 pageid='123', fname='view') |
534 pageid='123', fname='view') |
538 ctrl = self.ctrl(req) |
535 ctrl = self.ctrl(req) |
539 rset = self.john.as_rset() |
536 rset = self.john.as_rset() |
540 rset.req = req |
537 rset.req = req |
541 self.assertTextEquals(ctrl.publish(), |
538 source = ctrl.publish() |
542 xhtml_wrap(mock_object(req=req), ctrl.view('primary', rset))) |
539 self.failUnless(source.startswith('<?xml version="1.0"?>\n' + STRICT_DOCTYPE + |
|
540 u'<div xmlns="http://www.w3.org/1999/xhtml" xmlns:cubicweb="http://www.logilab.org/2008/cubicweb">') |
|
541 ) |
|
542 req.xhtml_browser = lambda: False |
|
543 source = ctrl.publish() |
|
544 self.failUnless(source.startswith('<div>')) |
543 |
545 |
544 # def test_json_exec(self): |
546 # def test_json_exec(self): |
545 # rql = 'Any T,N WHERE T is Tag, T name N' |
547 # rql = 'Any T,N WHERE T is Tag, T name N' |
546 # ctrl = self.ctrl(self.request(mode='json', rql=rql, pageid='123')) |
548 # ctrl = self.ctrl(self.request(mode='json', rql=rql, pageid='123')) |
547 # self.assertEquals(ctrl.publish(), |
549 # self.assertEquals(ctrl.publish(), |