|
@@ -30,10 +30,14 @@ import mock
|
|
|
# Django imports.
|
|
|
from django.template import Context, Template, TemplateSyntaxError
|
|
|
from django.test import TestCase
|
|
|
from django.urls import reverse
|
|
|
|
|
|
# Application imports
|
|
|
from conntrackt.templatetags.conntrackt_tags import html_link, active_link, current_url_equals
|
|
|
|
|
|
# Test imports.
|
|
|
from .helpers import create_get_request
|
|
|
|
|
|
|
|
|
@mock.patch('conntrackt.templatetags.conntrackt_tags.urls.reverse')
|
|
|
class HtmlLinkTest(TestCase):
|
|
@@ -187,3 +191,59 @@ class HtmlLinkTest(TestCase):
|
|
|
)
|
|
|
|
|
|
self.assertEqual(link, '<a href="/my/url?MyGetParameter=</a>" class="my</a>_class" title="my</a>_title" id="my</a>_id">My </a> link</a>')
|
|
|
|
|
|
|
|
|
class CurrentUrlEqualsTest(TestCase):
|
|
|
|
|
|
def get_context_for_view(self, view, *args, **kwargs):
|
|
|
"""
|
|
|
Returns a Context instance where the request path has been
|
|
|
constructed using the passed-in view (or view name), and view
|
|
|
positional/keyword arguments.
|
|
|
|
|
|
Arguments:
|
|
|
|
|
|
view
|
|
|
View function or name for request object.
|
|
|
|
|
|
args
|
|
|
Positional arguments to pass into the view.
|
|
|
|
|
|
kwargs
|
|
|
Keyword arguments to pass into the view.
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
django.template.Context instance with request.
|
|
|
"""
|
|
|
request = create_get_request(reverse(view, args=args, kwargs=kwargs))
|
|
|
context = Context({'request': request})
|
|
|
|
|
|
return context
|
|
|
|
|
|
def test_non_matching_url_returns_false(self):
|
|
|
request = create_get_request("/this/url/does/not/exist")
|
|
|
context = Context({'request': request})
|
|
|
|
|
|
self.assertEqual(current_url_equals(context, 'index'), False)
|
|
|
|
|
|
def test_matching_url_returns_true(self):
|
|
|
context = self.get_context_for_view('project_create')
|
|
|
|
|
|
self.assertEqual(current_url_equals(context, 'project_create'), True)
|
|
|
|
|
|
def test_matching_url_with_different_args_returns_false(self):
|
|
|
context = self.get_context_for_view('project', 1)
|
|
|
|
|
|
self.assertEqual(current_url_equals(context, 'project', 2), False)
|
|
|
|
|
|
def test_matching_url_with_different_kwargs_returns_false(self):
|
|
|
context = self.get_context_for_view('project', pk=1)
|
|
|
|
|
|
self.assertEqual(current_url_equals(context, 'project', pk=2), False)
|
|
|
|
|
|
def test_matching_url_with_GET_parameters_returns_true(self):
|
|
|
request = create_get_request(reverse('project', kwargs={'pk': 1}) + '?my_get_param=10')
|
|
|
context = Context({'request': request})
|
|
|
|
|
|
self.assertEqual(current_url_equals(context, 'project', pk=1), True)
|