|
6 | 6 | from django.utils.text import slugify |
7 | 7 |
|
8 | 8 | from djangocms_versioning.cms_config import VersioningCMSConfig |
| 9 | +from djangocms_versioning.cms_toolbars import VersioningPageToolbar |
9 | 10 | from djangocms_versioning.constants import ARCHIVED, DRAFT, PUBLISHED |
10 | 11 | from djangocms_versioning.helpers import version_list_url |
11 | 12 | from djangocms_versioning.test_utils.factories import ( |
12 | 13 | BlogPostVersionFactory, |
13 | 14 | FancyPollFactory, |
14 | 15 | PageContentWithVersionFactory, |
| 16 | + PageFactory, |
15 | 17 | PageUrlFactory, |
16 | 18 | PageVersionFactory, |
17 | 19 | PollVersionFactory, |
@@ -615,3 +617,18 @@ def test_page_toolbar_wo_language_menu(self): |
615 | 617 |
|
616 | 618 | language_menu = request.toolbar.get_menu(LANGUAGE_MENU_IDENTIFIER, _("Language")) |
617 | 619 | self.assertIsNone(language_menu) |
| 620 | + |
| 621 | + def test_toolbar_only_catches_page_content_objects(self): |
| 622 | + """Regression test to ensure that the toolbar only catches PageContent objects and not |
| 623 | + other toolbar objects.""" |
| 624 | + |
| 625 | + version = PollVersionFactory() # Not a page content model |
| 626 | + page = PageFactory() # Get a page, e.g. where an apphook is configured |
| 627 | + toolbar = get_toolbar(version.content, edit_mode=True, toolbar_class=VersioningPageToolbar, current_page=page) |
| 628 | + |
| 629 | + # Did page get detected? Otherwise, page_content never will be detected |
| 630 | + self.assertIs(toolbar.page, page) |
| 631 | + # Check regression does not happen |
| 632 | + self.assertNotIsInstance(toolbar.page_content, version.content.__class__) |
| 633 | + # Check for correct result |
| 634 | + self.assertIsNone(toolbar.page_content) |
0 commit comments