@@ -3,16 +3,17 @@ package object
3
3
import (
4
4
"fmt"
5
5
"io"
6
+ "io/ioutil"
6
7
"strings"
7
8
"time"
8
9
10
+ fixtures "gopkg.in/src-d/go-git-fixtures.v3"
9
11
"gopkg.in/src-d/go-git.v4/plumbing"
10
12
"gopkg.in/src-d/go-git.v4/plumbing/cache"
11
13
"gopkg.in/src-d/go-git.v4/storage/filesystem"
12
14
"gopkg.in/src-d/go-git.v4/storage/memory"
13
15
14
16
. "gopkg.in/check.v1"
15
- "gopkg.in/src-d/go-git-fixtures.v3"
16
17
)
17
18
18
19
type TagSuite struct {
@@ -375,3 +376,93 @@ sYyf9RfOnw/KUFAQbdtvLx3ikODQC+D3KBtuKI9ISHQfgw==
375
376
_ ,
ok := e .
Identities [
"Sunny <[email protected] >" ]
376
377
c .Assert (ok , Equals , true )
377
378
}
379
+
380
+ func (s * TagSuite ) TestDecodeAndVerify (c * C ) {
381
+ objectText := `object 7dba2f128d1298e385b28b56a7e1c579779eac82
382
+ type commit
383
+ tag v1.6
384
+ tagger Filip Navara <[email protected] > 1555269936 +0200
385
+
386
+ Hello
387
+
388
+ world
389
+
390
+ boo
391
+ -----BEGIN PGP SIGNATURE-----
392
+
393
+ iQEzBAABCAAdFiEEdRIEYXeoLk1t7PBDqeqoMkraaZ4FAlyziT4ACgkQqeqoMkra
394
+ aZ502wgAxG4+69l8PYfq45u1R3CCf4x0m5WwcYwvaa4ang0S9mExh/C32NHnpM/V
395
+ DbqMpAlFvBlixOsZ8FNWaM8VXnvRWyx64E6WnInxjx9+Wgv2fy5P1N5rtpvi+S2V
396
+ iGc0RQJlIloqXr7qPYDrwcbgg6AFg9EPhgJxLyizglu9nYvNsH1InaPXMjzgGX8+
397
+ 3irnIYEMIrLcKPrCyHo4Q6gdBjEEBF8hFclPJ8OwXBPc6uNYjnDYx0me9TTQYqoG
398
+ oGgO/rADU9fy4c/Q1ZQpocba/ca6abRJ9LAx9VXFOSlQrMKLgHCYfqU/MAZXKcZM
399
+ 6XXOL4+8Z3FJN6CapZKX7cdYB8LJnw==
400
+ =t5Px
401
+ -----END PGP SIGNATURE-----
402
+
403
+ `
404
+
405
+ armoredKeyRing := `
406
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
407
+
408
+ mQENBFyzedYBCADN3lVNUNkrjn0kfwKAxGQOI8a1977UaIq9ktFg+Uv4Jyq2Y59L
409
+ ZVx2WYk1iDaRhxhv203HV//CA/Hr4IoPjK53qAkg2bPyi8UuDbL+gU+4Z+IiSeXd
410
+ 18ZcAbcYt188PWoUq9/82ofO8EiaBbUEEZJjEegLDtX8gxBDG0aI3Yj4Txj73mno
411
+ w6+E5HDkgPElmH3oNQcr8iK9U2Kuj+ZAHkzbWL++gDCPiLl2eWf0Cr1nlVsv6YLa
412
+ Fsn5vjMGT3dMJFc78ZqCHOeyYK7KHjW1EjzgqeG2eJVay+ZQ5zEx4Fp/dL0RdUSV
413
+ U7zslRiraaPxshdhYOjQ0o72RpSkP1G6+8OhABEBAAG0JUZpbGlwIE5hdmFyYSA8
414
+ ZmlsaXAubmF2YXJhQGdtYWlsLmNvbT6JAVQEEwEIAD4WIQR1EgRhd6guTW3s8EOp
415
+ 6qgyStppngUCXLN51gIbAwUJA8JnAAULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAK
416
+ CRCp6qgyStppnlzjB/sFu7HqJrTRsnHsoWo2+nDeicXnR0VAhiLvv7uRRw4i90FJ
417
+ 0zDwjAmIH+po6vPffWRMcWOFVvAwZCX7/XcvDNF9OupFj/aold334+VVN0ha47IQ
418
+ g44bJZie9mvLagEsqUXggpKQjd414Tk08aUucfaN9RFJIOGCwF05j2eXOBGR2HTe
419
+ FLq3obeObryEPf0c8N/nw4RQ8OOcq98gxiHx5Gk+nLCcJCTvOlc9ULqpJ2a6cZry
420
+ kxgSOI9dd74ilRQdpfPvoEeEGSqkY+daf+dhgSMT2mII0UJ6qQeY0DpCZZNsL8dr
421
+ PxR4SPRlzLBuJIpnHY21ebOqwOPOLjzR+J2RBufkuQENBFyzedYBCADTCglXrST6
422
+ DRz7Uq3zrrrzdCchHH0/+LgYOEoGs82UvdFfigQYGTydmXz27bHKfWNfGIa9IlLF
423
+ MhasFueCnKnmfVxnlINRdyAXv7Tmx4mSjuCEmGkvM1nPpdhxWXptnVMqhQMddiMO
424
+ N55bElDK2ftPc2s4dBmTItXXbet2kFZiv7MZBZpA4eRAHj5DDSwl8pnQArU50RDZ
425
+ q3qYKvAP/z2SLjekcOFtMhZ9BXMvwAW4FWV0ztpfP3LvUUb0T7fSo5cXlm/0eqwa
426
+ MUrUlbbwJMDg1/wJ3pbKhZlP+xXNLj5UE86TtfqNqaohOcIBdCsdTUQgbkLVlibP
427
+ JmZH7lGDhvi3ABEBAAGJATwEGAEIACYWIQR1EgRhd6guTW3s8EOp6qgyStppngUC
428
+ XLN51gIbDAUJA8JnAAAKCRCp6qgyStppntq1B/9bmw4XjEm5KyXwWnlAVGr8skXY
429
+ KIJr6drUOOwQzl7rxsJRjUsFdX0IjaZwx303G/23eQMIvVkoaWpHrT0Y7EsTQ55x
430
+ +GSuANhEzobks4spzQ66VW9FHRlRr5wg5PTwWnGtV/5QVSTY/zeC9R/AFUJFsDWe
431
+ tgHlNrb6MWx5EtypZDpAkubAMvD/QoZHX0oPXYAA2CugD4uSdzjf6Ys3xUuwjKKG
432
+ 5hvimAg1/Hympq71Znb6Ec1m4ZM22Br7dcWHIX2GWfDPyRG+rYPu4Fk9KKAD4FRz
433
+ HdzbB2ak/HxIeCqmHVlmUqa+WfTMUJcsgOm3/ZFPCSoL6l0bz9Z1XVbiyD03
434
+ =+gC9
435
+ -----END PGP PUBLIC KEY BLOCK-----
436
+ `
437
+
438
+ tagEncodedObject := & plumbing.MemoryObject {}
439
+
440
+ _ , err := tagEncodedObject .Write ([]byte (objectText ))
441
+ tagEncodedObject .SetType (plumbing .TagObject )
442
+ c .Assert (err , IsNil )
443
+
444
+ tag := & Tag {}
445
+ err = tag .Decode (tagEncodedObject )
446
+ c .Assert (err , IsNil )
447
+
448
+ _ , err = tag .Verify (armoredKeyRing )
449
+ c .Assert (err , IsNil )
450
+ }
451
+
452
+ func (s * TagSuite ) TestEncodeWithoutSignature (c * C ) {
453
+ //Similar to TestString since no signature
454
+ tag := s .tag (c , plumbing .NewHash ("b742a2a9fa0afcfa9a6fad080980fbc26b007c69" ))
455
+ er , err := tag .EncodeWithoutSignature ()
456
+ c .Assert (err , IsNil )
457
+ payload , err := ioutil .ReadAll (er )
458
+ c .Assert (err , IsNil )
459
+
460
+ c .Assert (string (payload ), Equals , "" +
461
+ "object f7b877701fbf855b44c0a9e86f3fdce2c298b07f\n " +
462
+ "type commit\n " +
463
+ "tag annotated-tag\n " +
464
+ "tagger Máximo Cuadros <[email protected] > 1474485215 +0200\n " +
465
+ "\n " +
466
+ "example annotated tag\n " ,
467
+ )
468
+ }
0 commit comments