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), [])
    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])