~ubuntu-branches/ubuntu/maverick/transmission/maverick

« back to all changes in this revision

Viewing changes to third-party/libevent/test/regress_http.c

  • Committer: Bazaar Package Importer
  • Author(s): Krzysztof Klimonda
  • Date: 2009-05-22 21:57:30 UTC
  • mfrom: (1.2.2 upstream)
  • mto: (2.1.18 sid) (1.3.8 upstream)
  • mto: This revision was merged to the branch mainline in revision 36.
  • Revision ID: james.westby@ubuntu.com-20090522215730-ly5kgv5aw9ig2u82
Tags: upstream-1.61
ImportĀ upstreamĀ versionĀ 1.61

Show diffs side-by-side

added added

removed removed

Lines of Context:
995
995
        
996
996
        if (evhttp_add_header(&headers, "One\r", "Two") != -1)
997
997
                goto fail;
998
 
 
 
998
        if (evhttp_add_header(&headers, "One", "Two") != 0)
 
999
                goto fail;
 
1000
        if (evhttp_add_header(&headers, "One", "Two\r\n Three") != 0)
 
1001
                goto fail;
 
1002
        if (evhttp_add_header(&headers, "One\r", "Two") != -1)
 
1003
                goto fail;
999
1004
        if (evhttp_add_header(&headers, "One\n", "Two") != -1)
1000
1005
                goto fail;
1001
 
 
1002
1006
        if (evhttp_add_header(&headers, "One", "Two\r") != -1)
1003
1007
                goto fail;
1004
 
 
1005
1008
        if (evhttp_add_header(&headers, "One", "Two\n") != -1)
1006
1009
                goto fail;
1007
1010
 
1014
1017
        exit(1);
1015
1018
}
1016
1019
 
 
1020
static int validate_header(
 
1021
        const struct evkeyvalq* headers,
 
1022
        const char *key, const char *value) 
 
1023
{
 
1024
        const char *real_val = evhttp_find_header(headers, key);
 
1025
        if (real_val == NULL)
 
1026
                return (-1);
 
1027
        if (strcmp(real_val, value) != 0)
 
1028
                return (-1);
 
1029
        return (0);
 
1030
}
 
1031
 
 
1032
static void
 
1033
http_parse_query_test(void)
 
1034
{
 
1035
        struct evkeyvalq headers;
 
1036
 
 
1037
        fprintf(stdout, "Testing HTTP query parsing: ");
 
1038
 
 
1039
        TAILQ_INIT(&headers);
 
1040
        
 
1041
        evhttp_parse_query("http://www.test.com/?q=test", &headers);
 
1042
        if (validate_header(&headers, "q", "test") != 0)
 
1043
                goto fail;
 
1044
        evhttp_clear_headers(&headers);
 
1045
 
 
1046
        evhttp_parse_query("http://www.test.com/?q=test&foo=bar", &headers);
 
1047
        if (validate_header(&headers, "q", "test") != 0)
 
1048
                goto fail;
 
1049
        if (validate_header(&headers, "foo", "bar") != 0)
 
1050
                goto fail;
 
1051
        evhttp_clear_headers(&headers);
 
1052
 
 
1053
        evhttp_parse_query("http://www.test.com/?q=test+foo", &headers);
 
1054
        if (validate_header(&headers, "q", "test foo") != 0)
 
1055
                goto fail;
 
1056
        evhttp_clear_headers(&headers);
 
1057
 
 
1058
        evhttp_parse_query("http://www.test.com/?q=test%0Afoo", &headers);
 
1059
        if (validate_header(&headers, "q", "test\nfoo") != 0)
 
1060
                goto fail;
 
1061
        evhttp_clear_headers(&headers);
 
1062
 
 
1063
        evhttp_parse_query("http://www.test.com/?q=test%0Dfoo", &headers);
 
1064
        if (validate_header(&headers, "q", "test\rfoo") != 0)
 
1065
                goto fail;
 
1066
        evhttp_clear_headers(&headers);
 
1067
 
 
1068
        fprintf(stdout, "OK\n");
 
1069
        return;
 
1070
fail:
 
1071
        fprintf(stdout, "FAILED\n");
 
1072
        exit(1);
 
1073
}
 
1074
 
1017
1075
static void
1018
1076
http_base_test(void)
1019
1077
{
1400
1458
{
1401
1459
        http_base_test();
1402
1460
        http_bad_header_test();
 
1461
        http_parse_query_test();
1403
1462
        http_basic_test();
1404
1463
        http_connection_test(0 /* not-persistent */);
1405
1464
        http_connection_test(1 /* persistent */);