summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2015-12-01 10:03:56 +0100
committerPatrick Steinhardt <ps@pks.im>2015-12-01 10:07:00 +0100
commit7f8fe1d45e086adc9e7f3f0c33b624eeb3774033 (patch)
tree638145f66aaa879b564d46e034eb7298a4de8070 /tests
parent337b2b08f46ea77d61fa66657ad62d8702bc233a (diff)
downloadlibgit2-7f8fe1d45e086adc9e7f3f0c33b624eeb3774033.tar.gz
commit: introduce `git_commit_body`
It is already possible to get a commit's summary with the `git_commit_summary` function. It is not possible to get the remaining part of the commit message, that is the commit message's body. Fix this by introducing a new function `git_commit_body`.
Diffstat (limited to 'tests')
-rw-r--r--tests/commit/commit.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/commit/commit.c b/tests/commit/commit.c
index 81aaf80d3..c82971f4b 100644
--- a/tests/commit/commit.c
+++ b/tests/commit/commit.c
@@ -63,6 +63,18 @@ void assert_commit_summary(const char *expected, const char *given)
git_commit__free(dummy);
}
+void assert_commit_body(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_body(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");
@@ -80,8 +92,35 @@ void test_commit_commit__summary(void)
assert_commit_summary(" Spaces after newlines are collapsed", "\n Spaces after newlines\n are\n collapsed\n "); /* newlines at the very beginning are ignored and not collapsed */
assert_commit_summary(" Spaces before newlines are collapsed", " \nSpaces before newlines \nare \ncollapsed \n");
assert_commit_summary(" Spaces around newlines are collapsed", " \n Spaces around newlines \n are \n collapsed \n ");
+ assert_commit_summary(" Trailing newlines are" , " \n Trailing newlines \n are \n\n collapsed \n ");
+ assert_commit_summary(" Trailing spaces are stripped", " \n Trailing spaces \n are stripped \n\n \n \t ");
assert_commit_summary("", "");
assert_commit_summary("", " ");
assert_commit_summary("", "\n");
assert_commit_summary("", "\n \n");
}
+
+void test_commit_commit__body(void)
+{
+ assert_commit_body(NULL, "One-liner with no trailing newline");
+ assert_commit_body(NULL, "One-liner with trailing newline\n");
+ assert_commit_body(NULL, "\n\nTrimmed leading&trailing newlines\n\n");
+ assert_commit_body("(There are more!)", "\nFirst paragraph only\n\n(There are more!)");
+ assert_commit_body("(Yes, unwrapped!)", "\nFirst paragraph\nwith unwrapped\ntrailing\tlines\n\n(Yes, unwrapped!)");
+ assert_commit_body("are preserved", "\tLeading\n\ttabs\n\nare preserved"); /* tabs around newlines are collapsed down to a single space */
+ assert_commit_body("are preserved", " Leading\n Spaces\n\nare preserved"); /* spaces around newlines are collapsed down to a single space */
+ assert_commit_body(NULL, "Trailing tabs\tare removed\t\t");
+ assert_commit_body(NULL, "Trailing spaces are removed ");
+ assert_commit_body("are removed", "Trailing tabs\t\n\nare removed");
+ assert_commit_body("are removed", "Trailing spaces \n\nare removed");
+ assert_commit_body(NULL,"Newlines\nare\nreplaced by spaces\n");
+ assert_commit_body(NULL , "\n Spaces after newlines\n are\n collapsed\n "); /* newlines at the very beginning are ignored and not collapsed */
+ assert_commit_body(NULL , " \nSpaces before newlines \nare \ncollapsed \n");
+ assert_commit_body(NULL , " \n Spaces around newlines \n are \n collapsed \n ");
+ assert_commit_body("collapsed" , " \n Trailing newlines \n are \n\n collapsed \n ");
+ assert_commit_body(NULL, " \n Trailing spaces \n are stripped \n\n \n \t ");
+ assert_commit_body(NULL , "");
+ assert_commit_body(NULL , " ");
+ assert_commit_body(NULL , "\n");
+ assert_commit_body(NULL , "\n \n");
+}