web/test/unittest_views_basecontrollers.py
changeset 2559 46859078c866
parent 2058 7ef12c03447c
child 2661 f8df42c9da6b
equal deleted inserted replaced
2558:81c8b5312f9c 2559:46859078c866
     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(),