diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-07-10 11:53:31 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-07-10 11:53:31 +0100 |
commit | e5ff82ff529b66a278c4489a7ef107000b0eb540 (patch) | |
tree | f25365c694f256f8da91969f45364cfc98545cd5 /test | |
parent | 2e7b69be0a7e2000f2a40c0607f1def6c9c92ca1 (diff) | |
download | netsurf-e5ff82ff529b66a278c4489a7ef107000b0eb540.tar.gz netsurf-e5ff82ff529b66a278c4489a7ef107000b0eb540.tar.bz2 |
Improve nsurl unit test to exercise the compare API
Diffstat (limited to 'test')
-rw-r--r-- | test/nsurl.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/nsurl.c b/test/nsurl.c index 87058f240..1f4111b21 100644 --- a/test/nsurl.c +++ b/test/nsurl.c @@ -46,6 +46,13 @@ struct test_triplets { const char* res; }; +struct test_compare { + const char* test1; + const char* test2; + nsurl_component parts; + bool res; +}; + static void netsurf_lwc_iterator(lwc_string *str, void *pw) { fprintf(stderr, @@ -518,6 +525,44 @@ END_TEST /** + * url comparison tests + */ +static const struct test_compare compare_tests[] = { + { "http://a/b/c/d;p?q", + "http://a/b/c/d;p?q", + NSURL_WITH_FRAGMENT, + true }, +}; + +/** + * compare + */ +START_TEST(nsurl_compare_test) +{ + nserror err; + nsurl *url1; + nsurl *url2; + const struct test_compare *tst = &compare_tests[_i]; + bool status; + + /* not testing create, this should always succeed */ + err = nsurl_create(tst->test1, &url1); + ck_assert(err == NSERROR_OK); + + /* not testing create, this should always succeed */ + err = nsurl_create(tst->test2, &url2); + ck_assert(err == NSERROR_OK); + + status = nsurl_compare(url1, url2, tst->parts); + ck_assert(status == tst->res); + + nsurl_unref(url1); + nsurl_unref(url2); + +} +END_TEST + +/** * url reference (copy) and unreference(free) */ START_TEST(nsurl_ref_test) @@ -929,6 +974,7 @@ Suite *nsurl_suite(void) TCase *tc_nice_strip; TCase *tc_replace_query; TCase *tc_join; + TCase *tc_compare; s = suite_create("nsurl"); @@ -1075,6 +1121,20 @@ Suite *nsurl_suite(void) suite_add_tcase(s, tc_join); + + /* url compare */ + tc_compare = tcase_create("Compare"); + + tcase_add_unchecked_fixture(tc_compare, + corestring_create, + corestring_teardown); + + tcase_add_loop_test(tc_compare, + nsurl_compare_test, + 0, NELEMS(compare_tests)); + + suite_add_tcase(s, tc_compare); + return s; } |