This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / knotmirror / xrpc / gitea / commit_test.go
5.2 kB 120 lines
1// Copyright 2021 The Gitea Authors. All rights reserved. 2// SPDX-License-Identifier: MIT 3 4package gitea 5 6import ( 7 "strings" 8 "testing" 9 10 "github.com/go-git/go-git/v5/plumbing" 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 "tangled.org/core/types" 14) 15 16func TestCommitFromReader(t *testing.T) { 17 commitString := `tree f1a6cb52b2d16773290cefe49ad0684b50a4f930 18parent 37991dec2c8e592043f47155ce4808d4580f9123 19author silverwind <me@silverwind.io> 1563741793 +0200 20committer silverwind <me@silverwind.io> 1563741793 +0200 21gpgsig -----BEGIN PGP SIGNATURE----- 22` + " " + ` 23 iQIzBAABCAAdFiEEWPb2jX6FS2mqyJRQLmK0HJOGlEMFAl00zmEACgkQLmK0HJOG 24 lEMDFBAAhQKKqLD1VICygJMEB8t1gBmNLgvziOLfpX4KPWdPtBk3v/QJ7OrfMrVK 25 xlC4ZZyx6yMm1Q7GzmuWykmZQJ9HMaHJ49KAbh5MMjjV/+OoQw9coIdo8nagRUld 26 vX8QHzNZ6Agx77xHuDJZgdHKpQK3TrMDsxzoYYMvlqoLJIDXE1Sp7KYNy12nhdRg 27 R6NXNmW8oMZuxglkmUwayMiPS+N4zNYqv0CXYzlEqCOgq9MJUcAMHt+KpiST+sm6 28 FWkJ9D+biNPyQ9QKf1AE4BdZia4lHfPYU/C/DEL/a5xQuuop/zMQZoGaIA4p2zGQ 29 /maqYxEIM/yRBQpT1jlODKPJrMEgx7SgY2hRU47YZ4fj6350fb6fNBtiiMAfJbjL 30 S3Gh85E9fm3hJaNSPKAaJFYL1Ya2svuWfgHj677C56UcmYis7fhiiy1aJuYdHnSm 31 sD53z/f0J+We4VZjY+pidvA9BGZPFVdR3wd3xGs8/oH6UWaLJAMGkLG6dDb3qDLm 32 1LFZwsX8sdD32i1SiWanYQYSYMyFWr0awi4xdoMtYCL7uKBYtwtPyvq3cj4IrJlb 33 mfeFhT57UbE4qukTDIQ0Y0WM40UYRTakRaDY7ubhXgLgx09Cnp9XTVMsHgT6j9/i 34 1pxsB104XLWjQHTjr1JtiaBQEwFh9r2OKTcpvaLcbNtYpo7CzOs= 35 =FRsO 36 -----END PGP SIGNATURE----- 37 38empty commit` 39 40 sha := plumbing.NewHash("feaf4ba6bc635fec442f46ddd4512416ec43c2c2") 41 42 commitFromReader, err := ReadCommit(sha, strings.NewReader(commitString)) 43 assert.NoError(t, err) 44 require.NotNil(t, commitFromReader) 45 46 tcommit := types.Commit{} 47 tcommit.FromGoGitCommit(commitFromReader) 48 assert.EqualValues(t, sha, tcommit.Hash) 49 50 assert.Equal(t, `-----BEGIN PGP SIGNATURE----- 51 52iQIzBAABCAAdFiEEWPb2jX6FS2mqyJRQLmK0HJOGlEMFAl00zmEACgkQLmK0HJOG 53lEMDFBAAhQKKqLD1VICygJMEB8t1gBmNLgvziOLfpX4KPWdPtBk3v/QJ7OrfMrVK 54xlC4ZZyx6yMm1Q7GzmuWykmZQJ9HMaHJ49KAbh5MMjjV/+OoQw9coIdo8nagRUld 55vX8QHzNZ6Agx77xHuDJZgdHKpQK3TrMDsxzoYYMvlqoLJIDXE1Sp7KYNy12nhdRg 56R6NXNmW8oMZuxglkmUwayMiPS+N4zNYqv0CXYzlEqCOgq9MJUcAMHt+KpiST+sm6 57FWkJ9D+biNPyQ9QKf1AE4BdZia4lHfPYU/C/DEL/a5xQuuop/zMQZoGaIA4p2zGQ 58/maqYxEIM/yRBQpT1jlODKPJrMEgx7SgY2hRU47YZ4fj6350fb6fNBtiiMAfJbjL 59S3Gh85E9fm3hJaNSPKAaJFYL1Ya2svuWfgHj677C56UcmYis7fhiiy1aJuYdHnSm 60sD53z/f0J+We4VZjY+pidvA9BGZPFVdR3wd3xGs8/oH6UWaLJAMGkLG6dDb3qDLm 611LFZwsX8sdD32i1SiWanYQYSYMyFWr0awi4xdoMtYCL7uKBYtwtPyvq3cj4IrJlb 62mfeFhT57UbE4qukTDIQ0Y0WM40UYRTakRaDY7ubhXgLgx09Cnp9XTVMsHgT6j9/i 631pxsB104XLWjQHTjr1JtiaBQEwFh9r2OKTcpvaLcbNtYpo7CzOs= 64=FRsO 65-----END PGP SIGNATURE-----`, commitFromReader.PGPSignature) 66 assert.Equal(t, `tree f1a6cb52b2d16773290cefe49ad0684b50a4f930 67parent 37991dec2c8e592043f47155ce4808d4580f9123 68author silverwind <me@silverwind.io> 1563741793 +0200 69committer silverwind <me@silverwind.io> 1563741793 +0200 70 71empty commit`, tcommit.Payload()) 72 assert.Equal(t, "silverwind <me@silverwind.io>", commitFromReader.Author.String()) 73} 74 75func TestCommitFromReaderMergeTag(t *testing.T) { 76 // Built with explicit "\n" concatenation, not a backtick literal: the blank 77 // mergetag continuation lines are " \n" (space + newline) and gofmt/editors 78 // strip trailing whitespace from raw literals, which would corrupt the input. 79 commitString := "tree 635dfb8e1e9d4d75855cc23eb28d35533f55b42f\n" + 80 "parent c1fa0bb633e4a6b11e83ffc57fa5abe8ebb87891\n" + 81 "parent 8f80b5b227ef9ea422080487715c841856339aed\n" + 82 "author Linus Torvalds <torvalds@linux-foundation.org> 1778539129 -0700\n" + 83 "committer Linus Torvalds <torvalds@linux-foundation.org> 1778539129 -0700\n" + 84 "mergetag object 8f80b5b227ef9ea422080487715c841856339aed\n" + 85 " type commit\n" + 86 " tag linux_kselftest-kunit-fixes-7.1-rc4\n" + 87 " tagger Shuah Khan <skhan@linuxfoundation.org> 1778535878 -0600\n" + 88 " \n" + // blank continuation line inside the mergetag: the bug trigger 89 " linux_kselftest-kunit-fixes-7.1-rc4\n" + 90 " \n" + 91 " Fix to decouple KUNIT_DEBUGFS and KUNIT_ALL_TESTS options.\n" + 92 " -----BEGIN PGP SIGNATURE-----\n" + 93 " \n" + 94 " iQIzBAABCgAdFiEEPZKym/RZuOCGeA/kCwJExA0NQxwFAmoCUf0ACgkQCwJExA0N\n" + 95 " =QdSk\n" + 96 " -----END PGP SIGNATURE-----\n" + 97 "\n" + // real header/message separator: truly empty line 98 "Merge tag 'linux_kselftest-kunit-fixes-7.1-rc4' of git://example\n" + 99 "\n" + 100 "Pull kunit fixes from Shuah Khan" 101 102 sha := plumbing.NewHash("50897c955902c93ae71c38698abb910525ebdc89") 103 104 c, err := ReadCommit(sha, strings.NewReader(commitString)) 105 require.NoError(t, err) 106 require.NotNil(t, c) 107 108 // Message must be only the merge message, not polluted with the tag body/signature. 109 assert.Equal(t, "Merge tag 'linux_kselftest-kunit-fixes-7.1-rc4' of git://example\n\nPull kunit fixes from Shuah Khan", c.Message) 110 111 // mergetag is captured, and this commit itself is not gpg-signed. 112 assert.Contains(t, c.MergeTag, "type commit\n") 113 assert.Contains(t, c.MergeTag, "-----END PGP SIGNATURE-----") 114 assert.Empty(t, c.PGPSignature) 115 116 // The broken parser dumped stray continuation lines into ExtraHeaders[""]. 117 assert.NotContains(t, c.ExtraHeaders, "") 118 119 assert.Equal(t, "Linus Torvalds <torvalds@linux-foundation.org>", c.Author.String()) 120}