END_TEST START_TEST(cas_merge_dir_config_test) { cas_dir_cfg *base = cas_create_dir_config(request->pool, NULL); cas_dir_cfg *add = cas_create_dir_config(request->pool, NULL); add->CASCookie = "XYZ"; cas_dir_cfg *merged = (cas_dir_cfg *) cas_merge_dir_config(request->pool, (void *)base, (void *)add); fail_unless(strcmp(merged->CASCookie, "XYZ") == 0); }
END_TEST void core_setup(void) { const unsigned int kIdx = 0; const unsigned int kEls = kIdx + 1; cas_cfg *cfg = NULL; cas_dir_cfg *d_cfg = NULL; apr_uri_t login; request = (request_rec *) malloc(sizeof(request_rec)); apr_pool_create(&pool, NULL); request->pool = pool; /* set up the request */ request->headers_in = apr_table_make(request->pool, 0); request->headers_out = apr_table_make(request->pool, 0); request->err_headers_out = apr_table_make(request->pool, 0); apr_table_set(request->headers_in, "Host", "foo.example.com"); apr_table_set(request->headers_in, "CAS_foo", "foo-value"); apr_table_set(request->headers_in, "Cookie", "foo=bar; " CAS_DEFAULT_COOKIE "=0123456789abcdef; baz=zot"); request->server = apr_pcalloc(request->pool, sizeof(struct server_rec)); request->connection = apr_pcalloc(request->pool, sizeof(struct conn_rec)); request->connection->local_addr = apr_pcalloc(request->pool, sizeof(apr_sockaddr_t)); apr_pool_userdata_set("https", "scheme", NULL, request->pool); request->server->server_hostname = "foo.example.com"; request->connection->local_addr->port = 80; request->unparsed_uri = "/foo?bar=baz&zot=qux"; request->uri = "/foo"; request->args = "bar=baz&zot=qux"; apr_uri_parse(request->pool, "http://foo.example.com/foo?bar=baz&zot=qux", &request->parsed_uri); /* set up the per server, and per directory configs */ auth_cas_module.module_index = kIdx; cfg = cas_create_server_config(request->pool, request->server); cfg->CASDebug = TRUE; memset(&login, 0, sizeof(login)); login.scheme = "https"; login.hostname = "login.example.com"; login.path = "/cas/login"; login.port = 0; memcpy(&cfg->CASLoginURL, &login, sizeof(apr_uri_t)); d_cfg = cas_create_dir_config(request->pool, NULL); request->request_config = apr_pcalloc(request->pool, sizeof(ap_conf_vector_t *)*kEls); request->server->module_config = apr_pcalloc(request->pool, sizeof(ap_conf_vector_t *)*kEls); request->per_dir_config = apr_pcalloc(request->pool, sizeof(ap_conf_vector_t *)*kEls); ap_set_module_config(request->server->module_config, &auth_cas_module, cfg); ap_set_module_config(request->per_dir_config, &auth_cas_module, d_cfg); }