summaryrefslogtreecommitdiff
path: root/tests/uri-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/uri-test.c')
-rw-r--r--tests/uri-test.c254
1 files changed, 254 insertions, 0 deletions
diff --git a/tests/uri-test.c b/tests/uri-test.c
new file mode 100644
index 0000000..4285013
--- /dev/null
+++ b/tests/uri-test.c
@@ -0,0 +1,254 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- */
+
+/* Lac - Library for asynchronous communication
+ * Copyright (C) 2000 Søren Sandmann (sandmann@daimi.au.dk)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "lac.h"
+
+static void
+print_uri (LacUri *uri, gchar *base_uri_str, gchar *uri_str)
+{
+ g_print ("-----------------------------------------\n");
+ if (base_uri_str)
+ g_print ("base uri: %s\n", base_uri_str);
+ g_print ("uri: %s\n", uri_str);
+ g_print ("\n");
+
+ switch (uri->scheme)
+ {
+ case LAC_SCHEME_UNKNOWN:
+ g_print ("UNKNOWN\n");
+ g_print (" scheme: %s\n", uri->u.unknown.scheme);
+ g_print (" authority: %s\n", uri->u.unknown.authority);
+ g_print (" path: %s\n", uri->u.unknown.path);
+ g_print (" query: %s\n", uri->u.unknown.query);
+ g_print (" fragment: %s\n", uri->fragment);
+ break;
+ case LAC_SCHEME_HTTP:
+ g_print ("HTTP\n");
+ g_print (" host: %s\n", uri->u.http.host);
+ g_print (" port: %d\n", uri->u.http.port);
+ g_print (" path: %s\n", uri->u.http.path);
+ g_print (" query: %s\n", uri->u.http.query);
+ g_print (" fragment: %s\n", uri->fragment);
+ break;
+ case LAC_SCHEME_FTP:
+ g_print ("FTP\n");
+ g_print (" host: %s\n", uri->u.ftp.host);
+ g_print (" username: %s\n", uri->u.ftp.username);
+ g_print (" password: %s\n", uri->u.ftp.password);
+ g_print (" port: %d\n", uri->u.ftp.port);
+ g_print (" path: %s\n", uri->u.ftp.path);
+ g_print (" type: ");
+ switch (uri->u.ftp.type)
+ {
+ case LAC_FTP_TYPE_A:
+ g_print ("a\n");
+ break;
+ case LAC_FTP_TYPE_I:
+ g_print ("i\n");
+ break;
+ case LAC_FTP_TYPE_D:
+ g_print ("d\n");
+ break;
+ case LAC_FTP_TYPE_NONE:
+ g_print ("none\n");
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+ g_print (" fragment %s\n", uri->fragment);
+ break;
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+int
+main ()
+{
+ LacUri *uri;
+ LacUri *base_uri;
+ gchar *uri_str;
+ gchar *base_uri_str;
+
+ uri_str = "//www.daimi.au.dk/baz.html?asdf#//qwer";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "http:baz::?####";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "/index.html#interesting";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "//www:80/index.html#interesting";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "#//www:80/index.html#interesting";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = ":/#//www:80/index.html#interesting";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "mailto:sandmann@daimi.au.dk:80";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "http://www.daimi.au.dk:1324786912387461234/baz.html";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "http://www.daimi.au.dk:8080/baz.html?asdf#//qwer";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "HtTp://www:-1/baz.html?asdf#asdff";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "HtTp://wWWWWWWWWw.baz:::::as:lkj1/baz.html?asdf#asdff";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "http:#?";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "http://sandmann:baz@www.daimi.au.dk/index.html";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp://ftp.daimi.au.dk/~biasdf";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp://sandmann:asdf@ftp.daimi.au.dk/~biasdf";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp://:asdf@ftp.daimi.au.dk/~biasdf";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp://foo:bar@ftp.daimi.au.dk/~biasdf";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp://foo:bar@ftp.com/~biasdf;type=d";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp://foo:bar@ftp.com/~biasdf;type=x";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "file://foo:bar@ftp.com/~biasdf;type=x";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "file:///users/sandmann/public_html/index.html";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "ftp:///users/sandmann/public_html/index.html";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "/users/sandman/public_html/index.html";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "//images.slashdot.org/topics/topictech2.gif";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "../images/euroheader.gif";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ uri_str = "Http:.................";
+ base_uri_str = NULL;
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ base_uri_str = "http://www.europa.com/";
+ base_uri = lac_uri_new_from_str (NULL, base_uri_str);
+ uri_str = "../images/euroheader.gif";
+ uri = lac_uri_new_from_str (base_uri, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ base_uri_str = NULL;
+ uri_str = "ftp://birnan:emfle@birnan.com:345/images/euroheader.gif";
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ base_uri_str = NULL;
+ uri_str = "//../birnan.html";
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ base_uri_str = NULL;
+ uri_str = "///../birnan.html";
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ base_uri_str = NULL;
+ uri_str = "../birnan.html";
+ uri = lac_uri_new_from_str (NULL, uri_str);
+ print_uri (uri, base_uri_str, uri_str);
+
+ return 0;
+}