diff options
Diffstat (limited to 'test/test_serf.h')
-rw-r--r-- | test/test_serf.h | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/test/test_serf.h b/test/test_serf.h new file mode 100644 index 0000000..454dfcc --- /dev/null +++ b/test/test_serf.h @@ -0,0 +1,126 @@ +/* Copyright 2002-2007 Justin Erenkrantz and Greg Stein + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TEST_SERF_H +#define TEST_SERF_H + +#include "CuTest.h" + +#include <apr.h> +#include <apr_pools.h> +#include <apr_uri.h> + +#include "serf.h" +#include "server/test_server.h" + +/** These macros are provided by APR itself from version 1.3. + * Definitions are provided here for when using older versions of APR. + */ + +/** index into an apr_array_header_t */ +#ifndef APR_ARRAY_IDX +#define APR_ARRAY_IDX(ary,i,type) (((type *)(ary)->elts)[i]) +#endif + +/** easier array-pushing syntax */ +#ifndef APR_ARRAY_PUSH +#define APR_ARRAY_PUSH(ary,type) (*((type *)apr_array_push(ary))) +#endif + +/* CuTest declarations */ +CuSuite *getsuite(void); + +CuSuite *test_context(void); +CuSuite *test_buckets(void); +CuSuite *test_ssl(void); + +/* Test setup declarations */ + +#define CRLF "\r\n" + +#define CHUNKED_REQUEST(len, body)\ + "GET / HTTP/1.1" CRLF\ + "Host: localhost:12345" CRLF\ + "Transfer-Encoding: chunked" CRLF\ + CRLF\ + #len CRLF\ + body CRLF\ + "0" CRLF\ + CRLF + +#define CHUNKED_RESPONSE(len, body)\ + "HTTP/1.1 200 OK" CRLF\ + "Transfer-Encoding: chunked" CRLF\ + CRLF\ + #len CRLF\ + body CRLF\ + "0" CRLF\ + CRLF + +#define CHUNKED_EMPTY_RESPONSE\ + "HTTP/1.1 200 OK" CRLF\ + "Transfer-Encoding: chunked" CRLF\ + CRLF\ + "0" CRLF\ + CRLF + +typedef struct { + /* Pool for resource allocation. */ + apr_pool_t *pool; + + serf_context_t *context; + serf_connection_t *connection; + serf_bucket_alloc_t *bkt_alloc; + + serv_ctx_t *serv_ctx; + apr_sockaddr_t *serv_addr; + + serv_ctx_t *proxy_ctx; + apr_sockaddr_t *proxy_addr; + + /* An extra baton which can be freely used by tests. */ + void *user_baton; + +} test_baton_t; + +apr_status_t test_server_setup(test_baton_t **tb_p, + test_server_message_t *message_list, + apr_size_t message_count, + test_server_action_t *action_list, + apr_size_t action_count, + apr_int32_t options, + serf_connection_setup_t conn_setup, + apr_pool_t *pool); + +apr_status_t test_server_proxy_setup( + test_baton_t **tb_p, + test_server_message_t *serv_message_list, + apr_size_t serv_message_count, + test_server_action_t *serv_action_list, + apr_size_t serv_action_count, + test_server_message_t *proxy_message_list, + apr_size_t proxy_message_count, + test_server_action_t *proxy_action_list, + apr_size_t proxy_action_count, + apr_int32_t options, + serf_connection_setup_t conn_setup, + apr_pool_t *pool); + +apr_status_t test_server_teardown(test_baton_t *tb, apr_pool_t *pool); + +apr_pool_t *test_setup(void); +void test_teardown(apr_pool_t *test_pool); + +#endif /* TEST_SERF_H */ |