def test_publish_in_toolbar_in_edit_mode(self):
        version = PollVersionFactory()
        toolbar = get_toolbar(version.content, edit_mode=True)

        toolbar.post_template_populate()
        publish_button = find_toolbar_buttons('Publish', toolbar.toolbar)[0]

        self.assertEqual(publish_button.name, 'Publish')
        self.assertEqual(publish_button.url, self._get_publish_url(version))
        self.assertFalse(publish_button.disabled)
        self.assertListEqual(
            publish_button.extra_classes,
            ['cms-btn-action', 'cms-versioning-js-publish-btn'])
    def test_edit_in_toolbar_in_preview_mode(self):
        version = PageVersionFactory(content__template="")
        toolbar = get_toolbar(version.content,
                              user=self.get_superuser(),
                              preview_mode=True)

        toolbar.post_template_populate()
        edit_button = find_toolbar_buttons('Edit', toolbar.toolbar)[0]

        self.assertEqual(edit_button.name, 'Edit')
        self.assertEqual(
            edit_button.url,
            self._get_edit_url(version, VersioningCMSConfig.versioning[0]))
        self.assertFalse(edit_button.disabled)
        self.assertListEqual(edit_button.extra_classes,
                             ['cms-btn-action', 'cms-versioning-js-edit-btn'])
예제 #3
0
    def test_url_for_publish_uses_version_id_not_content_id(self):
        """Regression test for a bug. Make sure than when we generate
        the publish url, we use the id of the version record, not the
        id of the content record.
        """
        # All versions are stored in the version table so increase the
        # id of version id sequence by creating a blogpost version
        BlogPostVersionFactory()
        # Now create a poll version - the poll content and version id
        # will be different.
        version = PollVersionFactory()
        toolbar = get_toolbar(version.content,
                              user=self.get_superuser(),
                              edit_mode=True)
        toolbar.post_template_populate()
        publish_button = find_toolbar_buttons("Publish", toolbar.toolbar)[0]

        self.assertEqual(publish_button.url, self._get_publish_url(version))
예제 #4
0
    def test_default_cms_edit_button_is_used_for_non_versioned_model(self):
        """
        The default cms edit button is present for a default model
        """
        unversionedpoll = FancyPollFactory()
        url = get_object_preview_url(unversionedpoll)
        edit_url = get_object_edit_url(unversionedpoll)

        with self.login_user_context(self.get_superuser()):
            response = self.client.post(url)

        found_button_list = find_toolbar_buttons("Edit",
                                                 response.wsgi_request.toolbar)

        # Only one edit button exists
        self.assertEqual(len(found_button_list), 1)
        # The only edit button that exists is the standard cms button
        self.assertEqual(found_button_list[0].url, edit_url)
예제 #5
0
    def test_default_edit_button_from_cms_exists(self):
        """
        The default toolbar Edit button exists.
        """
        pagecontent = PageVersionFactory(content__template="")
        edit_url = self._get_edit_url(pagecontent.content,
                                      VersioningCMSConfig.versioning[0])

        toolbar = get_toolbar(
            pagecontent.content,
            user=self.get_superuser(),
            toolbar_class=PlaceholderToolbar,
            preview_mode=True,
        )
        toolbar.post_template_populate()
        found_button_list = find_toolbar_buttons("Edit", toolbar.toolbar)

        # The only edit button that exists is the default cms button and not the versioning edit button
        self.assertEqual(len(found_button_list), 1)
        self.assertNotEqual(found_button_list[0].url, edit_url)
예제 #6
0
    def test_default_cms_edit_button_is_replaced_by_versioning_edit_button(
            self):
        """
        The versioning edit button is available on the toolbar
        when versioning is installed and the model is versionable.
        """
        pagecontent = PageVersionFactory(content__template="")
        url = get_object_preview_url(pagecontent.content)
        edit_url = self._get_edit_url(pagecontent.content,
                                      VersioningCMSConfig.versioning[0])

        with self.login_user_context(self.get_superuser()):
            response = self.client.post(url)

        found_button_list = find_toolbar_buttons("Edit",
                                                 response.wsgi_request.toolbar)

        # Only one edit button exists
        self.assertEqual(len(found_button_list), 1)
        # The only edit button that exists is the versioning button
        self.assertEqual(found_button_list[0].url, edit_url)
예제 #7
0
    def test_url_for_edit_uses_version_id_not_content_id(self):
        """Regression test for a bug. Make sure than when we generate
        the edit url, we use the id of the version record, not the
        id of the content record.
        """
        # All versions are stored in the version table so increase the
        # id of version id sequence by creating a blogpost version
        BlogPostVersionFactory()
        # Now create a page version - the page content and version id
        # will be different.
        version = PageVersionFactory(content__template="")
        toolbar = get_toolbar(version.content,
                              user=self.get_superuser(),
                              preview_mode=True)
        edit_url = self._get_edit_url(version,
                                      VersioningCMSConfig.versioning[0])

        toolbar.post_template_populate()

        edit_button = find_toolbar_buttons("Edit", toolbar.toolbar)[0]
        self.assertEqual(edit_button.url, edit_url)