summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2018-03-18 01:40:47 +0100
committerNika Layzell <nika@thelayzells.com>2018-06-14 22:43:27 -0700
commitb88cbf8c28b6965e6f57d8f044aeab437914c23d (patch)
tree87cd06a40b0b7acb87466baf9cd009cd60398587
parent7bafd175e55d5f6bf96f70973cfff92ee3ca5179 (diff)
downloadlibgit2-b88cbf8c28b6965e6f57d8f044aeab437914c23d.tar.gz
mailmap: Add some super-basic tests
-rw-r--r--tests/mailmap/basic.c98
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"));
+}