def test_root_not_addable(self):
        """Silva Root should never be addable.
        """
        root_addables = IAddableContents(self.root)
        self.assertFalse(
            'Silva Root' in root_addables.get_container_addables())
        self.assertFalse(
            'Silva Root' in root_addables.get_authorized_addables())
        self.assertFalse(
            'Silva Root' in root_addables.get_all_addables())

        folder_addables = IAddableContents(self.root.folder)
        self.assertFalse(
            'Silva Root' in folder_addables.get_container_addables())
        self.assertFalse(
            'Silva Root' in folder_addables.get_authorized_addables())
        self.assertFalse(
            'Silva Root' in folder_addables.get_all_addables())
    def test_addables_authorized(self):
        """Test adapter: get all authorized addables in a given
        container.

        Author doesn't have the right to add publications.
        """
        folder_addables = IAddableContents(self.root.folder)
        self.assertTrue(verifyObject(IAddableContents, folder_addables))
        self.assertEqual(
            folder_addables.get_authorized_addables(),
            AUTHOR_ALL_ADDABLES)

        self.root.set_silva_addables_allowed_in_container(
            ['Silva Publication', 'Silva File'])

        root_addables = IAddableContents(self.root)
        self.assertEqual(
            root_addables.get_authorized_addables(),
            ['Silva File'])
        folder_addables = IAddableContents(self.root.folder)
        self.assertEqual(
            folder_addables.get_authorized_addables(),
            ['Silva File'])
    def test_redirectlink_is_not_addable(self):
        """A redirect link should not be addable.
        """
        service_extensions = self.root.service_extensions
        service_extensions.install('silva.app.redirectlink')

        # Check addables.
        addables = IAddableContents(self.root)
        self.assertTrue(verifyObject(IAddableContents, addables))
        self.assertNotIn(
            'Silva Permanent Redirect Link',
            addables.get_all_addables())
        self.assertNotIn(
            'Silva Permanent Redirect Link',
            addables.get_container_addables())
        self.assertNotIn(
            'Silva Permanent Redirect Link',
            addables.get_authorized_addables())