diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2018-03-18 01:40:47 +0100 |
---|---|---|
committer | Nika Layzell <nika@thelayzells.com> | 2018-06-14 22:43:27 -0700 |
commit | b88cbf8c28b6965e6f57d8f044aeab437914c23d (patch) | |
tree | 87cd06a40b0b7acb87466baf9cd009cd60398587 | |
parent | 7bafd175e55d5f6bf96f70973cfff92ee3ca5179 (diff) | |
download | libgit2-b88cbf8c28b6965e6f57d8f044aeab437914c23d.tar.gz |
mailmap: Add some super-basic tests
-rw-r--r-- | tests/mailmap/basic.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/tests/mailmap/basic.c b/tests/mailmap/basic.c new file mode 100644 index 000000000..b507407a5 --- /dev/null +++ b/tests/mailmap/basic.c @@ -0,0 +1,98 @@ +#include "clar.h" +#include "clar_libgit2.h" + +#include "common.h" +#include "git2/mailmap.h" + +static git_mailmap *mailmap = NULL; + +const char TEST_MAILMAP[] = + "Foo bar <foo@bar.com> <foo@baz.com> \n" + "Blatantly invalid line\n" + "Foo bar <foo@bar.com> <foo@bal.com>\n" + "<email@foo.com> <otheremail@foo.com>\n" + "<email@foo.com> Other Name <yetanotheremail@foo.com>\n"; + +void test_mailmap_basic__initialize(void) +{ + cl_git_pass(git_mailmap_parse(&mailmap, TEST_MAILMAP, sizeof(TEST_MAILMAP))); +} + +void test_mailmap_basic__cleanup(void) +{ + if (mailmap) { + git_mailmap_free(mailmap); + mailmap = NULL; + } +} + +void test_mailmap_basic__entry(void) +{ + git_mailmap_entry* entry; + + cl_assert(git_mailmap_entry_count(mailmap) == 4); + + entry = git_mailmap_entry_byindex(mailmap, 0); + cl_assert(entry); + cl_assert(!entry->replace_name); + cl_assert(!git__strcmp(entry->replace_email, "foo@baz.com")); + + entry = git_mailmap_entry_byindex(mailmap, 10000); + cl_assert(!entry); +} + +void test_mailmap_basic__lookup_not_found(void) +{ + git_mailmap_entry* entry = git_mailmap_entry_lookup( + mailmap, + "Whoever", + "doesnotexist@fo.com"); + cl_assert(!entry); +} + +void test_mailmap_basic__lookup(void) +{ + git_mailmap_entry* entry = git_mailmap_entry_lookup( + mailmap, + "Typoed the name once", + "foo@baz.com"); + cl_assert(entry); + cl_assert(!git__strcmp(entry->real_name, "Foo bar")); +} + +void test_mailmap_basic__empty_email_query(void) +{ + const char* name; + const char* email; + git_mailmap_resolve( + &name, + &email, + mailmap, + "Author name", + "otheremail@foo.com"); + cl_assert(!git__strcmp(name, "Author name")); + cl_assert(!git__strcmp(email, "email@foo.com")); +} + +void test_mailmap_basic__name_matching(void) +{ + const char* name; + const char* email; + git_mailmap_resolve( + &name, + &email, + mailmap, + "Other Name", + "yetanotheremail@foo.com"); + cl_assert(!git__strcmp(name, "Other Name")); + cl_assert(!git__strcmp(email, "email@foo.com")); + + git_mailmap_resolve( + &name, + &email, + mailmap, + "Other Name That Doesn't Match", + "yetanotheremail@foo.com"); + cl_assert(!git__strcmp(name, "Other Name That Doesn't Match")); + cl_assert(!git__strcmp(email, "yetanotheremail@foo.com")); +} |