summaryrefslogtreecommitdiffstats
path: root/tests/users/views
diff options
context:
space:
mode:
Diffstat (limited to 'tests/users/views')
-rw-r--r--tests/users/views/test_domains.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/users/views/test_domains.py b/tests/users/views/test_domains.py
new file mode 100644
index 0000000..13d4b11
--- /dev/null
+++ b/tests/users/views/test_domains.py
@@ -0,0 +1,40 @@
+import pytest
+from django.core.exceptions import ValidationError
+
+from users.views.admin.domains import DomainValidator
+
+VALID_DOMAINS = [
+ "takahe.social",
+ "subdomain.takahe.social",
+ "another.subdomain.takahe.social",
+ "jointakahe.org",
+ "xn--c6h.com",
+ "takahe.xn--social",
+ "example.com",
+ "www.example.com",
+ "example.co.uk",
+]
+
+INVALID_DOMAINS = [
+ "example.c",
+ "example,com",
+ "example,com.com",
+ "example",
+ ".com",
+ "example.com/example",
+ "-example.com",
+ "example-.com",
+ "example.com-",
+ "https://example.com",
+]
+
+
+@pytest.mark.parametrize("domain", VALID_DOMAINS)
+def test_domain_validation_accepts_valid_domains(domain):
+ DomainValidator()(domain)
+
+
+@pytest.mark.parametrize("domain", INVALID_DOMAINS)
+def test_domain_validation_raises_exception_for_invalid_domains(domain):
+ with pytest.raises(ValidationError):
+ DomainValidator()(domain)