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'])
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))
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)
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)
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)
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)