diff options
author | Lionel Landwerlin <llandwerlin@gmail.com> | 2014-01-16 10:52:43 +0000 |
---|---|---|
committer | Lionel Landwerlin <llandwerlin@gmail.com> | 2014-01-19 18:28:10 +0000 |
commit | 1b2a752663896bec558049fc050504517b0d1743 (patch) | |
tree | 694c3561aef751372f851ad60bf78c1b66ff7f81 | |
parent | aea9575bf50ff3899ddb4d9763db0313a6377710 (diff) | |
download | libsoup-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.c | 25 |
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; } |