diff options
author | Kjell Kvinge <kjell@kvinge.biz> | 2018-07-21 20:17:10 +0200 |
---|---|---|
committer | techknowlogick <techknowlogick@users.noreply.github.com> | 2018-07-21 14:17:09 -0400 |
commit | bed623600d18dac84d17e41a47a8119098dc1d47 (patch) | |
tree | 13a8ef1aa28d3c722a80d9fb6f04ac1b62bb9169 | |
parent | 5fa403c874ef32053f3e04fba7e7b1f605842900 (diff) | |
download | gitea-bed623600d18dac84d17e41a47a8119098dc1d47.tar.gz gitea-bed623600d18dac84d17e41a47a8119098dc1d47.zip |
Accept 'Data:' in commit graph (#4487)
-rw-r--r-- | models/graph.go | 2 | ||||
-rw-r--r-- | models/graph_test.go | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/models/graph.go b/models/graph.go index cfd583ca8b..8ecea9c093 100644 --- a/models/graph.go +++ b/models/graph.go @@ -66,7 +66,7 @@ func graphItemFromString(s string, r *git.Repository) (GraphItem, error) { var ascii string var data = "|||||||" - lines := strings.Split(s, "DATA:") + lines := strings.SplitN(s, "DATA:", 2) switch len(lines) { case 1: diff --git a/models/graph_test.go b/models/graph_test.go index 47c9dbb084..0f6e338792 100644 --- a/models/graph_test.go +++ b/models/graph_test.go @@ -5,6 +5,7 @@ package models import ( + "fmt" "testing" "code.gitea.io/git" @@ -43,3 +44,32 @@ func BenchmarkParseCommitString(b *testing.B) { } } } + +func TestCommitStringParsing(t *testing.T) { + dataFirstPart := "* DATA:||4e61bacab44e9b4730e44a6615d04098dd3a8eaf|2016-12-20 21:10:41 +0100|Author|user@mail.something|4e61bac|" + tests := []struct { + shouldPass bool + testName string + commitMessage string + }{ + {true, "normal", "not a fancy message"}, + {true, "extra pipe", "An extra pipe: |"}, + {true, "extra 'Data:'", "DATA: might be trouble"}, + } + + for _, test := range tests { + + t.Run(test.testName, func(t *testing.T) { + testString := fmt.Sprintf("%s%s", dataFirstPart, test.commitMessage) + graphItem, err := graphItemFromString(testString, nil) + if err != nil && test.shouldPass { + t.Errorf("Could not parse %s", testString) + return + } + + if test.commitMessage != graphItem.Subject { + t.Errorf("%s does not match %s", test.commitMessage, graphItem.Subject) + } + }) + } +} |