summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auth-test.c16
-rw-r--r--tests/cache-test.c3
-rw-r--r--tests/chunk-io-test.c6
-rw-r--r--tests/chunk-test.c13
-rw-r--r--tests/coding-test.c5
-rw-r--r--tests/connection-test.c13
-rw-r--r--tests/context-test.c10
-rw-r--r--tests/continue-test.c49
-rw-r--r--tests/cookies-test.c11
-rw-r--r--tests/forms-test.c18
-rw-r--r--tests/misc-test.c54
-rw-r--r--tests/multipart-test.c5
-rw-r--r--tests/no-ssl-test.c17
-rw-r--r--tests/ntlm-test.c11
-rw-r--r--tests/proxy-test.c5
-rw-r--r--tests/range-test.c14
-rw-r--r--tests/redirect-test.c21
-rw-r--r--tests/requester-test.c54
-rw-r--r--tests/server-auth-test.c9
-rw-r--r--tests/server-test.c42
-rw-r--r--tests/session-test.c41
-rw-r--r--tests/sniffing-test.c5
-rw-r--r--tests/ssl-test.c21
-rw-r--r--tests/streaming-test.c7
-rw-r--r--tests/test-utils.c224
-rw-r--r--tests/test-utils.h13
-rw-r--r--tests/timeout-test.c47
-rw-r--r--tests/xmlrpc-server-test.c14
28 files changed, 427 insertions, 321 deletions
diff --git a/tests/auth-test.c b/tests/auth-test.c
index 992e3d5e..3efd0667 100644
--- a/tests/auth-test.c
+++ b/tests/auth-test.c
@@ -886,12 +886,10 @@ do_select_auth_test (void)
* side of this scenario correctly, because we test it against
* curl in server-auth-test.
*/
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL,
server_callback, NULL, NULL);
-
- uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (uri, soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
basic_auth_domain = soup_auth_domain_basic_new (
SOUP_AUTH_DOMAIN_REALM, "auth-test",
@@ -1036,12 +1034,12 @@ do_auth_close_test (void)
debug_printf (1, "\nTesting auth when server times out connection:\n");
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
soup_server_add_handler (server, NULL,
server_callback, NULL, NULL);
- uri = soup_uri_new ("http://127.0.0.1/close");
- soup_uri_set_port (uri, soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ soup_uri_set_path (uri, "/close");
basic_auth_domain = soup_auth_domain_basic_new (
SOUP_AUTH_DOMAIN_REALM, "auth-test",
@@ -1160,9 +1158,7 @@ do_disappearing_auth_test (void)
server = soup_test_server_new (FALSE);
soup_server_add_handler (server, NULL,
server_callback, NULL, NULL);
-
- uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (uri, soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
auth_domain = soup_auth_domain_basic_new (
SOUP_AUTH_DOMAIN_REALM, "auth-test",
diff --git a/tests/cache-test.c b/tests/cache-test.c
index a19e9747..8a7a401f 100644
--- a/tests/cache-test.c
+++ b/tests/cache-test.c
@@ -729,8 +729,7 @@ main (int argc, char **argv)
server = soup_test_server_new (TRUE);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
do_basics_test (base_uri);
do_cancel_test (base_uri);
diff --git a/tests/chunk-io-test.c b/tests/chunk-io-test.c
index f1f96b0f..ea1002cf 100644
--- a/tests/chunk-io-test.c
+++ b/tests/chunk-io-test.c
@@ -10,7 +10,6 @@ force_io_streams_init (void)
{
SoupServer *server;
SoupSession *session;
- guint port;
SoupURI *base_uri;
SoupMessage *msg;
@@ -20,10 +19,7 @@ force_io_streams_init (void)
*/
server = soup_test_server_new (TRUE);
- port = soup_server_get_port (server);
-
- base_uri = soup_uri_new ("http://127.0.0.1");
- soup_uri_set_port (base_uri, port);
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
session = soup_test_session_new (SOUP_TYPE_SESSION, NULL);
msg = soup_message_new_from_uri ("POST", base_uri);
diff --git a/tests/chunk-test.c b/tests/chunk-test.c
index ce929565..050deb06 100644
--- a/tests/chunk-test.c
+++ b/tests/chunk-test.c
@@ -506,22 +506,19 @@ main (int argc, char **argv)
{
GMainLoop *loop;
SoupServer *server;
- guint port;
- SoupURI *base_uri;
+ SoupURI *uri;
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL,
server_callback, NULL, NULL);
- port = soup_server_get_port (server);
loop = g_main_loop_new (NULL, TRUE);
- base_uri = soup_uri_new ("http://127.0.0.1");
- soup_uri_set_port (base_uri, port);
- do_chunk_tests (base_uri);
- soup_uri_free (base_uri);
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ do_chunk_tests (uri);
+ soup_uri_free (uri);
g_main_loop_unref (loop);
soup_test_server_quit_unref (server);
diff --git a/tests/coding-test.c b/tests/coding-test.c
index 1bffbc43..1bde4e59 100644
--- a/tests/coding-test.c
+++ b/tests/coding-test.c
@@ -563,10 +563,9 @@ main (int argc, char **argv)
{
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
do_coding_test ();
do_coding_req_test ();
diff --git a/tests/connection-test.c b/tests/connection-test.c
index fd7179f2..d9c38a28 100644
--- a/tests/connection-test.c
+++ b/tests/connection-test.c
@@ -51,10 +51,12 @@ timeout_request_started (SoupServer *server, SoupMessage *msg,
SoupClientContext *client, gpointer user_data)
{
SoupSocket *sock;
- GMainContext *context = soup_server_get_async_context (server);
+ GMainContext *context = g_main_context_get_thread_default ();
guint readable;
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
sock = soup_client_context_get_socket (client);
+ G_GNUC_END_IGNORE_DEPRECATIONS;
readable = g_signal_connect (sock, "readable",
G_CALLBACK (timeout_socket), NULL);
while (soup_socket_is_connected (sock))
@@ -130,7 +132,9 @@ server_callback (SoupServer *server, SoupMessage *msg,
* the declared Content-Length. Instead, we
* forcibly close the socket at that point.
*/
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
sock = soup_client_context_get_socket (context);
+ G_GNUC_END_IGNORE_DEPRECATIONS;
g_signal_connect (msg, "wrote-chunk",
G_CALLBACK (close_socket), sock);
} else if (no_close) {
@@ -148,7 +152,9 @@ server_callback (SoupServer *server, SoupMessage *msg,
if (!strcmp (path, "/timeout-persistent")) {
SoupSocket *sock;
+ G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
sock = soup_client_context_get_socket (context);
+ G_GNUC_END_IGNORE_DEPRECATIONS;
setup_timeout_persistent (server, sock);
}
@@ -956,10 +962,9 @@ main (int argc, char **argv)
apache_init ();
#endif
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, "http", NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
do_content_length_framing_test ();
do_persistent_connection_timeout_test ();
diff --git a/tests/context-test.c b/tests/context-test.c
index 97cd2c0c..74bb1eac 100644
--- a/tests/context-test.c
+++ b/tests/context-test.c
@@ -65,7 +65,7 @@ server_callback (SoupServer *server, SoupMessage *msg,
sd->server = server;
sd->msg = msg;
sd->timeout = soup_add_timeout (
- soup_server_get_async_context (server),
+ g_main_context_get_thread_default (),
200, add_body_chunk, sd);
g_signal_connect (msg, "finished",
G_CALLBACK (request_failed), sd);
@@ -364,13 +364,15 @@ int
main (int argc, char **argv)
{
SoupServer *server;
+ SoupURI *uri;
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = g_strdup_printf ("http://127.0.0.1:%u/",
- soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ base_uri = soup_uri_to_string (uri, FALSE);
+ soup_uri_free (uri);
do_test1 (1, FALSE);
do_test1 (2, TRUE);
diff --git a/tests/continue-test.c b/tests/continue-test.c
index 7cc9f692..99c6f6a8 100644
--- a/tests/continue-test.c
+++ b/tests/continue-test.c
@@ -10,7 +10,7 @@
#define MAX_POST_LENGTH (sizeof (SHORT_BODY))
-static int port;
+static SoupURI *base_uri;
static GSList *events;
static void
@@ -54,24 +54,27 @@ do_message (const char *path, gboolean long_body,
SoupSession *session;
SoupMessage *msg;
const char *body;
- char *uri;
+ SoupURI *uri;
va_list ap;
const char *expected_event;
char *actual_event;
int expected_status, actual_status;
static int count = 1;
- debug_printf (1, "%d. /%s, %s body, %sExpect, %s password\n",
+ debug_printf (1, "%d. %s, %s body, %sExpect, %s password\n",
count++, path,
long_body ? "long" : "short",
expect_continue ? "" : "no ",
auth ? "with" : "without");
- uri = g_strdup_printf ("http://%s127.0.0.1:%d/%s",
- auth ? "user:pass@" : "",
- port, path);
- msg = soup_message_new ("POST", uri);
- g_free (uri);
+ uri = soup_uri_copy (base_uri);
+ if (auth) {
+ soup_uri_set_user (uri, "user");
+ soup_uri_set_password (uri, "pass");
+ }
+ soup_uri_set_path (uri, path);
+ msg = soup_message_new_from_uri ("POST", uri);
+ soup_uri_free (uri);
body = long_body ? LONG_BODY : SHORT_BODY;
soup_message_set_request (msg, "text/plain", SOUP_MEMORY_STATIC,
@@ -159,7 +162,7 @@ do_message (const char *path, gboolean long_body,
static void
run_tests (void)
{
- do_message ("unauth", FALSE, FALSE, FALSE,
+ do_message ("/unauth", FALSE, FALSE, FALSE,
"client-wrote_headers",
"client-wrote_body",
"server-got_headers",
@@ -171,7 +174,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("unauth", TRUE, FALSE, FALSE,
+ do_message ("/unauth", TRUE, FALSE, FALSE,
"client-wrote_headers",
"client-wrote_body",
"server-got_headers",
@@ -183,7 +186,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("unauth", FALSE, TRUE, FALSE,
+ do_message ("/unauth", FALSE, TRUE, FALSE,
"client-wrote_headers",
"server-got_headers",
"server-wrote_informational", SOUP_STATUS_CONTINUE,
@@ -197,7 +200,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("unauth", TRUE, TRUE, FALSE,
+ do_message ("/unauth", TRUE, TRUE, FALSE,
"client-wrote_headers",
"server-got_headers",
"server-wrote_headers", SOUP_STATUS_REQUEST_ENTITY_TOO_LARGE,
@@ -208,7 +211,7 @@ run_tests (void)
"client-finished",
NULL);
- do_message ("auth", FALSE, FALSE, FALSE,
+ do_message ("/auth", FALSE, FALSE, FALSE,
"client-wrote_headers",
"client-wrote_body",
"server-got_headers",
@@ -220,7 +223,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("auth", TRUE, FALSE, FALSE,
+ do_message ("/auth", TRUE, FALSE, FALSE,
"client-wrote_headers",
"client-wrote_body",
"server-got_headers",
@@ -232,7 +235,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("auth", FALSE, TRUE, FALSE,
+ do_message ("/auth", FALSE, TRUE, FALSE,
"client-wrote_headers",
"server-got_headers",
"server-wrote_headers", SOUP_STATUS_UNAUTHORIZED,
@@ -242,7 +245,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("auth", TRUE, TRUE, FALSE,
+ do_message ("/auth", TRUE, TRUE, FALSE,
"client-wrote_headers",
"server-got_headers",
"server-wrote_headers", SOUP_STATUS_UNAUTHORIZED,
@@ -253,7 +256,7 @@ run_tests (void)
"client-finished",
NULL);
- do_message ("auth", FALSE, FALSE, TRUE,
+ do_message ("/auth", FALSE, FALSE, TRUE,
"client-wrote_headers",
"client-wrote_body",
"server-got_headers",
@@ -274,7 +277,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("auth", TRUE, FALSE, TRUE,
+ do_message ("/auth", TRUE, FALSE, TRUE,
"client-wrote_headers",
"client-wrote_body",
"server-got_headers",
@@ -295,7 +298,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("auth", FALSE, TRUE, TRUE,
+ do_message ("/auth", FALSE, TRUE, TRUE,
"client-wrote_headers",
"server-got_headers",
"server-wrote_headers", SOUP_STATUS_UNAUTHORIZED,
@@ -316,7 +319,7 @@ run_tests (void)
"client-got_body",
"client-finished",
NULL);
- do_message ("auth", TRUE, TRUE, TRUE,
+ do_message ("/auth", TRUE, TRUE, TRUE,
"client-wrote_headers",
"server-got_headers",
"server-wrote_headers", SOUP_STATUS_UNAUTHORIZED,
@@ -410,7 +413,7 @@ setup_server (void)
SoupServer *server;
SoupAuthDomain *auth_domain;
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
g_signal_connect (server, "request-started",
G_CALLBACK (request_started), NULL);
@@ -438,11 +441,13 @@ main (int argc, char **argv)
test_init (argc, argv, NULL);
server = setup_server ();
- port = soup_server_get_port (server);
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
run_tests ();
soup_test_server_quit_unref (server);
+ soup_uri_free (base_uri);
+
test_cleanup ();
return errors != 0;
}
diff --git a/tests/cookies-test.c b/tests/cookies-test.c
index 58f8052e..37a0b6b9 100644
--- a/tests/cookies-test.c
+++ b/tests/cookies-test.c
@@ -203,20 +203,25 @@ do_cookies_parsing_test (void)
int
main (int argc, char **argv)
{
+ SoupURI *server_uri;
+
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
+ server_uri = soup_test_server_get_uri (server, "http", NULL);
+
first_party_uri = soup_uri_new (first_party);
third_party_uri = soup_uri_new (third_party);
- soup_uri_set_port (first_party_uri, soup_server_get_port (server));
- soup_uri_set_port (third_party_uri, soup_server_get_port (server));
+ soup_uri_set_port (first_party_uri, server_uri->port);
+ soup_uri_set_port (third_party_uri, server_uri->port);
do_cookies_accept_policy_test ();
do_cookies_parsing_test ();
soup_uri_free (first_party_uri);
soup_uri_free (third_party_uri);
+ soup_uri_free (server_uri);
soup_test_server_quit_unref (server);
test_cleanup ();
diff --git a/tests/forms-test.c b/tests/forms-test.c
index 3b6e5c16..bd9bec31 100644
--- a/tests/forms-test.c
+++ b/tests/forms-test.c
@@ -417,38 +417,44 @@ main (int argc, char **argv)
{
GMainLoop *loop;
SoupServer *server;
- guint port;
+ SoupURI *base_uri, *uri;
char *uri_str;
test_init (argc, argv, no_test_entry);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, "/hello",
hello_callback, NULL, NULL);
soup_server_add_handler (server, "/md5",
md5_callback, NULL, NULL);
- port = soup_server_get_port (server);
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
loop = g_main_loop_new (NULL, TRUE);
if (run_tests) {
- uri_str = g_strdup_printf ("http://127.0.0.1:%u/hello", port);
+ uri = soup_uri_new_with_base (base_uri, "/hello");
+ uri_str = soup_uri_to_string (uri, FALSE);
do_hello_tests (uri_str);
+ soup_uri_free (uri);
g_free (uri_str);
- uri_str = g_strdup_printf ("http://127.0.0.1:%u/md5", port);
+ uri = soup_uri_new_with_base (base_uri, "/md5");
+ uri_str = soup_uri_to_string (uri, FALSE);
do_md5_tests (uri_str);
+ soup_uri_free (uri);
g_free (uri_str);
do_form_decode_test ();
} else {
- g_print ("Listening on port %d\n", port);
+ g_print ("Listening on port %d\n", base_uri->port);
g_main_loop_run (loop);
}
g_main_loop_unref (loop);
soup_test_server_quit_unref (server);
+ soup_uri_free (base_uri);
+
if (run_tests)
test_cleanup ();
return errors != 0;
diff --git a/tests/misc-test.c b/tests/misc-test.c
index 2aaa2cd4..96777b4a 100644
--- a/tests/misc-test.c
+++ b/tests/misc-test.c
@@ -73,7 +73,7 @@ server_callback (SoupServer *server, SoupMessage *msg,
if (!strcmp (path, "/slow")) {
soup_server_pause_message (server, msg);
g_object_set_data (G_OBJECT (msg), "server", server);
- soup_add_timeout (soup_server_get_async_context (server),
+ soup_add_timeout (g_main_context_get_thread_default (),
1000, timeout_finish_message, msg);
}
@@ -174,35 +174,28 @@ static void
do_callback_unref_test (void)
{
SoupServer *bad_server;
- SoupAddress *addr;
SoupSession *session;
SoupMessage *one, *two;
GMainLoop *loop;
- char *bad_uri;
+ SoupURI *bad_uri;
debug_printf (1, "\nCallback unref handling (msg api)\n");
/* Get a guaranteed-bad URI */
- addr = soup_address_new ("127.0.0.1", SOUP_ADDRESS_ANY_PORT);
- soup_address_resolve_sync (addr, NULL);
- bad_server = soup_server_new (SOUP_SERVER_INTERFACE, addr,
- NULL);
- g_object_unref (addr);
-
- bad_uri = g_strdup_printf ("http://127.0.0.1:%u/",
- soup_server_get_port (bad_server));
- g_object_unref (bad_server);
+ bad_server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
+ bad_uri = soup_test_server_get_uri (bad_server, "http", NULL);
+ soup_test_server_quit_unref (bad_server);
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
g_object_add_weak_pointer (G_OBJECT (session), (gpointer *)&session);
loop = g_main_loop_new (NULL, TRUE);
- one = soup_message_new ("GET", bad_uri);
+ one = soup_message_new_from_uri ("GET", bad_uri);
g_object_add_weak_pointer (G_OBJECT (one), (gpointer *)&one);
- two = soup_message_new ("GET", bad_uri);
+ two = soup_message_new_from_uri ("GET", bad_uri);
g_object_add_weak_pointer (G_OBJECT (two), (gpointer *)&two);
- g_free (bad_uri);
+ soup_uri_free (bad_uri);
soup_session_queue_message (session, one, cu_one_completed, loop);
soup_session_queue_message (session, two, cu_two_completed, loop);
@@ -283,24 +276,17 @@ static void
do_callback_unref_req_test (void)
{
SoupServer *bad_server;
- SoupAddress *addr;
SoupSession *session;
SoupRequest *one, *two;
GMainLoop *loop;
- char *bad_uri;
+ SoupURI *bad_uri;
debug_printf (1, "\nCallback unref handling (request api)\n");
/* Get a guaranteed-bad URI */
- addr = soup_address_new ("127.0.0.1", SOUP_ADDRESS_ANY_PORT);
- soup_address_resolve_sync (addr, NULL);
- bad_server = soup_server_new (SOUP_SERVER_INTERFACE, addr,
- NULL);
- g_object_unref (addr);
-
- bad_uri = g_strdup_printf ("http://127.0.0.1:%u/",
- soup_server_get_port (bad_server));
- g_object_unref (bad_server);
+ bad_server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
+ bad_uri = soup_test_server_get_uri (bad_server, "http", NULL);
+ soup_test_server_quit_unref (bad_server);
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
SOUP_SESSION_USE_THREAD_CONTEXT, TRUE,
@@ -309,11 +295,11 @@ do_callback_unref_req_test (void)
loop = g_main_loop_new (NULL, TRUE);
- one = soup_session_request (session, bad_uri, NULL);
+ one = soup_session_request_uri (session, bad_uri, NULL);
g_object_add_weak_pointer (G_OBJECT (one), (gpointer *)&one);
- two = soup_session_request (session, bad_uri, NULL);
+ two = soup_session_request_uri (session, bad_uri, NULL);
g_object_add_weak_pointer (G_OBJECT (two), (gpointer *)&two);
- g_free (bad_uri);
+ soup_uri_free (bad_uri);
soup_request_send_async (one, NULL, cur_one_completed, session);
g_object_unref (one);
@@ -1022,10 +1008,9 @@ main (int argc, char **argv)
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, "http", NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
auth_domain = soup_auth_domain_basic_new (
SOUP_AUTH_DOMAIN_REALM, "misc-test",
@@ -1036,10 +1021,9 @@ main (int argc, char **argv)
g_object_unref (auth_domain);
if (tls_available) {
- ssl_server = soup_test_server_new_ssl (TRUE);
+ ssl_server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (ssl_server, NULL, server_callback, "https", NULL);
- ssl_base_uri = soup_uri_new ("https://127.0.0.1/");
- soup_uri_set_port (ssl_base_uri, soup_server_get_port (ssl_server));
+ ssl_base_uri = soup_test_server_get_uri (ssl_server, "https", "127.0.0.1");
}
do_host_test ();
diff --git a/tests/multipart-test.c b/tests/multipart-test.c
index bfe4f5b2..d44effa5 100644
--- a/tests/multipart-test.c
+++ b/tests/multipart-test.c
@@ -588,10 +588,9 @@ main (int argc, char **argv)
buffer = g_malloc (READ_BUFFER_SIZE);
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = soup_uri_new ("http://127.0.0.1");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
base_uri_string = soup_uri_to_string (base_uri, FALSE);
/* FIXME: I had to raise the number of connections allowed here, otherwise I
diff --git a/tests/no-ssl-test.c b/tests/no-ssl-test.c
index ab1bdc3a..235ec097 100644
--- a/tests/no-ssl-test.c
+++ b/tests/no-ssl-test.c
@@ -3,13 +3,13 @@
#include "test-utils.h"
static void
-do_ssl_test_for_session (SoupSession *session, char *uri)
+do_ssl_test_for_session (SoupSession *session, SoupURI *uri)
{
SoupMessage *msg;
GTlsCertificate *cert;
GTlsCertificateFlags flags;
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_SSL_FAILED) {
debug_printf (1, " Unexpected status: %d %s\n",
@@ -34,7 +34,7 @@ do_ssl_test_for_session (SoupSession *session, char *uri)
}
static void
-do_ssl_tests (char *uri)
+do_ssl_tests (SoupURI *uri)
{
SoupSession *session;
@@ -167,7 +167,8 @@ int
main (int argc, char **argv)
{
SoupServer *server;
- char *uri;
+ SoupURI *uri;
+ guint port;
/* Force this test to use the dummy TLS backend */
g_setenv ("GIO_USE_TLS", "dummy", TRUE);
@@ -180,13 +181,15 @@ main (int argc, char **argv)
*/
server = soup_test_server_new (TRUE);
soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- uri = g_strdup_printf ("https://127.0.0.1:%u/",
- soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ port = uri->port;
+ soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS);
+ soup_uri_set_port (uri, port);
do_session_property_tests ();
do_ssl_tests (uri);
- g_free (uri);
+ soup_uri_free (uri);
soup_test_server_quit_unref (server);
test_cleanup ();
diff --git a/tests/ntlm-test.c b/tests/ntlm-test.c
index f67a3d14..67538356 100644
--- a/tests/ntlm-test.c
+++ b/tests/ntlm-test.c
@@ -42,7 +42,7 @@ server_callback (SoupServer *server, SoupMessage *msg,
SoupClientContext *client, gpointer data)
{
GHashTable *connections = data;
- SoupSocket *socket;
+ GSocket *socket;
const char *auth;
NTLMServerState state, required_user = 0;
gboolean auth_required, not_found = FALSE;
@@ -68,7 +68,7 @@ server_callback (SoupServer *server, SoupMessage *msg,
if (strstr (path, "/404"))
not_found = TRUE;
- socket = soup_client_context_get_socket (client);
+ socket = soup_client_context_get_gsocket (client);
state = GPOINTER_TO_INT (g_hash_table_lookup (connections, socket));
auth = soup_message_headers_get_one (msg->request_headers,
"Authorization");
@@ -555,13 +555,12 @@ main (int argc, char **argv)
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
connections = g_hash_table_new (NULL, NULL);
soup_server_add_handler (server, NULL,
server_callback, connections, NULL);
- uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (uri, soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
/* Built-in NTLM auth support. (We set SOUP_NTLM_AUTH_DEBUG to
* an empty string to ensure that the built-in support is
@@ -593,8 +592,6 @@ main (int argc, char **argv)
debug_printf (1, "\nRetrying on failed password\n");
do_retrying_test (uri);
- soup_uri_free (uri);
-
soup_test_server_quit_unref (server);
test_cleanup ();
g_hash_table_destroy (connections);
diff --git a/tests/proxy-test.c b/tests/proxy-test.c
index 682b5375..e981901a 100644
--- a/tests/proxy-test.c
+++ b/tests/proxy-test.c
@@ -401,10 +401,9 @@ main (int argc, char **argv)
g_simple_proxy_resolver_new (proxies[i], (char **) ignore_hosts);
}
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
do_proxy_tests ();
do_proxy_fragment_test (base_uri);
diff --git a/tests/range-test.c b/tests/range-test.c
index 00b8567d..f4fc399e 100644
--- a/tests/range-test.c
+++ b/tests/range-test.c
@@ -399,7 +399,8 @@ main (int argc, char **argv)
{
SoupSession *session;
SoupServer *server;
- char *base_uri;
+ SoupURI *base_uri;
+ char *base_uri_str;
test_init (argc, argv, NULL);
apache_init ();
@@ -417,12 +418,13 @@ main (int argc, char **argv)
#endif
debug_printf (1, "\n2. Testing against SoupServer\n");
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- base_uri = g_strdup_printf ("http://127.0.0.1:%u/",
- soup_server_get_port (server));
- do_range_test (session, base_uri, TRUE, TRUE);
- g_free (base_uri);
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
+ base_uri_str = soup_uri_to_string (base_uri, FALSE);
+ do_range_test (session, base_uri_str, TRUE, TRUE);
+ soup_uri_free (base_uri);
+ g_free (base_uri_str);
soup_test_server_quit_unref (server);
soup_test_session_abort_unref (session);
diff --git a/tests/redirect-test.c b/tests/redirect-test.c
index 2b4fb5ea..87d13f1a 100644
--- a/tests/redirect-test.c
+++ b/tests/redirect-test.c
@@ -564,37 +564,36 @@ main (int argc, char **argv)
{
GMainLoop *loop;
SoupServer *server, *server2;
- guint port;
- SoupURI *base_uri;
+ SoupURI *base_uri, *uri2;
test_init (argc, argv, no_test_entry);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL,
server_callback, NULL, NULL);
- port = soup_server_get_port (server);
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
- server2 = soup_test_server_new (TRUE);
+ server2 = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server2, NULL,
server2_callback, NULL, NULL);
- server2_uri = g_strdup_printf ("http://127.0.0.1:%d/on-server2",
- soup_server_get_port (server2));
+ uri2 = soup_test_server_get_uri (server2, "http", NULL);
+ soup_uri_set_path (uri2, "/on-server2");
+ server2_uri = soup_uri_to_string (uri2, FALSE);
+ soup_uri_free (uri2);
loop = g_main_loop_new (NULL, TRUE);
if (run_tests) {
- base_uri = soup_uri_new ("http://127.0.0.1");
- soup_uri_set_port (base_uri, port);
do_redirect_tests (base_uri);
do_connection_test (base_uri);
- soup_uri_free (base_uri);
} else {
- g_print ("Listening on port %d\n", port);
+ g_print ("Listening on port %d\n", base_uri->port);
g_main_loop_run (loop);
}
g_main_loop_unref (loop);
g_free (server2_uri);
+ soup_uri_free (base_uri);
soup_test_server_quit_unref (server);
soup_test_server_quit_unref (server2);
diff --git a/tests/requester-test.c b/tests/requester-test.c
index a202c164..acb1e74c 100644
--- a/tests/requester-test.c
+++ b/tests/requester-test.c
@@ -351,7 +351,7 @@ do_async_test (SoupSession *session, SoupURI *uri,
}
static void
-do_test_for_thread_and_context (SoupSession *session, const char *base_uri)
+do_test_for_thread_and_context (SoupSession *session, SoupURI *base_uri)
{
SoupRequester *requester;
SoupURI *uri;
@@ -364,39 +364,33 @@ do_test_for_thread_and_context (SoupSession *session, const char *base_uri)
soup_session_add_feature_by_type (session, SOUP_TYPE_CONTENT_SNIFFER);
debug_printf (1, " basic test\n");
- uri = soup_uri_new (base_uri);
- do_async_test (session, uri, test_sent,
+ do_async_test (session, base_uri, test_sent,
SOUP_STATUS_OK, response,
TRUE, FALSE);
- soup_uri_free (uri);
debug_printf (1, " chunked test\n");
- uri = soup_uri_new (base_uri);
- soup_uri_set_path (uri, "/chunked");
+ uri = soup_uri_new_with_base (base_uri, "/chunked");
do_async_test (session, uri, test_sent,
SOUP_STATUS_OK, response,
TRUE, FALSE);
soup_uri_free (uri);
debug_printf (1, " auth test\n");
- uri = soup_uri_new (base_uri);
- soup_uri_set_path (uri, "/auth");
+ uri = soup_uri_new_with_base (base_uri, "/auth");
do_async_test (session, uri, auth_test_sent,
SOUP_STATUS_UNAUTHORIZED, auth_response,
TRUE, FALSE);
soup_uri_free (uri);
debug_printf (1, " non-persistent test\n");
- uri = soup_uri_new (base_uri);
- soup_uri_set_path (uri, "/non-persistent");
+ uri = soup_uri_new_with_base (base_uri, "/non-persistent");
do_async_test (session, uri, test_sent,
SOUP_STATUS_OK, response,
FALSE, FALSE);
soup_uri_free (uri);
debug_printf (1, " cancellation test\n");
- uri = soup_uri_new (base_uri);
- soup_uri_set_path (uri, "/");
+ uri = soup_uri_new_with_base (base_uri, "/");
do_async_test (session, uri, test_sent,
SOUP_STATUS_FORBIDDEN, NULL,
FALSE, TRUE);
@@ -404,7 +398,7 @@ do_test_for_thread_and_context (SoupSession *session, const char *base_uri)
}
static void
-do_simple_tests (const char *uri)
+do_simple_tests (SoupURI *uri)
{
SoupSession *session;
@@ -424,7 +418,7 @@ do_simple_tests (const char *uri)
}
static void
-do_test_with_context_and_type (const char *uri, gboolean plain_session)
+do_test_with_context_and_type (SoupURI *uri, gboolean plain_session)
{
GMainContext *async_context;
SoupSession *session;
@@ -461,7 +455,7 @@ do_plain_test_with_context (gpointer uri)
}
static void
-do_context_tests (const char *uri)
+do_context_tests (SoupURI *uri)
{
debug_printf (1, "\nStreaming with a non-default-context\n");
@@ -470,7 +464,7 @@ do_context_tests (const char *uri)
}
static void
-do_thread_tests (const char *uri)
+do_thread_tests (SoupURI *uri)
{
GThread *thread;
@@ -478,12 +472,12 @@ do_thread_tests (const char *uri)
thread = g_thread_new ("do_test_with_context",
do_plain_test_with_context,
- (gpointer)uri);
+ uri);
g_thread_join (thread);
thread = g_thread_new ("do_test_with_context",
do_test_with_context,
- (gpointer)uri);
+ uri);
g_thread_join (thread);
}
@@ -602,7 +596,7 @@ do_sync_request (SoupSession *session, SoupRequest *request,
}
static void
-do_sync_tests_for_session (SoupSession *session, const char *uri_string)
+do_sync_tests_for_session (SoupSession *session, SoupURI *base_uri)
{
SoupRequester *requester;
SoupRequest *request;
@@ -610,7 +604,7 @@ do_sync_tests_for_session (SoupSession *session, const char *uri_string)
requester = SOUP_REQUESTER (soup_session_get_feature (session, SOUP_TYPE_REQUESTER));
- uri = soup_uri_new (uri_string);
+ uri = soup_uri_copy (base_uri);
debug_printf (1, " basic test\n");
if (requester)
@@ -670,7 +664,7 @@ do_sync_tests_for_session (SoupSession *session, const char *uri_string)
}
static void
-do_sync_tests (const char *uri_string)
+do_sync_tests (SoupURI *uri)
{
SoupSession *session;
SoupRequester *requester;
@@ -679,7 +673,7 @@ do_sync_tests (const char *uri_string)
debug_printf (1, " SoupSession\n");
session = soup_test_session_new (SOUP_TYPE_SESSION, NULL);
- do_sync_tests_for_session (session, uri_string);
+ do_sync_tests_for_session (session, uri);
soup_test_session_abort_unref (session);
debug_printf (1, " SoupSessionSync\n");
@@ -687,7 +681,7 @@ do_sync_tests (const char *uri_string)
requester = soup_requester_new ();
soup_session_add_feature (session, SOUP_SESSION_FEATURE (requester));
g_object_unref (requester);
- do_sync_tests_for_session (session, uri_string);
+ do_sync_tests_for_session (session, uri);
soup_test_session_abort_unref (session);
}
@@ -874,15 +868,14 @@ do_close_test_for_session (SoupSession *session,
}
static void
-do_close_tests (const char *uri)
+do_close_tests (SoupURI *uri)
{
SoupSession *session;
SoupURI *slow_uri;
debug_printf (1, "\nClosing stream before end should cancel\n");
- slow_uri = soup_uri_new (uri);
- soup_uri_set_path (slow_uri, "/slow");
+ slow_uri = soup_uri_new_with_base (uri, "/slow");
debug_printf (1, " SoupSessionAsync\n");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
@@ -904,15 +897,16 @@ do_close_tests (const char *uri)
int
main (int argc, char **argv)
{
- char *uri;
+ SoupURI *uri;
test_init (argc, argv, NULL);
get_index ();
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- uri = g_strdup_printf ("http://127.0.0.1:%u/foo", soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ soup_uri_set_path (uri, "/foo");
do_simple_tests (uri);
do_thread_tests (uri);
@@ -921,7 +915,7 @@ main (int argc, char **argv)
do_null_char_tests ();
do_close_tests (uri);
- g_free (uri);
+ soup_uri_free (uri);
soup_buffer_free (response);
soup_buffer_free (auth_response);
soup_test_server_quit_unref (server);
diff --git a/tests/server-auth-test.c b/tests/server-auth-test.c
index 33cff45a..3f4d73cd 100644
--- a/tests/server-auth-test.c
+++ b/tests/server-auth-test.c
@@ -318,7 +318,7 @@ main (int argc, char **argv)
test_init (argc, argv, no_test_entry);
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
g_signal_connect (server, "request_started",
G_CALLBACK (request_started_callback), NULL);
soup_server_add_handler (server, NULL,
@@ -346,15 +346,14 @@ main (int argc, char **argv)
loop = g_main_loop_new (NULL, TRUE);
+ uri = soup_test_server_get_uri (server, "http", NULL);
if (run_tests) {
- uri = soup_uri_new ("http://127.0.0.1");
- soup_uri_set_port (uri, soup_server_get_port (server));
do_auth_tests (uri);
- soup_uri_free (uri);
} else {
- g_print ("Listening on port %d\n", soup_server_get_port (server));
+ g_print ("Listening on port %d\n", uri->port);
g_main_loop_run (loop);
}
+ soup_uri_free (uri);
g_main_loop_unref (loop);
soup_test_server_quit_unref (server);
diff --git a/tests/server-test.c b/tests/server-test.c
index 3ff7cadd..2bd87083 100644
--- a/tests/server-test.c
+++ b/tests/server-test.c
@@ -5,7 +5,7 @@
#include "test-utils.h"
-SoupServer *server, *ssl_server;
+SoupServer *server;
SoupURI *base_uri, *ssl_base_uri;
static void
@@ -255,6 +255,7 @@ ipv6_server_callback (SoupServer *server, SoupMessage *msg,
SoupClientContext *context, gpointer data)
{
const char *host;
+ GSocketAddress *addr;
char expected_host[128];
host = soup_message_headers_get_one (msg->request_headers, "Host");
@@ -265,8 +266,10 @@ ipv6_server_callback (SoupServer *server, SoupMessage *msg,
return;
}
+ addr = soup_client_context_get_local_address (context);
g_snprintf (expected_host, sizeof (expected_host),
- "[::1]:%d", soup_server_get_port (server));
+ "[::1]:%d",
+ g_inet_socket_address_get_port (G_INET_SOCKET_ADDRESS (addr)));
if (strcmp (host, expected_host) == 0)
soup_message_set_status (msg, SOUP_STATUS_OK);
@@ -282,27 +285,16 @@ do_ipv6_test (void)
{
SoupServer *ipv6_server;
SoupURI *ipv6_uri;
- SoupAddress *ipv6_addr;
SoupSession *session;
SoupMessage *msg;
- debug_printf (1, "\nIPv6 server test\n");
+ // FIXME: deal with lack of IPv6 support
- ipv6_addr = soup_address_new ("::1", SOUP_ADDRESS_ANY_PORT);
- soup_address_resolve_sync (ipv6_addr, NULL);
- ipv6_server = soup_server_new (SOUP_SERVER_INTERFACE, ipv6_addr,
- NULL);
- g_object_unref (ipv6_addr);
- if (!ipv6_server) {
- debug_printf (1, " skipping due to lack of IPv6 support\n");
- return;
- }
+ debug_printf (1, "\nIPv6 server test\n");
+ ipv6_server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
soup_server_add_handler (ipv6_server, NULL, ipv6_server_callback, NULL, NULL);
- soup_server_run_async (ipv6_server);
-
- ipv6_uri = soup_uri_new ("http://[::1]/");
- soup_uri_set_port (ipv6_uri, soup_server_get_port (ipv6_server));
+ ipv6_uri = soup_test_server_get_uri (server, "http", "::1");
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
@@ -340,21 +332,17 @@ main (int argc, char **argv)
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
g_object_set (G_OBJECT (server),
SOUP_SERVER_HTTP_ALIASES, http_aliases,
NULL);
if (tls_available) {
- ssl_server = soup_test_server_new_ssl (TRUE);
- soup_server_add_handler (ssl_server, NULL, server_callback, NULL, NULL);
- ssl_base_uri = soup_uri_new ("https://127.0.0.1/");
- soup_uri_set_port (ssl_base_uri, soup_server_get_port (ssl_server));
- g_object_set (G_OBJECT (ssl_server),
+ ssl_base_uri = soup_test_server_get_uri (server, "https", NULL);
+ g_object_set (G_OBJECT (server),
SOUP_SERVER_HTTPS_ALIASES, https_aliases,
NULL);
}
@@ -367,10 +355,8 @@ main (int argc, char **argv)
soup_uri_free (base_uri);
soup_test_server_quit_unref (server);
- if (tls_available) {
+ if (tls_available)
soup_uri_free (ssl_base_uri);
- soup_test_server_quit_unref (ssl_server);
- }
test_cleanup ();
return errors != 0;
diff --git a/tests/session-test.c b/tests/session-test.c
index 205885d7..d149d0fd 100644
--- a/tests/session-test.c
+++ b/tests/session-test.c
@@ -25,7 +25,7 @@ server_handler (SoupServer *server,
gpointer user_data)
{
if (!strcmp (path, "/request-timeout")) {
- GMainContext *context = soup_server_get_async_context (server);
+ GMainContext *context = g_main_context_get_thread_default ();
GSource *timer;
timer = g_timeout_source_new (100);
@@ -58,7 +58,7 @@ cancel_message_cb (SoupMessage *msg, gpointer session)
static void
do_test_for_session (SoupSession *session,
- const char *uri, const char *timeout_uri,
+ SoupURI *uri, SoupURI *timeout_uri,
gboolean queue_is_async,
gboolean send_is_blocking,
gboolean cancel_is_immediate)
@@ -69,11 +69,11 @@ do_test_for_session (SoupSession *session,
debug_printf (1, " queue_message\n");
debug_printf (2, " requesting timeout\n");
- msg = soup_message_new ("GET", timeout_uri);
+ msg = soup_message_new_from_uri ("GET", timeout_uri);
soup_session_send_message (session, msg);
g_object_unref (msg);
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
server_processed_message = timeout = finished = FALSE;
soup_session_queue_message (session, msg, finished_cb, &finished);
while (!timeout)
@@ -107,7 +107,7 @@ do_test_for_session (SoupSession *session,
}
debug_printf (1, " send_message\n");
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
server_processed_message = local_timeout = FALSE;
timeout_id = g_idle_add_full (G_PRIORITY_HIGH, timeout_cb, &local_timeout, NULL);
soup_session_send_message (session, msg);
@@ -136,7 +136,7 @@ do_test_for_session (SoupSession *session,
return;
debug_printf (1, " cancel_message\n");
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
g_object_ref (msg);
finished = FALSE;
soup_session_queue_message (session, msg, finished_cb, &finished);
@@ -173,7 +173,7 @@ do_test_for_session (SoupSession *session,
}
static void
-do_plain_tests (char *uri, char *timeout_uri)
+do_plain_tests (SoupURI *uri, SoupURI *timeout_uri)
{
SoupSession *session;
@@ -185,7 +185,7 @@ do_plain_tests (char *uri, char *timeout_uri)
}
static void
-do_async_tests (char *uri, char *timeout_uri)
+do_async_tests (SoupURI *uri, SoupURI *timeout_uri)
{
SoupSession *session;
@@ -197,7 +197,7 @@ do_async_tests (char *uri, char *timeout_uri)
}
static void
-do_sync_tests (char *uri, char *timeout_uri)
+do_sync_tests (SoupURI *uri, SoupURI *timeout_uri)
{
SoupSession *session;
@@ -226,7 +226,7 @@ priority_test_finished_cb (SoupSession *session, SoupMessage *msg, gpointer user
}
static void
-do_priority_tests (char *uri)
+do_priority_tests (SoupURI *uri)
{
SoupSession *session;
int i, finished_count = 0;
@@ -245,12 +245,14 @@ do_priority_tests (char *uri)
expected_priorities[2] = SOUP_MESSAGE_PRIORITY_LOW;
for (i = 0; i < 3; i++) {
- char *msg_uri;
+ SoupURI *msg_uri;
SoupMessage *msg;
+ char buf[5];
- msg_uri = g_strdup_printf ("%s/%d", uri, i);
- msg = soup_message_new ("GET", uri);
- g_free (msg_uri);
+ g_snprintf (buf, sizeof (buf), "%d", i);
+ msg_uri = soup_uri_new_with_base (uri, buf);
+ msg = soup_message_new_from_uri ("GET", msg_uri);
+ soup_uri_free (msg_uri);
soup_message_set_priority (msg, priorities[i]);
soup_session_queue_message (session, msg, priority_test_finished_cb, &finished_count);
@@ -401,15 +403,14 @@ int
main (int argc, char **argv)
{
SoupServer *server;
- char *uri, *timeout_uri;
+ SoupURI *uri, *timeout_uri;
test_init (argc, argv, NULL);
server = soup_test_server_new (TRUE);
soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- uri = g_strdup_printf ("http://127.0.0.1:%u",
- soup_server_get_port (server));
- timeout_uri = g_strdup_printf ("%s/request-timeout", uri);
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ timeout_uri = soup_uri_new_with_base (uri, "/request-timeout");
do_plain_tests (uri, timeout_uri);
do_async_tests (uri, timeout_uri);
@@ -417,8 +418,8 @@ main (int argc, char **argv)
do_priority_tests (uri);
do_property_tests ();
- g_free (uri);
- g_free (timeout_uri);
+ soup_uri_free (uri);
+ soup_uri_free (timeout_uri);
soup_test_server_quit_unref (server);
test_cleanup ();
diff --git a/tests/sniffing-test.c b/tests/sniffing-test.c
index cbebaba0..cf3d9342 100644
--- a/tests/sniffing-test.c
+++ b/tests/sniffing-test.c
@@ -468,10 +468,9 @@ main (int argc, char **argv)
test_init (argc, argv, NULL);
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
- base_uri = soup_uri_new ("http://127.0.0.1/");
- soup_uri_set_port (base_uri, soup_server_get_port (server));
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC,
SOUP_SESSION_USE_THREAD_CONTEXT, TRUE,
diff --git a/tests/ssl-test.c b/tests/ssl-test.c
index 7716f302..a3228fdc 100644
--- a/tests/ssl-test.c
+++ b/tests/ssl-test.c
@@ -3,13 +3,13 @@
#include "test-utils.h"
static void
-do_properties_test_for_session (SoupSession *session, char *uri)
+do_properties_test_for_session (SoupSession *session, SoupURI *uri)
{
SoupMessage *msg;
GTlsCertificate *cert;
GTlsCertificateFlags flags;
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
soup_session_send_message (session, msg);
if (msg->status_code != SOUP_STATUS_OK) {
debug_printf (1, " FAILED: %d %s\n",
@@ -40,7 +40,7 @@ do_properties_test_for_session (SoupSession *session, char *uri)
}
static void
-do_properties_tests (char *uri)
+do_properties_tests (SoupURI *uri)
{
SoupSession *session;
@@ -66,7 +66,7 @@ do_properties_tests (char *uri)
}
static void
-do_one_strict_test (SoupSession *session, char *uri,
+do_one_strict_test (SoupSession *session, SoupURI *uri,
gboolean strict, gboolean with_ca_list,
guint expected_status)
{
@@ -84,7 +84,7 @@ do_one_strict_test (SoupSession *session, char *uri,
/* Close existing connections with old params */
soup_session_abort (session);
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
soup_session_send_message (session, msg);
if (msg->status_code != expected_status) {
debug_printf (1, " FAILED: %d %s (expected %d %s)\n",
@@ -118,7 +118,7 @@ do_one_strict_test (SoupSession *session, char *uri,
}
static void
-do_strict_tests (char *uri)
+do_strict_tests (SoupURI *uri)
{
SoupSession *session;
@@ -323,21 +323,20 @@ int
main (int argc, char **argv)
{
SoupServer *server;
- char *uri;
+ SoupURI *uri;
test_init (argc, argv, NULL);
if (tls_available) {
- server = soup_test_server_new_ssl (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- uri = g_strdup_printf ("https://127.0.0.1:%u/",
- soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "https", "127.0.0.1");
do_session_property_tests ();
do_strict_tests (uri);
do_properties_tests (uri);
- g_free (uri);
+ soup_uri_free (uri);
soup_test_server_quit_unref (server);
}
diff --git a/tests/streaming-test.c b/tests/streaming-test.c
index 239e0ce8..af849155 100644
--- a/tests/streaming-test.c
+++ b/tests/streaming-test.c
@@ -153,21 +153,18 @@ main (int argc, char **argv)
{
GMainLoop *loop;
SoupServer *server;
- guint port;
SoupURI *base_uri;
test_init (argc, argv, NULL);
get_full_response ();
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
soup_server_add_handler (server, NULL,
server_callback, NULL, NULL);
- port = soup_server_get_port (server);
loop = g_main_loop_new (NULL, TRUE);
- base_uri = soup_uri_new ("http://127.0.0.1");
- soup_uri_set_port (base_uri, port);
+ base_uri = soup_test_server_get_uri (server, "http", NULL);
do_tests (base_uri);
soup_uri_free (base_uri);
diff --git a/tests/test-utils.c b/tests/test-utils.c
index f4632a9b..650a5eb6 100644
--- a/tests/test-utils.c
+++ b/tests/test-utils.c
@@ -268,77 +268,209 @@ soup_test_session_abort_unref (SoupSession *session)
}
}
-static gpointer run_server_thread (gpointer user_data);
+static void
+server_listen (SoupServer *server)
+{
+ GError *error = NULL;
+ SoupServerListenOptions options =
+ GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (server), "listen-options"));
-static SoupServer *
-test_server_new (gboolean in_own_thread, gboolean ssl)
+ soup_server_listen_local (server, 0, options, &error);
+ if (error) {
+ g_printerr ("Unable to create server: %s\n", error->message);
+ exit (1);
+ }
+}
+
+static GMutex server_start_mutex;
+static GCond server_start_cond;
+
+static gpointer
+run_server_thread (gpointer user_data)
{
- SoupServer *server;
- GMainContext *async_context;
- const char *ssl_cert_file, *ssl_key_file;
- SoupAddress *addr;
+ SoupServer *server = user_data;
+ GMainContext *context;
+ GMainLoop *loop;
- async_context = in_own_thread ? g_main_context_new () : NULL;
+ context = g_main_context_new ();
+ g_main_context_push_thread_default (context);
+ loop = g_main_loop_new (context, FALSE);
+ g_object_set_data (G_OBJECT (server), "GMainLoop", loop);
- if (ssl) {
- ssl_cert_file = SRCDIR "/test-cert.pem";
- ssl_key_file = SRCDIR "/test-key.pem";
- } else
- ssl_cert_file = ssl_key_file = NULL;
+ server_listen (server);
- addr = soup_address_new ("127.0.0.1", SOUP_ADDRESS_ANY_PORT);
- soup_address_resolve_sync (addr, NULL);
+ g_mutex_lock (&server_start_mutex);
+ g_cond_signal (&server_start_cond);
+ g_mutex_unlock (&server_start_mutex);
- server = soup_server_new (SOUP_SERVER_INTERFACE, addr,
- SOUP_SERVER_ASYNC_CONTEXT, async_context,
- SOUP_SERVER_SSL_CERT_FILE, ssl_cert_file,
- SOUP_SERVER_SSL_KEY_FILE, ssl_key_file,
- NULL);
- g_object_unref (addr);
- if (async_context)
- g_main_context_unref (async_context);
+ g_main_loop_run (loop);
+ g_main_loop_unref (loop);
- if (!server) {
- g_printerr ("Unable to create server\n");
- exit (1);
+ soup_server_disconnect (server);
+
+ g_main_context_pop_thread_default (context);
+ g_main_context_unref (context);
+
+ return NULL;
+}
+
+SoupServer *
+soup_test_server_new (SoupTestServerOptions options)
+{
+ SoupServer *server;
+ GTlsCertificate *cert = NULL;
+ GError *error = NULL;
+
+ if (tls_available) {
+ cert = g_tls_certificate_new_from_files (SRCDIR "/test-cert.pem",
+ SRCDIR "/test-key.pem",
+ &error);
+ if (error) {
+ g_printerr ("Unable to create server: %s\n", error->message);
+ exit (1);
+ }
}
+
+ server = soup_server_new (SOUP_SERVER_TLS_CERTIFICATE, cert,
+ NULL);
+ g_clear_object (&cert);
- if (in_own_thread) {
+ g_object_set_data (G_OBJECT (server), "options", GUINT_TO_POINTER (options));
+
+ if (options & SOUP_TEST_SERVER_IN_THREAD) {
GThread *thread;
+ g_mutex_lock (&server_start_mutex);
+
thread = g_thread_new ("server_thread", run_server_thread, server);
g_object_set_data (G_OBJECT (server), "thread", thread);
+
+ /* We have to call soup_server_listen() from the server's
+ * thread, but want to be sure we don't return from here
+ * until it happens, hence the locking.
+ */
+ g_cond_wait (&server_start_cond, &server_start_mutex);
+ g_mutex_unlock (&server_start_mutex);
} else
- soup_server_run_async (server);
+ server_listen (server);
return server;
}
-SoupServer *
-soup_test_server_new (gboolean in_own_thread)
+static SoupURI *
+find_server_uri (SoupServer *server, const char *scheme, const char *host)
+{
+ GSList *uris, *u;
+ SoupURI *uri, *ret_uri = NULL;
+
+ uris = soup_server_get_uris (server);
+ for (u = uris; u; u = u->next) {
+ uri = u->data;
+
+ if (scheme && strcmp (uri->scheme, scheme) != 0)
+ continue;
+ if (host && strcmp (uri->host, host) != 0)
+ continue;
+
+ ret_uri = soup_uri_copy (uri);
+ break;
+ }
+ g_slist_free_full (uris, (GDestroyNotify)soup_uri_free);
+
+ return ret_uri;
+}
+
+static SoupURI *
+add_listener (SoupServer *server, const char *scheme, const char *host)
{
- return test_server_new (in_own_thread, FALSE);
+ SoupServerListenOptions options = 0;
+ GError *error = NULL;
+
+ if (!g_strcmp0 (scheme, SOUP_URI_SCHEME_HTTPS))
+ options |= SOUP_SERVER_LISTEN_HTTPS;
+ if (!g_strcmp0 (host, "127.0.0.1"))
+ options |= SOUP_SERVER_LISTEN_IPV4_ONLY;
+ else if (!g_strcmp0 (host, "::1"))
+ options |= SOUP_SERVER_LISTEN_IPV6_ONLY;
+
+ soup_server_listen_local (server, 0, options, &error);
+ g_assert_no_error (error);
+
+ return find_server_uri (server, scheme, host);
}
-SoupServer *
-soup_test_server_new_ssl (gboolean in_own_thread)
+typedef struct {
+ GMutex mutex;
+ GCond cond;
+
+ SoupServer *server;
+ const char *scheme;
+ const char *host;
+
+ SoupURI *uri;
+} AddListenerData;
+
+static gboolean
+add_listener_in_thread (gpointer user_data)
{
- return test_server_new (in_own_thread, TRUE);
+ AddListenerData *data = user_data;
+
+ data->uri = add_listener (data->server, data->scheme, data->host);
+ g_mutex_lock (&data->mutex);
+ g_cond_signal (&data->cond);
+ g_mutex_unlock (&data->mutex);
+
+ return FALSE;
}
-static gpointer
-run_server_thread (gpointer user_data)
+SoupURI *
+soup_test_server_get_uri (SoupServer *server,
+ const char *scheme,
+ const char *host)
{
- SoupServer *server = user_data;
+ SoupURI *uri;
+ GMainLoop *loop;
- soup_server_run (server);
- return NULL;
+ uri = find_server_uri (server, scheme, host);
+ if (uri)
+ return uri;
+
+ /* Need to add a new listener */
+ uri = soup_uri_new (NULL);
+ soup_uri_set_scheme (uri, scheme);
+ soup_uri_set_host (uri, host);
+
+ loop = g_object_get_data (G_OBJECT (server), "GMainLoop");
+ if (loop) {
+ GMainContext *context = g_main_loop_get_context (loop);
+ AddListenerData data;
+
+ g_mutex_init (&data.mutex);
+ g_cond_init (&data.cond);
+ data.server = server;
+ data.scheme = scheme;
+ data.host = host;
+ data.uri = NULL;
+
+ g_mutex_lock (&data.mutex);
+ soup_add_completion (context, add_listener_in_thread, &data);
+
+ while (!data.uri)
+ g_cond_wait (&data.cond, &data.mutex);
+
+ g_mutex_clear (&data.mutex);
+ g_cond_clear (&data.cond);
+ uri = data.uri;
+ } else
+ uri = add_listener (server, scheme, host);
+
+ return uri;
}
static gboolean
-idle_quit_server (gpointer server)
+idle_quit_server (gpointer loop)
{
- soup_server_quit (server);
+ g_main_loop_quit (loop);
return FALSE;
}
@@ -352,11 +484,15 @@ soup_test_server_quit_unref (SoupServer *server)
thread = g_object_get_data (G_OBJECT (server), "thread");
if (thread) {
- soup_add_completion (soup_server_get_async_context (server),
- idle_quit_server, server);
+ GMainLoop *loop;
+ GMainContext *context;
+
+ loop = g_object_get_data (G_OBJECT (server), "GMainLoop");
+ context = g_main_loop_get_context (loop);
+ soup_add_completion (context, idle_quit_server, loop);
g_thread_join (thread);
} else
- soup_server_quit (server);
+ soup_server_disconnect (server);
g_object_unref (server);
if (server) {
diff --git a/tests/test-utils.h b/tests/test-utils.h
index c85103d8..e686720b 100644
--- a/tests/test-utils.h
+++ b/tests/test-utils.h
@@ -36,9 +36,16 @@ typedef enum {
SoupSession *soup_test_session_new (GType type, ...);
void soup_test_session_abort_unref (SoupSession *session);
-SoupServer *soup_test_server_new (gboolean in_own_thread);
-SoupServer *soup_test_server_new_ssl (gboolean in_own_thread);
-void soup_test_server_quit_unref (SoupServer *server);
+typedef enum {
+ SOUP_TEST_SERVER_DEFAULT = 0,
+ SOUP_TEST_SERVER_IN_THREAD = (1 << 0)
+} SoupTestServerOptions;
+
+SoupServer *soup_test_server_new (SoupTestServerOptions options);
+SoupURI *soup_test_server_get_uri (SoupServer *server,
+ const char *scheme,
+ const char *host);
+void soup_test_server_quit_unref (SoupServer *server);
GInputStream *soup_test_request_send (SoupRequest *req,
GCancellable *cancellable,
diff --git a/tests/timeout-test.c b/tests/timeout-test.c
index 5903069b..f98fead3 100644
--- a/tests/timeout-test.c
+++ b/tests/timeout-test.c
@@ -20,7 +20,7 @@ request_started_cb (SoupSession *session, SoupMessage *msg,
}
static void
-do_message_to_session (SoupSession *session, const char *uri,
+do_message_to_session (SoupSession *session, SoupURI *uri,
const char *comment, guint expected_status)
{
SoupMessage *msg;
@@ -28,7 +28,7 @@ do_message_to_session (SoupSession *session, const char *uri,
if (comment)
debug_printf (1, " msg %s\n", comment);
- msg = soup_message_new ("GET", uri);
+ msg = soup_message_new_from_uri ("GET", uri);
g_signal_connect (msg, "finished",
G_CALLBACK (message_finished), &finished);
@@ -63,7 +63,7 @@ static void
do_msg_tests_for_session (SoupSession *timeout_session,
SoupSession *idle_session,
SoupSession *plain_session,
- char *fast_uri, char *slow_uri)
+ SoupURI *fast_uri, SoupURI *slow_uri)
{
SoupSocket *ret, *idle_first, *idle_second;
SoupSocket *plain_first, *plain_second;
@@ -115,7 +115,7 @@ do_msg_tests_for_session (SoupSession *timeout_session,
}
static void
-do_request_to_session (SoupSession *session, const char *uri,
+do_request_to_session (SoupSession *session, SoupURI *uri,
const char *comment, gboolean expect_timeout)
{
SoupRequest *req;
@@ -125,7 +125,7 @@ do_request_to_session (SoupSession *session, const char *uri,
gboolean finished = FALSE;
debug_printf (1, " req %s\n", comment);
- req = soup_session_request (session, uri, NULL);
+ req = soup_session_request_uri (session, uri, NULL);
msg = soup_request_http_get_message (SOUP_REQUEST_HTTP (req));
g_signal_connect (msg, "finished",
@@ -189,7 +189,7 @@ static void
do_req_tests_for_session (SoupSession *timeout_session,
SoupSession *idle_session,
SoupSession *plain_session,
- char *fast_uri, char *slow_uri)
+ SoupURI *fast_uri, SoupURI *slow_uri)
{
SoupSocket *ret, *idle_first, *idle_second;
SoupSocket *plain_first, *plain_second;
@@ -243,7 +243,7 @@ do_req_tests_for_session (SoupSession *timeout_session,
}
static void
-do_timeout_tests (char *fast_uri, char *slow_uri, gboolean extra_slow)
+do_timeout_tests (SoupURI *fast_uri, SoupURI *slow_uri, gboolean extra_slow)
{
SoupSession *timeout_session, *idle_session, *plain_session;
@@ -311,7 +311,7 @@ server_handler (SoupServer *server,
if (!strcmp (path, "/slow")) {
soup_server_pause_message (server, msg);
g_object_set_data (G_OBJECT (msg), "server", server);
- soup_add_timeout (soup_server_get_async_context (server),
+ soup_add_timeout (g_main_context_get_thread_default (),
4000, timeout_finish_message, msg);
}
}
@@ -320,21 +320,19 @@ int
main (int argc, char **argv)
{
SoupServer *server;
- char *fast_uri, *slow_uri;
+ SoupURI *fast_uri, *slow_uri;
test_init (argc, argv, NULL);
debug_printf (1, "http\n");
- server = soup_test_server_new (TRUE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- fast_uri = g_strdup_printf ("http://127.0.0.1:%u/",
- soup_server_get_port (server));
- slow_uri = g_strdup_printf ("http://127.0.0.1:%u/slow",
- soup_server_get_port (server));
+
+ fast_uri = soup_test_server_get_uri (server, "http", NULL);
+ slow_uri = soup_uri_new_with_base (fast_uri, "/slow");
do_timeout_tests (fast_uri, slow_uri, FALSE);
- g_free (fast_uri);
- g_free (slow_uri);
- soup_test_server_quit_unref (server);
+ soup_uri_free (fast_uri);
+ soup_uri_free (slow_uri);
if (tls_available) {
SoupSession *test_session;
@@ -342,12 +340,8 @@ main (int argc, char **argv)
gint64 start, end;
debug_printf (1, "\nhttps\n");
- server = soup_test_server_new_ssl (TRUE);
- soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
- fast_uri = g_strdup_printf ("https://127.0.0.1:%u/",
- soup_server_get_port (server));
- slow_uri = g_strdup_printf ("https://127.0.0.1:%u/slow",
- soup_server_get_port (server));
+ fast_uri = soup_test_server_get_uri (server, "https", "127.0.0.1");
+ slow_uri = soup_uri_new_with_base (fast_uri, "/slow");
/* The 1-second timeouts are too fast for some machines... */
test_session = soup_test_session_new (SOUP_TYPE_SESSION, NULL);
@@ -365,11 +359,12 @@ main (int argc, char **argv)
}
do_timeout_tests (fast_uri, slow_uri, extra_slow);
- g_free (fast_uri);
- g_free (slow_uri);
- soup_test_server_quit_unref (server);
+ soup_uri_free (fast_uri);
+ soup_uri_free (slow_uri);
}
+ soup_test_server_quit_unref (server);
+
test_cleanup ();
return errors != 0;
}
diff --git a/tests/xmlrpc-server-test.c b/tests/xmlrpc-server-test.c
index 421348b1..d89ba3d5 100644
--- a/tests/xmlrpc-server-test.c
+++ b/tests/xmlrpc-server-test.c
@@ -325,19 +325,19 @@ main (int argc, char **argv)
test_init (argc, argv, no_test_entry);
- server = soup_test_server_new (FALSE);
+ server = soup_test_server_new (SOUP_TEST_SERVER_DEFAULT);
soup_server_add_handler (server, "/xmlrpc-server.php",
server_callback, NULL, NULL);
loop = g_main_loop_new (NULL, TRUE);
- if (run_tests) {
- uri = soup_uri_new ("http://127.0.0.1/xmlrpc-server.php");
- soup_uri_set_port (uri, soup_server_get_port (server));
+ uri = soup_test_server_get_uri (server, "http", NULL);
+ soup_uri_set_path (uri, "/xmlrpc-server.php");
+ if (run_tests)
do_xmlrpc_tests (uri);
- soup_uri_free (uri);
- } else
- g_print ("Listening on port %d\n", soup_server_get_port (server));
+ else
+ g_print ("Listening on port %d\n", uri->port);
+ soup_uri_free (uri);
g_main_loop_run (loop);
g_main_loop_unref (loop);