web/test/unittest_views_basecontrollers.py
changeset 10075 136b5f995f8e
parent 10016 984505da8b89
child 10083 afc5615aa92b
--- a/web/test/unittest_views_basecontrollers.py	Mon Dec 01 11:13:10 2014 +0100
+++ b/web/test/unittest_views_basecontrollers.py	Thu Mar 20 10:41:22 2014 +0100
@@ -31,6 +31,7 @@
 from logilab.common.decorators import monkeypatch
 
 from cubicweb import Binary, NoSelectableObject, ValidationError
+from cubicweb.schema import RRQLExpression
 from cubicweb.devtools.testlib import CubicWebTC
 from cubicweb.utils import json_dumps
 from cubicweb.uilib import rql_for_eid
@@ -808,6 +809,22 @@
                 req.execute('Any N WHERE T tags P, P is CWUser, T name N').rows,
                 [['javascript']])
 
+    def test_maydel_perms(self):
+        """Check that AjaxEditRelationCtxComponent calls rdef.check with a
+        sufficient context"""
+        self.remote_call('tag_entity', self.john.eid, ['python'])
+        with self.temporary_permissions(
+                (self.schema['tags'].rdefs['Tag', 'CWUser'],
+                 {'delete': (RRQLExpression('S owned_by U'), )}, )):
+            req = self.request(rql='CWUser P WHERE P login "John"',
+                               pageid='123', fname='view')
+            ctrl = self.ctrl(req)
+            rset = self.john.as_rset()
+            rset.req = req
+            source = ctrl.publish()
+            # maydel jscall
+            self.assertIn('ajaxBoxRemoveLinkedEntity', source)
+
     def test_pending_insertion(self):
         with self.remote_calling('add_pending_inserts', [['12', 'tags', '13']]) as (_, req):
             deletes = get_pending_deletes(req)