summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/sites_tests/tests.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/sites_tests/tests.py b/tests/sites_tests/tests.py
index 563ee6a681..7d5dcf10bb 100644
--- a/tests/sites_tests/tests.py
+++ b/tests/sites_tests/tests.py
@@ -86,6 +86,41 @@ class SitesFrameworkTests(TestCase):
site = get_current_site(request)
self.assertEqual(site.name, "example.com")
+ @override_settings(SITE_ID='', ALLOWED_HOSTS=['example.com', 'example.net'])
+ def test_get_current_site_no_site_id_and_handle_port_fallback(self):
+ request = HttpRequest()
+ s1 = self.site
+ s2 = Site.objects.create(domain='example.com:80', name='example.com:80')
+
+ # Host header without port
+ request.META = {'HTTP_HOST': 'example.com'}
+ site = get_current_site(request)
+ self.assertEqual(site, s1)
+
+ # Host header with port - match, no fallback without port
+ request.META = {'HTTP_HOST': 'example.com:80'}
+ site = get_current_site(request)
+ self.assertEqual(site, s2)
+
+ # Host header with port - no match, fallback without port
+ request.META = {'HTTP_HOST': 'example.com:81'}
+ site = get_current_site(request)
+ self.assertEqual(site, s1)
+
+ # Host header with non-matching domain
+ request.META = {'HTTP_HOST': 'example.net'}
+ self.assertRaises(ObjectDoesNotExist, get_current_site, request)
+
+ # Ensure domain for RequestSite always matches host header
+ with self.modify_settings(INSTALLED_APPS={'remove': 'django.contrib.sites'}):
+ request.META = {'HTTP_HOST': 'example.com'}
+ site = get_current_site(request)
+ self.assertEqual(site.name, 'example.com')
+
+ request.META = {'HTTP_HOST': 'example.com:80'}
+ site = get_current_site(request)
+ self.assertEqual(site.name, 'example.com:80')
+
def test_domain_name_with_whitespaces(self):
# Regression for #17320
# Domain names are not allowed contain whitespace characters