forked from ungleich-public/dynamicweb
71 lines
2.6 KiB
Python
71 lines
2.6 KiB
Python
from collections import OrderedDict
|
|
|
|
from django.core.exceptions import ImproperlyConfigured
|
|
|
|
from cms import api
|
|
from cms.exceptions import ToolbarAlreadyRegistered, ToolbarNotRegistered
|
|
from cms.test_utils.testcases import CMSTestCase
|
|
from cms.toolbar.utils import get_object_edit_url
|
|
from cms.toolbar_base import CMSToolbar
|
|
from cms.toolbar_pool import ToolbarPool, toolbar_pool
|
|
|
|
|
|
class TestToolbar(CMSToolbar):
|
|
pass
|
|
|
|
|
|
class ToolbarPoolTests(CMSTestCase):
|
|
def test_register(self):
|
|
pool = ToolbarPool()
|
|
pool.register(TestToolbar)
|
|
pool.register(CMSToolbar)
|
|
self.assertEqual(pool.toolbars, {
|
|
'cms.toolbar_base.CMSToolbar': CMSToolbar,
|
|
'cms.tests.test_toolbar_pool.TestToolbar': TestToolbar})
|
|
|
|
self.assertRaises(ToolbarAlreadyRegistered,
|
|
pool.register, TestToolbar)
|
|
|
|
def test_register_type(self):
|
|
pool = ToolbarPool()
|
|
self.assertRaises(ImproperlyConfigured, pool.register, str)
|
|
self.assertRaises(ImproperlyConfigured, pool.register, object)
|
|
|
|
def test_register_order(self):
|
|
pool = ToolbarPool()
|
|
pool.register(TestToolbar)
|
|
pool.register(CMSToolbar)
|
|
|
|
test_toolbar = OrderedDict()
|
|
test_toolbar['cms.tests.test_toolbar_pool.TestToolbar'] = TestToolbar
|
|
test_toolbar['cms.toolbar_base.CMSToolbar'] = CMSToolbar
|
|
self.assertEqual(list(test_toolbar.keys()), list(pool.toolbars.keys()))
|
|
|
|
def test_unregister(self):
|
|
pool = ToolbarPool()
|
|
pool.register(TestToolbar)
|
|
pool.unregister(TestToolbar)
|
|
self.assertEqual(pool.toolbars, {})
|
|
|
|
self.assertRaises(ToolbarNotRegistered,
|
|
pool.unregister, TestToolbar)
|
|
|
|
def test_settings(self):
|
|
pool = ToolbarPool()
|
|
toolbars = toolbar_pool.toolbars
|
|
toolbar_pool.clear()
|
|
with self.settings(CMS_TOOLBARS=['cms.cms_toolbars.BasicToolbar', 'cms.cms_toolbars.PlaceholderToolbar']):
|
|
toolbar_pool.register(TestToolbar)
|
|
self.assertEqual(len(list(pool.get_toolbars().keys())), 2)
|
|
page = api.create_page("home", "simple.html", "en")
|
|
page_content = self.get_pagecontent_obj(page)
|
|
page_edit_url_on = get_object_edit_url(page_content)
|
|
|
|
with self.login_user_context(self.get_superuser()):
|
|
response = self.client.get(page_edit_url_on)
|
|
self.assertEqual(response.status_code, 200)
|
|
toolbar_pool.toolbars = toolbars
|
|
|
|
def test_watch_models(self):
|
|
toolbar_pool.discover_toolbars()
|
|
self.assertEqual(type(toolbar_pool.get_watch_models()), list)
|