Commit 60caf0246538f26ea867302021747a0f7eae0cda

schu 2011-06-28T17:06:06

t04-commit: add tests for git_signature__parse git_signature__parse used to be very strict about what's a well-formed signature. Add tests checking git_signature__parse can stick with "unexpected" signatures (IOW no author name and / or no email, etc). Signed-off-by: schu <schu-github@schulog.org>

diff --git a/tests/t04-commit.c b/tests/t04-commit.c
index 415017a..63d409c 100644
--- a/tests/t04-commit.c
+++ b/tests/t04-commit.c
@@ -241,6 +241,78 @@ BEGIN_TEST(parse1, "parse the signature line in a commit")
 		123456,
 		-60);
 
+	/* Parse a signature without an author field */
+	TEST_SIGNATURE_PASS(
+		"committer <tanoku@gmail.com> 123456 -0100 \n",
+		"committer ",
+		"",
+		"tanoku@gmail.com",
+		123456,
+		-60);
+
+	/* Parse a signature without an author field */
+	TEST_SIGNATURE_PASS(
+		"committer  <tanoku@gmail.com> 123456 -0100 \n",
+		"committer ",
+		"",
+		"tanoku@gmail.com",
+		123456,
+		-60);
+
+	/* Parse a signature with an empty author field */
+	TEST_SIGNATURE_PASS(
+		"committer   <tanoku@gmail.com> 123456 -0100 \n",
+		"committer ",
+		" ",
+		"tanoku@gmail.com",
+		123456,
+		-60);
+
+	/* Parse a signature with an empty email field */
+	TEST_SIGNATURE_PASS(
+		"committer Vicent Marti <> 123456 -0100 \n",
+		"committer ",
+		"Vicent Marti",
+		"",
+		123456,
+		-60);
+
+	/* Parse a signature with an empty email field */
+	TEST_SIGNATURE_PASS(
+		"committer Vicent Marti < > 123456 -0100 \n",
+		"committer ",
+		"Vicent Marti",
+		" ",
+		123456,
+		-60);
+
+	/* Parse a signature with empty name and email */
+	TEST_SIGNATURE_PASS(
+		"committer <> 123456 -0100 \n",
+		"committer ",
+		"",
+		"",
+		123456,
+		-60);
+
+	/* Parse a signature with empty name and email */
+	TEST_SIGNATURE_PASS(
+		"committer  < > 123456 -0100 \n",
+		"committer ",
+		"",
+		" ",
+		123456,
+		-60);
+
+	/* Parse an obviously invalid signature */
+	TEST_SIGNATURE_PASS(
+		"committer foo<@bar> 123456 -0100 \n",
+		"committer ",
+		"fo",
+		"@bar",
+		123456,
+		-60);
+
 	TEST_SIGNATURE_FAIL(
 		"committer Vicent Marti <tanoku@gmail.com> 123456 -1500 \n",
 		"committer ");