Skip to content
Snippets Groups Projects
Commit 87597b27 authored by HeJ's avatar HeJ
Browse files

core: test resolve_internal_url() as used in navigation & wiki

parent 4982e4b6
No related branches found
No related tags found
No related merge requests found
import uuid import uuid
from datetime import timedelta from datetime import timedelta
from django.conf import settings
from django.test import TestCase from django.test import TestCase
from django.urls import reverse
from django.utils.timezone import now
from core.utils import GitRepo, mail2uuid, mask_url, scheme_and_netloc_from_url, str2timedelta from core.models import Assembly, Conference, ConferenceMember, Event, PlatformUser, Room
from core.utils import GitRepo, mail2uuid, mask_url, resolve_internal_url, scheme_and_netloc_from_url, str2timedelta
class UtilsTests(TestCase): class UtilsTests(TestCase):
...@@ -47,6 +51,46 @@ class UtilsTests(TestCase): ...@@ -47,6 +51,46 @@ class UtilsTests(TestCase):
self.assertEqual(expected_uuid, mail2uuid('hub@cccv.de')) self.assertEqual(expected_uuid, mail2uuid('hub@cccv.de'))
class InternalUrlTests(TestCase):
def setUp(self):
self.conference1 = Conference(slug='foo', name='Foo Conference', start=now() - timedelta(days=1), end=now() + timedelta(days=1))
self.conference1.save()
self.user = PlatformUser(username='bernd')
self.user.save()
ConferenceMember(conference=self.conference1, user=self.user).save()
self.assembly1a = Assembly(conference=self.conference1, slug='fnord', name='Fnord Assembly', is_official=True)
self.assembly1a.save()
self.room1a = Room(conference=self.conference1, assembly=self.assembly1a, name='Saal 1', room_type=Room.RoomType.LECTURE_HALL)
self.room1a.save()
self.valid_event = {
'conference': self.conference1,
'assembly': self.assembly1a,
'name': 'testEvent',
'slug': 'testEvent',
'kind': Event.Kind.ASSEMBLY,
'room': self.room1a,
'schedule_start': now(),
'schedule_duration': timedelta(hours=1),
'is_public': True,
}
def test_resolve_internal_url(self):
base_url = settings.PLAINUI_BASE_URL
checks = [
('https://example.com/foo?bar=baz', 'https://example.com/foo?bar=baz'),
('conference://assemblies', base_url + reverse('plainui:assemblies')),
('conference://assemblies?foo=bar', base_url + reverse('plainui:assemblies') + '?foo=bar'),
('assembly://fnord', base_url + reverse('plainui:assembly', kwargs={'assembly_slug': 'fnord'})),
]
for check in checks:
self.assertEqual(check[1], resolve_internal_url(check[0]))
class GitRepoOfflineTests(TestCase): class GitRepoOfflineTests(TestCase):
def test_invalid_url_local_path(self): def test_invalid_url_local_path(self):
with self.assertRaisesMessage(ValueError, 'Invalid protocol file'): with self.assertRaisesMessage(ValueError, 'Invalid protocol file'):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment