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 <[email protected]>
  • Loading branch information
Xerkus committed Feb 12, 2024
1 parent b482f18 commit 29ca5aa
Show file tree
Hide file tree
Showing 3 changed files with 144 additions and 0 deletions.
64 changes: 64 additions & 0 deletions test/asset/dummy-gpg-no-sign.asc
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,67 @@ U/qoPG45bH/YX1uS1PkFFZ4UGEiRDi92BhI81nPencv5HNNe+J9kJUk1D2Mw8sbD
nPI8HFy7DcMcT9Ee4KFbbkwXdbJ2nxCRzAqXE4q1i6ie
=cI7Z
-----END PGP PRIVATE KEY BLOCK-----
-----BEGIN PGP PRIVATE KEY BLOCK-----

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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 29ca5aa

Please sign in to comment.