summaryrefslogtreecommitdiff
path: root/tests/utils_tests/test_http.py
diff options
context:
space:
mode:
authorAlex Vandiver <alex@chmrr.net>2022-11-30 15:09:49 -0500
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-12-05 13:08:00 +0100
commitcbce427c17b66faec7ced0639346dc6905a498f9 (patch)
tree894b0990050dcf94c36010838717dd96351fbcc5 /tests/utils_tests/test_http.py
parent3d3e955efaaeb4cc968e522592c5c1e47bdc72c4 (diff)
Fixed #34194 -- Added django.utils.http.content_disposition_header().
Diffstat (limited to 'tests/utils_tests/test_http.py')
-rw-r--r--tests/utils_tests/test_http.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/utils_tests/test_http.py b/tests/utils_tests/test_http.py
index add9625685..2290fe85fb 100644
--- a/tests/utils_tests/test_http.py
+++ b/tests/utils_tests/test_http.py
@@ -7,6 +7,7 @@ from django.test import SimpleTestCase
from django.utils.datastructures import MultiValueDict
from django.utils.http import (
base36_to_int,
+ content_disposition_header,
escape_leading_slashes,
http_date,
int_to_base36,
@@ -511,3 +512,28 @@ class ParseHeaderParameterTests(unittest.TestCase):
for raw_line, expected_title in test_data:
parsed = parse_header_parameters(raw_line)
self.assertEqual(parsed[1]["title"], expected_title)
+
+
+class ContentDispositionHeaderTests(unittest.TestCase):
+ def test_basic(self):
+ tests = (
+ ((False, None), None),
+ ((False, "example"), 'inline; filename="example"'),
+ ((True, None), "attachment"),
+ ((True, "example"), 'attachment; filename="example"'),
+ (
+ (True, '"example" file\\name'),
+ 'attachment; filename="\\"example\\" file\\\\name"',
+ ),
+ ((True, "espécimen"), "attachment; filename*=utf-8''esp%C3%A9cimen"),
+ (
+ (True, '"espécimen" filename'),
+ "attachment; filename*=utf-8''%22esp%C3%A9cimen%22%20filename",
+ ),
+ )
+
+ for (is_attachment, filename), expected in tests:
+ with self.subTest(is_attachment=is_attachment, filename=filename):
+ self.assertEqual(
+ content_disposition_header(is_attachment, filename), expected
+ )