71 lines
2.7 KiB
Python
71 lines
2.7 KiB
Python
"""Tests for header_control middleware."""
|
|
from django.http import HttpResponse, HttpRequest
|
|
from django.test import TestCase
|
|
from header_control import remove_headers_from_response, force_header_for_response
|
|
from header_control.middleware import HeaderControlMiddleware
|
|
|
|
|
|
class TestHeaderControlMiddlewareProcessResponse(TestCase):
|
|
"""Test the `header_control` middleware. """
|
|
def setUp(self):
|
|
super(TestHeaderControlMiddlewareProcessResponse, self).setUp()
|
|
self.middleware = HeaderControlMiddleware()
|
|
|
|
def test_doesnt_barf_if_not_modifying_anything(self):
|
|
fake_request = HttpRequest()
|
|
|
|
fake_response = HttpResponse()
|
|
fake_response['Vary'] = 'Cookie'
|
|
fake_response['Accept-Encoding'] = 'gzip'
|
|
|
|
result = self.middleware.process_response(fake_request, fake_response)
|
|
self.assertEquals('Cookie', result['Vary'])
|
|
self.assertEquals('gzip', result['Accept-Encoding'])
|
|
|
|
def test_doesnt_barf_removing_nonexistent_headers(self):
|
|
fake_request = HttpRequest()
|
|
|
|
fake_response = HttpResponse()
|
|
fake_response['Vary'] = 'Cookie'
|
|
fake_response['Accept-Encoding'] = 'gzip'
|
|
remove_headers_from_response(fake_response, 'Vary', 'FakeHeaderWeeee')
|
|
|
|
result = self.middleware.process_response(fake_request, fake_response)
|
|
self.assertNotIn('Vary', result)
|
|
self.assertEquals('gzip', result['Accept-Encoding'])
|
|
|
|
def test_removes_intended_headers(self):
|
|
fake_request = HttpRequest()
|
|
|
|
fake_response = HttpResponse()
|
|
fake_response['Vary'] = 'Cookie'
|
|
fake_response['Accept-Encoding'] = 'gzip'
|
|
remove_headers_from_response(fake_response, 'Vary')
|
|
|
|
result = self.middleware.process_response(fake_request, fake_response)
|
|
self.assertNotIn('Vary', result)
|
|
self.assertEquals('gzip', result['Accept-Encoding'])
|
|
|
|
def test_forces_intended_header(self):
|
|
fake_request = HttpRequest()
|
|
|
|
fake_response = HttpResponse()
|
|
fake_response['Vary'] = 'Cookie'
|
|
fake_response['Accept-Encoding'] = 'gzip'
|
|
force_header_for_response(fake_response, 'Vary', 'Origin')
|
|
|
|
result = self.middleware.process_response(fake_request, fake_response)
|
|
self.assertEquals('Origin', result['Vary'])
|
|
self.assertEquals('gzip', result['Accept-Encoding'])
|
|
|
|
def test_does_not_mangle_undecorated_response(self):
|
|
fake_request = HttpRequest()
|
|
|
|
fake_response = HttpResponse()
|
|
fake_response['Vary'] = 'Cookie'
|
|
fake_response['Accept-Encoding'] = 'gzip'
|
|
|
|
result = self.middleware.process_response(fake_request, fake_response)
|
|
self.assertEquals('Cookie', result['Vary'])
|
|
self.assertEquals('gzip', result['Accept-Encoding'])
|