@@ -34,13 +34,15 @@ def test_get__no_email(self, client):
34
34
35
35
class TestEmailClickView :
36
36
@pytest .mark .django_db
37
- def test_get__no_redirect_url (self , client ):
37
+ def test_get__no_redirect_url (self , client , caplog ):
38
38
msg = baker .make ("emark.Send" )
39
39
response = client .get (reverse ("emark:email-click" , kwargs = {"pk" : msg .pk }))
40
40
assert response .status_code == 400
41
+ assert response .content == b"Missing url parameter"
42
+ assert "Missing url parameter" in caplog .text
41
43
42
44
@pytest .mark .django_db
43
- def test_get__unsafe_redirect_url (self , client , live_server ):
45
+ def test_get__unsafe_redirect_url (self , client , live_server , caplog ):
44
46
msg = baker .make ("emark.Send" )
45
47
redirect_url = "http://external-domain.com/?utm_source=foo"
46
48
@@ -49,6 +51,8 @@ def test_get__unsafe_redirect_url(self, client, live_server):
49
51
url = f"{ url } ?{ urlencode ({'url' : redirect_url })} "
50
52
response = client .get (url )
51
53
assert response .status_code == 400
54
+ assert response .content == b"Malformed url parameter"
55
+ assert "Malformed URL parameter" in caplog .text
52
56
53
57
@pytest .mark .django_db
54
58
def test_get__different_schema_redirect_url (self , client , live_server ):
@@ -73,6 +77,18 @@ def test_get__subdomain_redirect_url(self, client, live_server, settings):
73
77
response = client .get (url )
74
78
assert response .status_code == 302
75
79
80
+ @pytest .mark .django_db
81
+ def test_get__absolute_path (self , client , live_server , settings ):
82
+ settings .ALLOWED_HOSTS = ["testserver" , ".testserver" ]
83
+ msg = baker .make ("emark.Send" )
84
+ redirect_url = "/some/path?utm_source=foo"
85
+
86
+ url = reverse ("emark:email-click" , kwargs = {"pk" : msg .pk })
87
+
88
+ url = f"{ url } ?{ urlencode ({'url' : redirect_url })} "
89
+ response = client .get (url )
90
+ assert response .status_code == 302
91
+
76
92
@pytest .mark .django_db
77
93
def test_get__subdomain_debug (self , client , live_server , settings ):
78
94
settings .DEBUG = True
0 commit comments