summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2021-02-17 14:08:40 +0100
committerCarlos Garcia Campos <cgarcia@igalia.com>2021-02-17 14:08:40 +0100
commitf7df4e4e1f7314ff309e4d26fcd7f352c33870ef (patch)
tree447b80f3afe518bb8532a0823f61f0d6ed14c4eb
parent31ecf6fc4060aca502f5a6ef4174162ae216ecb7 (diff)
downloadlibsoup-carlosgc/sniff-empty.tar.gz
content-sniffer: empty resources should be considered text/plaincarlosgc/sniff-empty
Instead of application/octet-stream according to the HTML5 spec
-rw-r--r--libsoup/content-sniffer/soup-content-sniffer.c2
-rw-r--r--tests/sniffing-test.c13
2 files changed, 10 insertions, 5 deletions
diff --git a/libsoup/content-sniffer/soup-content-sniffer.c b/libsoup/content-sniffer/soup-content-sniffer.c
index f5a13d18..948dc182 100644
--- a/libsoup/content-sniffer/soup-content-sniffer.c
+++ b/libsoup/content-sniffer/soup-content-sniffer.c
@@ -507,7 +507,7 @@ sniff_unknown (SoupContentSniffer *sniffer, GBytes *buffer,
guint i;
if (resource_length == 0)
- return g_strdup ("application/octet-stream");
+ return g_strdup ("text/plain");
for (i = 0; i < G_N_ELEMENTS (types_table); i++) {
SoupContentSnifferPattern *type_row = &(types_table[i]);
diff --git a/tests/sniffing-test.c b/tests/sniffing-test.c
index 1f2bb911..23e05c1a 100644
--- a/tests/sniffing-test.c
+++ b/tests/sniffing-test.c
@@ -79,11 +79,13 @@ server_callback (SoupServer *server,
}
if (g_str_has_prefix (path, "/unknown/")) {
- char *base_name = g_path_get_basename (path);
+ if (!empty_response) {
+ char *base_name = g_path_get_basename (path);
- response = soup_test_load_resource (base_name, &error);
- g_assert_no_error (error);
- g_free (base_name);
+ response = soup_test_load_resource (base_name, &error);
+ g_assert_no_error (error);
+ g_free (base_name);
+ }
soup_message_headers_append (response_headers,
"Content-Type", "UNKNOWN/unknown");
@@ -439,6 +441,9 @@ main (int argc, char **argv)
g_test_add_data_func ("/sniffing/type/unknown-mbox",
"unknown/mbox => text/plain",
do_sniffing_test);
+ g_test_add_data_func ("/sniffing/type/unknown-empty",
+ "unknown/mbox?empty_response=yes => text/plain",
+ do_sniffing_test);
g_test_add_data_func ("/sniffing/type/unknown-binary",
"unknown/text_binary.txt => application/octet-stream",
do_sniffing_test);