summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMaxime Lorant <maxime.lorant@gmail.com>2015-08-23 20:54:15 +0200
committerTim Graham <timograham@gmail.com>2015-08-24 19:35:49 -0400
commit4ce433e811763f29c32e0553fe1e0070fd14c6a2 (patch)
tree21bf711c2c7f5fe80479dd7edb4e3c52bd1a142f /tests
parentd3fdaf907db6a5be4d0391532d7e65688c19e851 (diff)
Fixed #25302 -- Prevented BrokenLinkEmailsMiddleware from reporting 404s when Referer = URL.
Diffstat (limited to 'tests')
-rw-r--r--tests/middleware/tests.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py
index 21f45419c0..6e1bbaf772 100644
--- a/tests/middleware/tests.py
+++ b/tests/middleware/tests.py
@@ -375,6 +375,24 @@ class BrokenLinkEmailsMiddlewareTest(SimpleTestCase):
SubclassedMiddleware().process_response(self.req, self.resp)
self.assertEqual(len(mail.outbox), 1)
+ def test_referer_equal_to_requested_url(self):
+ """
+ Some bots set the referer to the current URL to avoid being blocked by
+ an referer check (#25302).
+ """
+ self.req.META['HTTP_REFERER'] = self.req.path
+ BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
+ self.assertEqual(len(mail.outbox), 0)
+ # URL with scheme and domain should also be ignored
+ self.req.META['HTTP_REFERER'] = 'http://testserver%s' % self.req.path
+ BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
+ self.assertEqual(len(mail.outbox), 0)
+
+ def test_referer_equal_to_requested_url_on_another_domain(self):
+ self.req.META['HTTP_REFERER'] = 'http://anotherserver%s' % self.req.path
+ BrokenLinkEmailsMiddleware().process_response(self.req, self.resp)
+ self.assertEqual(len(mail.outbox), 1)
+
@override_settings(ROOT_URLCONF='middleware.cond_get_urls')
class ConditionalGetMiddlewareTest(SimpleTestCase):