diff options
author | Martin Willi <martin@strongswan.org> | 2009-07-06 11:44:46 +0200 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2009-07-06 13:15:29 +0200 |
commit | dca2eee92a34dd430f15051e9c2cf93d30a4aee4 (patch) | |
tree | 09bdeb960e4522d8ec098a72da42cb427abc95b6 | |
parent | 05fe0a7d25a672a1515de32bbac23a6f69bbb431 (diff) | |
download | strongswan-dca2eee92a34dd430f15051e9c2cf93d30a4aee4.tar.bz2 strongswan-dca2eee92a34dd430f15051e9c2cf93d30a4aee4.tar.xz |
added unit test for identification_t.matches()
-rw-r--r-- | src/charon/plugins/unit_tester/tests.h | 1 | ||||
-rw-r--r-- | src/charon/plugins/unit_tester/tests/test_id.c | 53 |
2 files changed, 54 insertions, 0 deletions
diff --git a/src/charon/plugins/unit_tester/tests.h b/src/charon/plugins/unit_tester/tests.h index c303da723..b99940c1a 100644 --- a/src/charon/plugins/unit_tester/tests.h +++ b/src/charon/plugins/unit_tester/tests.h @@ -38,5 +38,6 @@ DEFINE_TEST("SSH agent", test_agent, FALSE) DEFINE_TEST("ID parts", test_id_parts, FALSE) DEFINE_TEST("ID wildcards", test_id_wildcards, FALSE) DEFINE_TEST("ID equals", test_id_equals, FALSE) +DEFINE_TEST("ID matches", test_id_matches, FALSE) /** @}*/ diff --git a/src/charon/plugins/unit_tester/tests/test_id.c b/src/charon/plugins/unit_tester/tests/test_id.c index 9dc7e7d84..a1ef76be8 100644 --- a/src/charon/plugins/unit_tester/tests/test_id.c +++ b/src/charon/plugins/unit_tester/tests/test_id.c @@ -193,4 +193,57 @@ bool test_id_equals() return TRUE; } +/******************************************************************************* + * identification matches test + ******************************************************************************/ + +static id_match_t test_id_matches_one(identification_t *a, char *b_str) +{ + identification_t *b; + id_match_t match; + + b = identification_create_from_string(b_str); + match = a->matches(a, b); + b->destroy(b); + return match; +} +bool test_id_matches() +{ + identification_t *a; + + a = identification_create_from_string( + "C=CH, E=martin@strongswan.org, CN=martin"); + + if (test_id_matches_one(a, "C=CH, E=martin@strongswan.org, CN=martin") + != ID_MATCH_PERFECT) + { + return FALSE; + } + if (test_id_matches_one(a, "C=CH, E=*, CN=martin") != ID_MATCH_ONE_WILDCARD) + { + return FALSE; + } + if (test_id_matches_one(a, "C=CH, E=*, CN=*") != ID_MATCH_ONE_WILDCARD - 1) + { + return FALSE; + } + if (test_id_matches_one(a, "C=*, E=*, CN=*") != ID_MATCH_ONE_WILDCARD - 2) + { + return FALSE; + } + if (test_id_matches_one(a, "C=*, E=*, CN=*, O=BADInc") != ID_MATCH_NONE) + { + return FALSE; + } + if (test_id_matches_one(a, "C=*, E=*") != ID_MATCH_NONE) + { + return FALSE; + } + if (test_id_matches_one(a, "C=*, E=a@b.c, CN=*") != ID_MATCH_NONE) + { + return FALSE; + } + a->destroy(a); + return TRUE; +} |