kopia lustrzana https://gitlab.com/marnanel/chapeau
64 wiersze
2.2 KiB
Python
64 wiersze
2.2 KiB
Python
from django.test import TestCase, Client
|
|
from . import create_local_person
|
|
from django.conf import settings
|
|
from unittest import skip
|
|
import logging
|
|
|
|
MIME_TYPE = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'
|
|
|
|
@skip("The header middleware is causing problems with testing at present")
|
|
class TestHeaders(TestCase):
|
|
|
|
def setUp(self):
|
|
settings.KEPI['LOCAL_OBJECT_HOSTNAME'] = 'testserver'
|
|
self.alice = create_local_person('alice')
|
|
self.client = Client()
|
|
self.alice_url = settings.KEPI['USER_URL_FORMAT'] % {
|
|
'username': 'alice',
|
|
'hostname': settings.KEPI['LOCAL_OBJECT_HOSTNAME'],
|
|
}
|
|
|
|
def test_link(self):
|
|
|
|
response = self.client.get(self.alice_url,
|
|
HTTP_ACCEPT = MIME_TYPE,
|
|
)
|
|
|
|
links = response['Link'].split(', ')
|
|
|
|
self.assertEqual(
|
|
links,
|
|
[
|
|
'<https://testserver/.well-known/webfinger?resource='+\
|
|
'acct%3Aalice%40testserver>; rel="lrdd"; '+\
|
|
'type="application/xrd+xml"',
|
|
|
|
'<https://testserver/users/alice/feed>; '+\
|
|
'rel="alternate"; type="application/atom+xml"',
|
|
|
|
'<https://testserver/users/alice>; '+\
|
|
'rel="alternate"; type="application/activity+json"',
|
|
])
|
|
|
|
def test_standard_headers(self):
|
|
|
|
response = self.client.get(self.alice_url,
|
|
HTTP_ACCEPT = MIME_TYPE,
|
|
)
|
|
|
|
for field, value in [
|
|
('X-Content-Type-Options', 'nosniff'),
|
|
('X-XSS-Protection', '1; mode=block'),
|
|
('Vary', 'Accept, Accept-Encoding, Origin'),
|
|
('Cache-Control', 'max-age=180, public'),
|
|
('Transfer-Encoding', 'chunked'),
|
|
('Strict-Transport-Security', 'max-age=31536000; includeSubDomains; preload'),
|
|
('Referrer-Policy', 'no-referrer-when-downgrade'),
|
|
('X-Frame-Options', 'DENY'),
|
|
]:
|
|
|
|
self.assertEqual(
|
|
response[field],
|
|
value,
|
|
)
|