From fc1be0144cec6e339a5e715dab142a0dfb98e10e Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Fri, 10 Mar 2017 10:59:09 +0000 Subject: extend nsurl parent API tests --- test/nsurl.c | 115 ++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 67 insertions(+), 48 deletions(-) diff --git a/test/nsurl.c b/test/nsurl.c index 798a1ffb6..80534feee 100644 --- a/test/nsurl.c +++ b/test/nsurl.c @@ -750,40 +750,6 @@ START_TEST(nsurl_refragment_test) } END_TEST -static const struct test_pairs parent_tests[] = { - { "http://www.f.org/a/b/c", "http://www.f.org/a/b/" }, -}; - -/** - * generate parent url - */ -START_TEST(nsurl_parent_test) -{ - nserror err; - nsurl *url; - nsurl *res_url; - const struct test_pairs *tst = &parent_tests[_i]; - - /* not testing create, this should always succeed */ - err = nsurl_create(tst->test, &url); - ck_assert(err == NSERROR_OK); - - err = nsurl_parent(url, &res_url); - if (tst->res == NULL) { - /* result must be invalid (bad input) */ - ck_assert(err != NSERROR_OK); - } else { - /* result must be valid */ - ck_assert(err == NSERROR_OK); - - ck_assert_str_eq(nsurl_access(res_url), tst->res); - - nsurl_unref(res_url); - } - nsurl_unref(url); - -} -END_TEST /** @@ -1158,6 +1124,7 @@ START_TEST(nsurl_api_assert_nice_test) } END_TEST + /** * check parent asserts on NULL parameter */ @@ -1172,6 +1139,69 @@ START_TEST(nsurl_api_assert_parent_test) END_TEST + + +/* parent test case */ + +static const struct test_pairs parent_tests[] = { + { "http://www.f.org/a/b/c", "http://www.f.org/a/b/" }, + { "https://www.moo.org/", "https://www.moo.org/" }, + { "https://www.moo.org/asinglepathelementthatsquitelong/", "https://www.moo.org/" }, + { "https://user:pw@www.moo.org/a/b#x?a=b", "https://user:pw@www.moo.org/a/" }, +}; + +/** + * generate parent url + */ +START_TEST(nsurl_parent_test) +{ + nserror err; + nsurl *url; + nsurl *res_url; + const struct test_pairs *tst = &parent_tests[_i]; + + /* not testing create, this should always succeed */ + err = nsurl_create(tst->test, &url); + ck_assert(err == NSERROR_OK); + + err = nsurl_parent(url, &res_url); + if (tst->res == NULL) { + /* result must be invalid (bad input) */ + ck_assert(err != NSERROR_OK); + } else { + /* result must be valid */ + ck_assert(err == NSERROR_OK); + + ck_assert_str_eq(nsurl_access(res_url), tst->res); + + nsurl_unref(res_url); + } + nsurl_unref(url); + +} +END_TEST + + +/** + * test case for parent API + */ +static TCase *nsurl_parent_case_create(void) +{ + TCase *tc; + tc = tcase_create("Parent"); + + tcase_add_unchecked_fixture(tc, + corestring_create, + corestring_teardown); + + tcase_add_loop_test(tc, + nsurl_parent_test, + 0, NELEMS(parent_tests)); + + return tc; +} + + /* utf8 test case */ /** @@ -1250,7 +1280,6 @@ static Suite *nsurl_suite(void) TCase *tc_compare; TCase *tc_fragment; TCase *tc_component; - TCase *tc_parent; s = suite_create("nsurl"); @@ -1419,10 +1448,10 @@ static Suite *nsurl_suite(void) tcase_add_loop_test(tc_fragment, nsurl_defragment_test, - 0, NELEMS(parent_tests)); + 0, NELEMS(fragment_tests)); tcase_add_loop_test(tc_fragment, nsurl_refragment_test, - 0, NELEMS(parent_tests)); + 0, NELEMS(fragment_tests)); suite_add_tcase(s, tc_fragment); @@ -1445,17 +1474,7 @@ static Suite *nsurl_suite(void) /* parent */ - tc_parent = tcase_create("Parent"); - - tcase_add_unchecked_fixture(tc_parent, - corestring_create, - corestring_teardown); - - tcase_add_loop_test(tc_parent, - nsurl_parent_test, - 0, NELEMS(parent_tests)); - - suite_add_tcase(s, tc_parent); + suite_add_tcase(s, nsurl_parent_case_create()); /* UTF-8 output */ suite_add_tcase(s, nsurl_utf8_case_create()); -- cgit v1.2.3