diff --git a/src/http.c b/src/http.c index 347a2491..0d652d63 100644 --- a/src/http.c +++ b/src/http.c @@ -5048,6 +5048,38 @@ test_find_key_value (void) return NULL; } +const char * +test_has_key (void) +{ + static const char *header_data = "key1=val2;token1;xyz; token2;xyz;token3 ;"\ + "xyz; token4 ;xyz; token5 "; + struct + { + const char *token; + bool result; + } test_array[] = + { + { "key1=val2", true }, + { "token1", true }, + { "token2", true }, + { "token3", true }, + { "token4", true }, + { "token5", true }, + { "token6", false }, + { "oken1", false }, + { "poken1", false }, + { "key1=val2", true } + }; + size_t i; + + for (i = 0; i < countof (test_array); ++i) + mu_assert ("test_has_key: wrong result", + has_key (header_data, header_data + strlen (header_data), + test_array[i].token) == test_array[i].result); + + return NULL; +} + const char * test_parse_content_disposition(void) { diff --git a/src/test.c b/src/test.c index e2d3ac2e..8ba40c9d 100644 --- a/src/test.c +++ b/src/test.c @@ -50,6 +50,7 @@ all_tests(void) { #ifdef HAVE_METALINK mu_run_test (test_find_key_value); + mu_run_test (test_has_key); #endif mu_run_test (test_parse_content_disposition); mu_run_test (test_subdir_p); diff --git a/src/test.h b/src/test.h index 1eb14461..a8ccaf96 100644 --- a/src/test.h +++ b/src/test.h @@ -44,6 +44,7 @@ do { \ } while (0) +const char *test_has_key (void); const char *test_find_key_value (void); const char *test_parse_content_disposition(void); const char *test_commands_sorted(void);