summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2014-01-16 10:52:43 +0000
committerLionel Landwerlin <llandwerlin@gmail.com>2014-01-19 18:28:10 +0000
commit1b2a752663896bec558049fc050504517b0d1743 (patch)
tree694c3561aef751372f851ad60bf78c1b66ff7f81
parentaea9575bf50ff3899ddb4d9763db0313a6377710 (diff)
downloadlibsoup-1b2a752663896bec558049fc050504517b0d1743.tar.gz
tests: headers: allow checks on non present headers fields
https://bugzilla.gnome.org/show_bug.cgi?id=722341
-rw-r--r--tests/header-parsing.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/tests/header-parsing.c b/tests/header-parsing.c
index 52b2279b..b02bc980 100644
--- a/tests/header-parsing.c
+++ b/tests/header-parsing.c
@@ -455,7 +455,7 @@ static struct ResponseTest {
SoupHTTPVersion version;
guint status_code;
const char *reason_phrase;
- Header headers[4];
+ Header headers[10];
} resptests[] = {
/***********************/
/*** VALID RESPONSES ***/
@@ -521,6 +521,19 @@ static struct ResponseTest {
}
},
+ /* Tests from Cockpit */
+
+ { "Response w/ 3 headers, check case-insensitivity",
+ "HTTP/1.0 200 ok\r\nHeader1: value3\r\nHeader2: field\r\nHead3: Another \r\n", -1,
+ SOUP_HTTP_1_0, SOUP_STATUS_OK, "ok",
+ { { "header1", "value3" },
+ { "Header2", "field" },
+ { "hEAD3", "Another" },
+ { "Something else", NULL },
+ { NULL }
+ }
+ },
+
/*****************************/
/*** RECOVERABLE RESPONSES ***/
/*****************************/
@@ -732,7 +745,15 @@ check_headers (Header *headers, SoupMessageHeaders *hdrs)
break;
}
value = soup_message_headers_get_list (hdrs, headers[i].name);
- if (!value || strcmp (value, headers[i].value) != 0) {
+ if (g_strcmp0 (value, headers[i].value) != 0) {
+ ok = FALSE;
+ break;
+ }
+ }
+ /* If we have remaining fields to check, they should return NULL */
+ for (; headers[i].name; i++) {
+ value = soup_message_headers_get_list (hdrs, headers[i].name);
+ if (value) {
ok = FALSE;
break;
}