mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-05-26 15:44:01 +00:00
Add tests for can_choose_page helper
This commit is contained in:
parent
0bd3cbfc91
commit
62f5a0a4a1
1 changed files with 35 additions and 1 deletions
|
|
@ -1,12 +1,14 @@
|
|||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import TestCase
|
||||
from django.utils.http import urlencode
|
||||
|
||||
from wagtail.tests.testapp.models import EventIndex, EventPage, SimplePage, SingleEventPage
|
||||
from wagtail.tests.utils import WagtailTestUtils
|
||||
from wagtail.wagtailcore.models import Page
|
||||
from wagtail.wagtailadmin.views.chooser import can_choose_page
|
||||
from wagtail.wagtailcore.models import Page, UserPagePermissionsProxy
|
||||
|
||||
|
||||
class TestChooserBrowse(TestCase, WagtailTestUtils):
|
||||
|
|
@ -554,3 +556,35 @@ class TestChooserEmailLink(TestCase, WagtailTestUtils):
|
|||
self.assertContains(response, '"title": "new example"')
|
||||
# link text has changed, so tell the caller to use it
|
||||
self.assertContains(response, '"prefer_this_title_as_link_text": true')
|
||||
|
||||
|
||||
class TestCanChoosePage(TestCase, WagtailTestUtils):
|
||||
fixtures = ['test.json']
|
||||
|
||||
def setUp(self):
|
||||
self.user = self.login()
|
||||
self.permission_proxy = UserPagePermissionsProxy(self.user)
|
||||
self.desired_classes = (Page, )
|
||||
|
||||
def test_can_choose_page(self):
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
result = can_choose_page(homepage, self.permission_proxy, self.desired_classes)
|
||||
self.assertTrue(result)
|
||||
|
||||
def test_with_user_no_permission(self):
|
||||
homepage = Page.objects.get(url_path='/home/')
|
||||
# event editor does not have permissions on homepage
|
||||
event_editor = get_user_model().objects.get(username='eventeditor')
|
||||
permission_proxy = UserPagePermissionsProxy(event_editor)
|
||||
result = can_choose_page(homepage, permission_proxy, self.desired_classes, user_perm='copy_to')
|
||||
self.assertFalse(result)
|
||||
|
||||
def test_with_can_choose_root(self):
|
||||
root = Page.objects.get(url_path='/')
|
||||
result = can_choose_page(root, self.permission_proxy, self.desired_classes, can_choose_root=True)
|
||||
self.assertTrue(result)
|
||||
|
||||
def test_with_can_not_choose_root(self):
|
||||
root = Page.objects.get(url_path='/')
|
||||
result = can_choose_page(root, self.permission_proxy, self.desired_classes, can_choose_root=False)
|
||||
self.assertFalse(result)
|
||||
|
|
|
|||
Loading…
Reference in a new issue