Skip to content

Commit 69c3c85

Browse files
SystemKeeperbackportbot[bot]
authored andcommitted
chore: Extend testing of encryptAndSign method
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
1 parent b70414f commit 69c3c85

1 file changed

Lines changed: 70 additions & 8 deletions

File tree

tests/Unit/PushTest.php

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -434,16 +434,18 @@ public function testPushToDeviceNoFairUse(): void {
434434

435435
public static function dataPushToDeviceSending(): array {
436436
return [
437-
[true],
438-
[false],
437+
[true, 'PKCS1'],
438+
[true, 'OAEP'],
439+
[false, 'PKCS1'],
440+
[false, 'OAEP'],
439441
];
440442
}
441443

442444
/**
443445
* @dataProvider dataPushToDeviceSending
444446
*/
445-
public function testPushToDeviceSending(bool $isDebug): void {
446-
$push = $this->getPush(['createFakeUserObject', 'getDevicesForUser', 'encryptAndSign', 'deletePushToken', 'validateToken', 'deletePushTokenByDeviceIdentifier']);
447+
public function testPushToDeviceSending(bool $isDebug, string $padding): void {
448+
$push = $this->getPush(['createFakeUserObject', 'getDevicesForUser', 'deletePushToken', 'validateToken', 'deletePushTokenByDeviceIdentifier']);
447449

448450
/** @var INotification&MockObject $notification */
449451
$notification = $this->createMock(INotification::class);
@@ -459,38 +461,66 @@ public function testPushToDeviceSending(bool $isDebug): void {
459461
->with('valid')
460462
->willReturn($user);
461463

464+
$devicePublicKey = '-----BEGIN PUBLIC KEY-----
465+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1SN9sDJGNifnEv/y1UkP
466+
tggJA0xks5b0WN/Ida3GYK4Zy/ZWTa3wAknCerKkZC2rrFbcP55HA/oSp8fuUJC3
467+
q4b59znuhGoQtvvdAwUx6qSIPheAGs/gfMpNWO/bfH02oBu+98eTkxciuNKPxBFk
468+
wRdSSUxsHwkzCOw+er6oxriVSkc7tsNVaXg+ZpzW15cUQugjT6JDDjg5ftSeGsLj
469+
VV70QXge4uD3ege/lsa1N8iUVCjeMJHobyQm/hhGE990b6BzTgOIC1pGsOPbOsZB
470+
/5n54G4EUX9dixSSF90fDJs83GWQ+AIjf/uHmj3vFMe1bnqIwq9P17+IWe5x9Z04
471+
FQIDAQAB
472+
-----END PUBLIC KEY-----';
473+
462474
$push->expects($this->once())
463475
->method('getDevicesForUser')
464476
->willReturn([
465477
[
466478
'proxyserver' => 'proxyserver1',
467479
'token' => 16,
468480
'apptype' => 'other',
481+
'devicepublickey' => $devicePublicKey,
482+
'deviceidentifier' => 'ident16',
483+
'pushtokenhash' => 'hash16',
469484
],
470485
[
471486
'proxyserver' => 'proxyserver1/',
472487
'token' => 23,
473488
'apptype' => 'other',
489+
'devicepublickey' => $devicePublicKey,
490+
'deviceidentifier' => 'ident23',
491+
'pushtokenhash' => 'hash23',
474492
],
475493
[
476494
'proxyserver' => 'badrequest',
477495
'token' => 42,
478496
'apptype' => 'other',
497+
'devicepublickey' => $devicePublicKey,
498+
'deviceidentifier' => 'ident42',
499+
'pushtokenhash' => 'hash42',
479500
],
480501
[
481502
'proxyserver' => 'unavailable',
482503
'token' => 48,
483504
'apptype' => 'other',
505+
'devicepublickey' => $devicePublicKey,
506+
'deviceidentifier' => 'ident48',
507+
'pushtokenhash' => 'hash48',
484508
],
485509
[
486510
'proxyserver' => 'ok',
487511
'token' => 64,
488512
'apptype' => 'other',
513+
'devicepublickey' => $devicePublicKey,
514+
'deviceidentifier' => 'ident64',
515+
'pushtokenhash' => 'hash64',
489516
],
490517
[
491518
'proxyserver' => 'badrequest-with-devices',
492519
'token' => 128,
493520
'apptype' => 'other',
521+
'devicepublickey' => $devicePublicKey,
522+
'deviceidentifier' => 'ident128',
523+
'pushtokenhash' => 'hash128',
494524
],
495525
]);
496526

@@ -506,6 +536,12 @@ public function testPushToDeviceSending(bool $isDebug): void {
506536
['support', 'subscription_key', '', ''],
507537
]);
508538

539+
$this->appConfig
540+
->expects($this->exactly(6))
541+
->method('getAppValueString')
542+
->with('push_encryption_padding', 'PKCS1')
543+
->willReturn($padding);
544+
509545
$this->l10nFactory
510546
->method('getUserLanguage')
511547
->with($user)
@@ -519,6 +555,36 @@ public function testPushToDeviceSending(bool $isDebug): void {
519555
/** @var Key&MockObject $key */
520556
$key = $this->createMock(Key::class);
521557

558+
$key->method('getPrivate')
559+
->willReturn('-----BEGIN PRIVATE KEY-----
560+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCkGi7rj6BWi9U8
561+
lptb1rBKVFENFJjq690Ap8wAdR9cxGYE+nzdFxlcRxh17GwyWaBDEPWtL5WDPxi0
562+
8XjQWpwfYFzjMLLzGMZaj7Jiam5rJM12qFEvYyw9s26LzebeLTzvp28L2TIWCswi
563+
dM0OvrYGGvL9f+N+6Oev5cwiSJk0WrHceL+P/wFH3mmOdOBHmKkofeDZoS1XkNOE
564+
o1EpwepvDibUjc3vHPk1IHg4hsfKk1O9+uHiBf9xqm//M9MKrM9mlOButbo2bOhu
565+
1YN/2wKww7bU/c7JYgVeljpfN0sMuKmhMiuje2KqOU8v8yIREkKMyxd4+B+s3eNG
566+
PdVBf57FAgMBAAECggEAAMegdOm3xPyXMk+f0yNlh5kzDKE1itCL4aYIA6LZnLmp
567+
bHHJWZI4kTT1IHPdgDeYlPBjgAOuEFEsjhLySoXwoF4BIIgErCKD9xa9pBIojmVm
568+
LovlNfFlvScDKgsjUed+5ZguDLcYO7gyQvqTzS6ivXzq6TezeVDfeUgBTg3JG6n/
569+
BjgIek1jV4q9OrQTOdR3eAPwW6pbLG820OB87Cx/A0JHdEgCevFCHmMUbk7yXQrh
570+
W/JwTrnV66LBPjSWQcsHUNWrl2nqV08BYoC1uy32uTpUlejCdWDuHuB1DYOpn0KY
571+
nyiVTNF/MZ0E9sOsKKgbodBz4n3cc6v7NckpFpKMHwKBgQDUeaakKYwatNg6YEHP
572+
OB3iH62bAe7Ej6vg0EPYgr6fzRjAETzTrpZZfzmrGwTxFBczFrx8hOPsyDkpiEU5
573+
77L90jMOb9NSasjS8Pv0GM2LY/8H8Ck4RwXF/E3maSbc2bAY9ZXH6m82YW6iHnfc
574+
G9L0xVCq549axd1tWUnXdukiuwKBgQDFt9KDtlwMutuQOj+Eup7L0sMAxO4jlghH
575+
hTxSAqQ5mlodbQhULXRk4QWGMjjKG0y4XY2rw+VgBQzFT8W3jlThR3BMWKNv3P+M
576+
zlzkoxcoOio7K25im4Yb0NheOnaxaqhLcRwXcxa5E9kn+108xYIYAACZgmkZo7ab
577+
PCoQicnsfwKBgAzyEIYmBeRGqnn8DWZru95gIbq1BnAxdL5w0gFqDeU8oMprAnK/
578+
S2fOiZv0PHvXxoYVV4yaqCxwEpOGOvmJsjUmzneNtqlp2iyIBEHeFP/uKsa4Cjrk
579+
kOR8N97W/0grd0A+Dk8s6HO+wffctV7SzyqcrwqKq0BTl+cmrooTM6crAoGATjjT
580+
iFh1QnQKuZzR1GkgufLAQ2Wl8V5CGEmV+7wfzMpMLKgeS29QRTjhPp5P6WWzjJ02
581+
l2YBMWPOEaHlzyD4Y8gnnYzT3EXKtKJQDgSX/MpGOvKL0WdGP2r4rw7iNn7D5lTx
582+
kDVwH/jCSRchZBGfzm7xzcnSWtpyPCgpXDGnOXECgYEAyqDrBeKlUDDltoe6xs4K
583+
gEG+V5E5cwZqvSoOlYHqbtP9Dms6z6G8TvPZblwlbgwXFofrd5LN/vK3pZPiU5Y+
584+
sd7MhWnjKf7EX9GJD0VhLabFY/KrloJkyL7gOY21xFvmnNqwvH60eOxbVPzlYjaN
585+
96rK6qkqEdUgXj0CpJZHAMw=
586+
-----END PRIVATE KEY-----');
587+
522588
$this->keyManager->expects($this->once())
523589
->method('getKey')
524590
->with($user)
@@ -528,10 +594,6 @@ public function testPushToDeviceSending(bool $isDebug): void {
528594
->method('validateToken')
529595
->willReturn(true);
530596

531-
$push->expects($this->exactly(6))
532-
->method('encryptAndSign')
533-
->willReturn(['Payload']);
534-
535597
$push->expects($this->never())
536598
->method('deletePushToken');
537599

0 commit comments

Comments
 (0)