Skip to content

Commit

Permalink
Add test for gpg key import covering sign capability on subkey
Browse files Browse the repository at this point in the history
Signed-off-by: Aleksei Khudiakov <aleksey@xerkus.pro>
  • Loading branch information
Xerkus committed Feb 12, 2024
1 parent b482f18 commit 31720aa
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 33 deletions.
67 changes: 34 additions & 33 deletions test/asset/dummy-gpg-no-sign.asc
Original file line number Diff line number Diff line change
Expand Up @@ -27,37 +27,38 @@ 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
=cI7Z
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
58Lxug==
=0BOE
-----END PGP PRIVATE KEY BLOCK-----
71 changes: 71 additions & 0 deletions test/asset/dummy-gpg-sign-subkey.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
-----BEGIN PGP PRIVATE KEY BLOCK-----

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
upAFpjFNVg==
=pSLg
-----END PGP PRIVATE KEY BLOCK-----
9 changes: 9 additions & 0 deletions test/unit/Gpg/ImportGpgKeyFromStringViaTemporaryFileTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,15 @@ public function testWillFailOnNoSecretKey(): void
->__invoke(read(__DIR__ . '/../../asset/dummy-gpg-key-no-secret.asc'));
}

public function testWillImportGpgKeyWithSignCapabilityOnSubkey(): void
{
self::assertEquals(
SecretKeyId::fromBase16String('0C251880C3862779'),
(new ImportGpgKeyFromStringViaTemporaryFile())
->__invoke(read(__DIR__ . '/../../asset/dummy-gpg-sign-subkey.asc')),
);
}

public function testWillFailOnMissingSignCapabilities(): void
{
$this->expectException(InvariantViolationException::class);
Expand Down

0 comments on commit 31720aa

Please sign in to comment.