コード例 #1
0
 def test_canview(self):
     makeContent(self.folder, portal_type="Document", id="doc1")
     request = TestRequest()
     helper = ReferenceBrowserHelperView(self.portal, request)
     self.assertTrue(helper.canView(self.folder.doc1))
     self.logout()
     self.assertFalse(helper.canView(self.folder.doc1))
コード例 #2
0
    def test_valuefromrequest_multi(self):
        """ If the request provides UIDs take these, not the references
            on the object for the edit-view of the widget.
        """
        makeContent(self.folder, portal_type="Document", id="doc1")
        makeContent(self.folder, portal_type="Document", id="doc2")
        makeContent(self.folder, portal_type="Document", id="doc3")

        context = self.folder.doc1
        request = TestRequest()
        helper = ReferenceBrowserHelperView(context, request)
        field = context.getField("relatedItems")

        # no relations
        self.assertEqual(helper.getFieldRelations(field), [])

        # relations on the object
        context.setRelatedItems(self.folder.doc3)
        self.assertEqual(helper.getFieldRelations(field), [self.folder.doc3])

        # relations from the parameter (request, session, ...)
        uid = self.folder.doc2.UID()
        self.assertEqual(helper.getFieldRelations(field, [uid]), [self.folder.doc2])

        # invalid values
        self.assertEqual(helper.getFieldRelations(field, 1), [])
コード例 #3
0
 def test_getUidFromReference_fallback_to_UID(self):
     _marker = object()
     class DummyRef(object):
         def UID(self):
             return _marker
     helper = ReferenceBrowserHelperView(DummyObject('/plone/foo'), TestRequest())
     self.failUnless(helper.getUidFromReference(DummyRef()) is _marker)
コード例 #4
0
    def test_getaturl(self):
        context = DummyObject("/plone/layer1/layer2")
        request = TestRequest()
        helper = ReferenceBrowserHelperView(context, request)
        self.assertEqual(helper.getAtURL(), "/plone/layer1/layer2")

        context = DummyObject("/plone/layer1/with space")
        helper = ReferenceBrowserHelperView(context, request)
        self.assertEqual(helper.getAtURL(), "/plone/layer1/with%20space")
コード例 #5
0
    def test_valuefromrequest_single(self):
        makeContent(self.folder, portal_type="RefBrowserDemo", id="ref")
        makeContent(self.folder, portal_type="Document", id="doc2")
        makeContent(self.folder, portal_type="Document", id="doc3")

        context = self.folder.ref
        request = TestRequest()
        field = context.getField("singleRef")
        helper = ReferenceBrowserHelperView(context, request)

        # no relations
        self.assertEqual(helper.getFieldRelations(field), [])

        # relations on the object
        context.setSingleRef(self.folder.doc3)
        self.assertEqual(helper.getFieldRelations(field), [self.folder.doc3])

        # relations from the parameter (request, session, ...)
        uid = self.folder.doc2.UID()
        self.assertEqual(helper.getFieldRelations(field, uid), [self.folder.doc2])
コード例 #6
0
    def test_startupdirectory(self):
        makeContent(self.folder, portal_type='RefBrowserDemo', id='ref')
        context = self.folder.ref

        request = self.app.REQUEST

        field = context.getField('multiRef5')
        helper = ReferenceBrowserHelperView(context, request)

        # no query
        self.assertEqual(helper.getStartupDirectory(field),
                         'http://nohost/plone/layer1/layer2/ref')

        # string query
        field.widget.startup_directory = 'layer2'
        self.assertEqual(helper.getStartupDirectory(field),
                         'http://nohost/plone/layer1/layer2')

        # test base query is restricted on startup directory
        self.assertFalse('path' in field.widget.getBaseQuery(context, field))
        field.widget.restrict_browsing_to_startup_directory = 1
        self.assertTrue('path' in field.widget.getBaseQuery(context, field))
        self.assertEqual(field.widget.getBaseQuery(context, field)['path'],
                         '/plone/layer1/layer2')

        field.widget.startup_directory = 'layer1'
        self.assertEqual(field.widget.getBaseQuery(context, field)['path'],
                         '/plone/layer1')

        field.widget.startup_directory = '/foo/constant'
        self.assertEqual(helper.getStartupDirectory(field),
                         'http://nohost/plone/foo/constant')

        # dynamic query
        field.widget.startup_directory_method = 'dynamicDirectory'
        self.assertEqual(helper.getStartupDirectory(field),
                         'http://nohost/plone/bar/dynamic')

        # constant query
        field.widget.startup_directory_method = 'constantDirectory'
        self.assertEqual(helper.getStartupDirectory(field),
                         'http://nohost/plone/foo/constant')

        # clean up
        field.widget.startup_directory_method = ''
コード例 #7
0
    def test_startupdirectory(self):
        makeContent(self.folder, portal_type="RefBrowserDemo", id="ref")
        context = self.folder.ref

        request = self.app.REQUEST

        field = context.getField("multiRef5")
        helper = ReferenceBrowserHelperView(context, request)

        # no query
        self.assertEqual(helper.getStartupDirectory(field), "http://nohost/plone/layer1/layer2/ref")

        # string query
        field.widget.startup_directory = "layer2"
        self.assertEqual(helper.getStartupDirectory(field), "http://nohost/plone/layer1/layer2")

        # test base query is restricted on startup directory
        self.assertFalse("path" in field.widget.getBaseQuery(context, field))
        field.widget.restrict_browsing_to_startup_directory = 1
        self.assertTrue("path" in field.widget.getBaseQuery(context, field))
        self.assertEqual(field.widget.getBaseQuery(context, field)["path"], "/plone/layer1/layer2")

        field.widget.startup_directory = "layer1"
        self.assertEqual(field.widget.getBaseQuery(context, field)["path"], "/plone/layer1")

        field.widget.startup_directory = "/foo/constant"
        self.assertEqual(helper.getStartupDirectory(field), "http://nohost/plone/foo/constant")

        # dynamic query
        field.widget.startup_directory_method = "dynamicDirectory"
        self.assertEqual(helper.getStartupDirectory(field), "http://nohost/plone/bar/dynamic")

        # constant query
        field.widget.startup_directory_method = "constantDirectory"
        self.assertEqual(helper.getStartupDirectory(field), "http://nohost/plone/foo/constant")

        # clean up
        field.widget.startup_directory_method = ""
コード例 #8
0
 def test_portalpath(self):
     helper = ReferenceBrowserHelperView(self.folder, self.app.REQUEST)
     self.assertEqual(helper.getPortalPath(), "/plone")