summaryrefslogtreecommitdiff
path: root/tests/commit/commit.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/commit/commit.c')
-rw-r--r--tests/commit/commit.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/commit/commit.c b/tests/commit/commit.c
index 8f071ff94..4af9190b5 100644
--- a/tests/commit/commit.c
+++ b/tests/commit/commit.c
@@ -1,4 +1,6 @@
#include "clar_libgit2.h"
+#include "commit.h"
+#include "git2/commit.h"
static git_repository *_repo;
@@ -44,3 +46,30 @@ void test_commit_commit__create_unexisting_update_ref(void)
git_signature_free(s);
git_reference_free(ref);
}
+
+void assert_commit_summary(const char *expected, const char *given)
+{
+ git_commit *dummy;
+
+ cl_assert(dummy = git__calloc(1, sizeof(struct git_commit)));
+
+ dummy->raw_message = git__strdup(given);
+ cl_assert_equal_s(expected, git_commit_summary(dummy));
+
+ git_commit__free(dummy);
+}
+
+void test_commit_commit__summary(void)
+{
+ assert_commit_summary("One-liner with no trailing newline", "One-liner with no trailing newline");
+ assert_commit_summary("One-liner with trailing newline", "One-liner with trailing newline\n");
+ assert_commit_summary("Trimmed leading&trailing newlines", "\n\nTrimmed leading&trailing newlines\n\n");
+ assert_commit_summary("First paragraph only", "\nFirst paragraph only\n\n(There are more!)");
+ assert_commit_summary("First paragraph with unwrapped trailing\tlines", "\nFirst paragraph\nwith unwrapped\ntrailing\tlines\n\n(Yes, unwrapped!)");
+ assert_commit_summary("\tLeading \ttabs", "\tLeading\n\ttabs\n\nis preserved");
+ assert_commit_summary(" Leading Spaces", " Leading\n Spaces\n\nare preserved");
+ assert_commit_summary("Trailing tabs\tare removed", "Trailing tabs\tare removed\t\t");
+ assert_commit_summary("Trailing spaces are removed", "Trailing spaces are removed ");
+ assert_commit_summary("Trailing tabs", "Trailing tabs\t\n\nare removed");
+ assert_commit_summary("Trailing spaces", "Trailing spaces \n\nare removed");
+}