Skip to content

Commit

Permalink
Add test for get_draft_url / get_public_url in Django models
Browse files Browse the repository at this point in the history
  • Loading branch information
yakky committed Mar 1, 2015
1 parent c81618f commit d3b6755
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 0 deletions.
4 changes: 4 additions & 0 deletions cms/test_utils/project/placeholderapp/cms_toolbar.py
Expand Up @@ -6,11 +6,15 @@
from cms.utils.urlutils import admin_reverse
from django.utils.translation import ugettext_lazy as _

from .models import Example1

SAMPLEAPP_BREAK = 'Example1 App Break'


@toolbar_pool.register
class Example1Toolbar(CMSToolbar):
watch_models = [Example1]

def populate(self):
admin_menu = self.toolbar.get_or_create_menu(ADMIN_MENU_IDENTIFIER)
position = admin_menu.find_first(Break, identifier=ADMINISTRATION_BREAK)
Expand Down
6 changes: 6 additions & 0 deletions cms/test_utils/project/placeholderapp/models.py
Expand Up @@ -40,6 +40,12 @@ def __str__(self):
def get_absolute_url(self):
return reverse("example_detail", args=(self.pk,))

def get_draft_url(self):
return self.get_absolute_url()

def get_public_url(self):
return '/public/view/'

def set_static_url(self, request):
language = get_language_from_request(request)
if self.pk:
Expand Down
2 changes: 2 additions & 0 deletions cms/test_utils/project/placeholderapp/views.py
Expand Up @@ -19,6 +19,8 @@ def _base_detail(request, instance, template_name='detail.html',
context = RequestContext(request)
context['instance'] = instance
context['item_name'] = item_name
if hasattr(request, 'toolbar'):
request.toolbar.set_object(instance)
if template_string:
template = Template(template_string)
return HttpResponse(template.render(context))
Expand Down
1 change: 1 addition & 0 deletions cms/test_utils/project/placeholderapp_urls.py
Expand Up @@ -18,6 +18,7 @@

urlpatterns += i18n_patterns('',
url(r'^detail/(?P<id>[0-9]+)/$', 'cms.test_utils.project.placeholderapp.views.detail_view', name="detail"),
url(r'^detail/(?P<pk>[0-9]+)/$', 'cms.test_utils.project.placeholderapp.views.detail_view', name="example_detail"),
url(r'^detail_multi/(?P<id>[0-9]+)/$', 'cms.test_utils.project.placeholderapp.views.detail_view_multi', name="detail_multi"),
url(r'^', include('cms.urls')),
)
Expand Down
23 changes: 23 additions & 0 deletions cms/tests/toolbar.py
Expand Up @@ -588,6 +588,29 @@ def tearDown(self):
MultilingualExample1.objects.all().delete()
super(EditModelTemplateTagTest, self).tearDown()

def test_markup_toolbar_url_model(self):
superuser = self.get_superuser()
page = create_page('Test', 'col_two.html', 'en', published=True)
ex1 = Example1(char_1="char_1", char_2="char_2", char_3="char_3",
char_4="char_4")
ex1.save()
# object
# check when in draft mode
request = self.get_page_request(page, superuser, edit=True)
response = detail_view(request, ex1.pk)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'href="%s?%s"' % (
ex1.get_public_url(), get_cms_setting('CMS_TOOLBAR_URL__EDIT_OFF')
))
# check when in live mode
request = self.get_page_request(page, superuser, edit=False)
response = detail_view(request, ex1.pk)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'href="%s?%s"' % (
ex1.get_draft_url(), get_cms_setting('CMS_TOOLBAR_URL__EDIT_ON')
))
self.assertNotEqual(ex1.get_draft_url(), ex1.get_public_url())

def test_anon(self):
user = self.get_anon()
page = create_page('Test', 'col_two.html', 'en', published=True)
Expand Down

0 comments on commit d3b6755

Please sign in to comment.