@@ -280,6 +280,74 @@ def test_extract_signature
280
280
# Ask for a non-existent object
281
281
assert_raises ( Rugged ::OdbError ) { Rugged ::Commit . extract_signature ( @repo , "181037049a54a1eb5fab404658a3a250b44335d8" ) }
282
282
end
283
+
284
+ def test_create_with_signature
285
+ signed_commit = <<-COMMIT
286
+ tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6
287
+ parent 34734e478d6cf50c27c9d69026d93974d052c454
288
+ author Ben Burkert <[email protected] > 1358451456 -0800
289
+ committer Ben Burkert <[email protected] > 1358451456 -0800
290
+ gpgsig -----BEGIN PGP SIGNATURE-----
291
+ Version: GnuPG v1.4.12 (Darwin)
292
+
293
+ iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al
294
+ o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8
295
+ JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq
296
+ AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq
297
+ SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW
298
+ who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok
299
+ 6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG
300
+ cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu
301
+ c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9
302
+ ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J
303
+ 7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc
304
+ cpxtDQQMGYFpXK/71stq
305
+ =ozeK
306
+ -----END PGP SIGNATURE-----
307
+
308
+ a simple commit which works
309
+ COMMIT
310
+
311
+ signature = <<-SIGNATURE . strip
312
+ -----BEGIN PGP SIGNATURE-----
313
+ Version: GnuPG v1.4.12 (Darwin)
314
+
315
+ iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al
316
+ o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8
317
+ JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq
318
+ AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq
319
+ SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW
320
+ who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok
321
+ 6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG
322
+ cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu
323
+ c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9
324
+ ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J
325
+ 7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc
326
+ cpxtDQQMGYFpXK/71stq
327
+ =ozeK
328
+ -----END PGP SIGNATURE-----
329
+ SIGNATURE
330
+
331
+ base_data = <<-SIGNEDDATA
332
+ tree 6b79e22d69bf46e289df0345a14ca059dfc9bdf6
333
+ parent 34734e478d6cf50c27c9d69026d93974d052c454
334
+ author Ben Burkert <[email protected] > 1358451456 -0800
335
+ committer Ben Burkert <[email protected] > 1358451456 -0800
336
+
337
+ a simple commit which works
338
+ SIGNEDDATA
339
+
340
+ id1 = Rugged ::Commit ::create_with_signature ( @repo , base_data , signature , "gpgsig" )
341
+ id2 = Rugged ::Commit ::create_with_signature ( @repo , base_data , signature )
342
+ sig , data = Rugged ::Commit ::extract_signature ( @repo , id1 )
343
+
344
+ assert_equal id1 , id2
345
+ assert_equal base_data , data
346
+ assert_equal signature , sig
347
+
348
+ raw_commit = Rugged ::Commit ::lookup ( @repo , id1 ) . read_raw . data
349
+ assert_equal signed_commit , raw_commit
350
+ end
283
351
end
284
352
285
353
class CommitWriteTest < Rugged ::TestCase
0 commit comments