summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/urldbtest.c126
1 files changed, 51 insertions, 75 deletions
diff --git a/test/urldbtest.c b/test/urldbtest.c
index bd9fa9315..89cf27679 100644
--- a/test/urldbtest.c
+++ b/test/urldbtest.c
@@ -71,27 +71,6 @@ static nsurl *make_url(const char *url)
return nsurl;
}
-static char *make_path_query(nsurl *url)
-{
- size_t len;
- char *path_query;
- if (nsurl_get(url, NSURL_PATH | NSURL_QUERY, &path_query, &len) !=
- NSERROR_OK) {
- LOG("failed creating path_query");
- exit(1);
- }
- return path_query;
-}
-
-static lwc_string *make_lwc(const char *str)
-{
- lwc_string *lwc;
- if (lwc_intern_string(str, strlen(str), &lwc) != lwc_error_ok) {
- LOG("failed creating lwc_string");
- exit(1);
- }
- return lwc;
-}
static bool test_urldb_set_cookie(const char *header, const char *url,
const char *referer)
@@ -208,58 +187,37 @@ START_TEST(urldb_original_test)
nsurl *urlr;
char *path_query;
- h = urldb_add_host("127.0.0.1");
- ck_assert_msg(h != NULL, "failed adding host");
-
- h = urldb_add_host("intranet");
- ck_assert_msg(h != NULL, "failed adding host");
-
+ /* ensure title can be set */
url = make_url("http://intranet/");
- scheme = nsurl_get_component(url, NSURL_SCHEME);
- p = urldb_add_path(scheme, 0, h, strdup("/"), NULL, url);
- ck_assert_msg(p != NULL, "failed adding path");
-
- lwc_string_unref(scheme);
-
+ urldb_add_url(url);
urldb_set_url_title(url, "foo");
u = urldb_get_url_data(url);
- assert(u && strcmp(u->title, "foo") == 0);
+ ck_assert(u && strcmp(u->title, "foo") == 0);
nsurl_unref(url);
- /* Get host entry */
- h = urldb_add_host("netsurf.strcprstskrzkrk.co.uk");
- ck_assert_msg(h != NULL, "failed adding host");
-
- /* Get path entry */
+ /* fragments */
url = make_url("http://netsurf.strcprstskrzkrk.co.uk/path/to/resource.htm?a=b");
- scheme = nsurl_get_component(url, NSURL_SCHEME);
- path_query = make_path_query(url);
- fragment = make_lwc("zz");
- p = urldb_add_path(scheme, 0, h, strdup(path_query), fragment, url);
- ck_assert_msg(p != NULL, "failed adding path");
-
- lwc_string_unref(fragment);
-
- fragment = make_lwc("aa");
- p = urldb_add_path(scheme, 0, h, strdup(path_query), fragment, url);
- ck_assert_msg(p != NULL, "failed adding path");
+ ck_assert(urldb_add_url(url) == true);
+ nsurl_unref(url);
- lwc_string_unref(fragment);
+ url = make_url("http://netsurf.strcprstskrzkrk.co.uk/path/to/resource.htm#zz?a=b");
+ ck_assert(urldb_add_url(url) == true);
+ nsurl_unref(url);
- fragment = make_lwc("yy");
- p = urldb_add_path(scheme, 0, h, strdup(path_query), fragment, url);
- ck_assert_msg(p != NULL, "failed adding path");
+ url = make_url("http://netsurf.strcprstskrzkrk.co.uk/path/to/resource.htm#aa?a=b");
+ ck_assert(urldb_add_url(url) == true);
+ nsurl_unref(url);
- free(path_query);
- lwc_string_unref(fragment);
- lwc_string_unref(scheme);
+ url = make_url("http://netsurf.strcprstskrzkrk.co.uk/path/to/resource.htm#yy?a=b");
+ ck_assert(urldb_add_url(url) == true);
nsurl_unref(url);
url = make_url("file:///home/");
- urldb_add_url(url);
+ ck_assert(urldb_add_url(url) == true);
nsurl_unref(url);
+ /* set cookies on urls */
url = make_url("http://www.minimarcos.org.uk/cgi-bin/forum/Blah.pl?,v=login,p=2");
urldb_set_cookie("mmblah=foo; path=/; expires=Thur, 31-Dec-2099 00:00:00 GMT\r\n", url, NULL);
nsurl_unref(url);
@@ -416,6 +374,11 @@ static TCase *urldb_original_case_create(void)
return tc;
}
+/**
+ * Session basic test case
+ *
+ * The databases are loaded and saved with no manipulation
+ */
START_TEST(urldb_session_test)
{
nserror res;
@@ -439,8 +402,12 @@ START_TEST(urldb_session_test)
unlink(outnam);
/* write cookies out */
+ outnam = tmpnam(NULL);
urldb_save_cookies(outnam);
+ /* remove test output */
+ unlink(outnam);
+
/* finalise options */
res = nsoption_finalise(NULL, NULL);
ck_assert_int_eq(res, NSERROR_OK);
@@ -448,6 +415,11 @@ START_TEST(urldb_session_test)
}
END_TEST
+/**
+ * Session more extensive test case
+ *
+ * The databases are loaded and saved with a host and paths added
+ */
START_TEST(urldb_session_add_test)
{
nserror res;
@@ -467,15 +439,12 @@ START_TEST(urldb_session_add_test)
urldb_load_cookies(test_cookies_path);
/* add something to db */
- h = urldb_add_host("tree.example.com");
- ck_assert_msg(h != NULL, "failed adding host");
-
url = make_url("http://tree.example.com/");
- scheme = nsurl_get_component(url, NSURL_SCHEME);
- p = urldb_add_path(scheme, 0, h, strdup("/"), NULL, url);
- ck_assert_msg(p != NULL, "failed adding path");
+ urldb_add_url(url);
+
+ res = urldb_update_url_visit_data(url);
+ ck_assert_int_eq(res, NSERROR_OK);
- lwc_string_unref(scheme);
nsurl_unref(url);
/* write database out */
@@ -487,8 +456,12 @@ START_TEST(urldb_session_add_test)
unlink(outnam);
/* write cookies out */
+ outnam = tmpnam(NULL);
urldb_save_cookies(outnam);
+ /* remove test output */
+ unlink(outnam);
+
/* finalise options */
res = nsoption_finalise(NULL, NULL);
ck_assert_int_eq(res, NSERROR_OK);
@@ -496,7 +469,12 @@ START_TEST(urldb_session_add_test)
}
END_TEST
-
+/**
+ * Test case to check entire session
+ *
+ * These tests define a session as loading a url database and cookie
+ * database and then saving them back to disc.
+ */
static TCase *urldb_session_case_create(void)
{
TCase *tc;
@@ -818,19 +796,18 @@ static TCase *urldb_cookie_case_create(void)
}
-
-
/**
- * Test urldb_add_host asserting on NULL.
+ * Test urldb_add_url asserting on NULL.
*/
-START_TEST(urldb_api_add_host_assert_test)
+START_TEST(urldb_api_add_url_assert_test)
{
- struct host_part *res;
- res = urldb_add_host(NULL);
- ck_assert(res == NULL);
+ bool res;
+ res = urldb_add_url(NULL);
+ ck_assert(res == true);
}
END_TEST
+
/**
* test url database finalisation without initialisation.
*/
@@ -850,12 +827,11 @@ static TCase *urldb_api_case_create(void)
tc = tcase_create("API_checks");
tcase_add_test_raise_signal(tc,
- urldb_api_add_host_assert_test,
+ urldb_api_add_url_assert_test,
6);
tcase_add_test(tc, urldb_api_destroy_no_init_test);
-
return tc;
}