Skip to content

Commit c24a7d6

Browse files
pringelmannbackportbot[bot]
authored andcommitted
test(core): pick timezone aliases from the running platform
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
1 parent d30428a commit c24a7d6

2 files changed

Lines changed: 39 additions & 7 deletions

File tree

apps/provisioning_api/tests/Controller/UsersControllerTest.php

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2618,16 +2618,32 @@ public function testEditUserAdminEditChangeLanguageInvalidLanguage(): void {
26182618
$this->assertEquals([], $this->api->editUser('UserToEdit', 'language', 'ru')->getData());
26192619
}
26202620

2621+
/**
2622+
* Debian and Ubuntu ship the tz database's backward links in a separate
2623+
* tzdata-legacy package, so pick an alias this platform actually knows
2624+
* instead of hardcoding one.
2625+
*/
2626+
private static function findBackwardCompatibleTimezone(): ?string {
2627+
$aliases = array_diff(
2628+
\DateTimeZone::listIdentifiers(\DateTimeZone::ALL_WITH_BC),
2629+
\DateTimeZone::listIdentifiers(),
2630+
);
2631+
return $aliases === [] ? null : reset($aliases);
2632+
}
2633+
26212634
public static function dataEditUserSelfEditChangeTimezone(): array {
26222635
return [
2623-
'primary identifier' => ['Europe/Kyiv'],
2624-
'backward compatible alias' => ['Europe/Kiev'],
2625-
'legacy region alias' => ['US/Eastern'],
2636+
'primary identifier' => ['Europe/Vienna'],
2637+
'backward compatible alias' => [self::findBackwardCompatibleTimezone()],
26262638
];
26272639
}
26282640

26292641
#[\PHPUnit\Framework\Attributes\DataProvider('dataEditUserSelfEditChangeTimezone')]
2630-
public function testEditUserSelfEditChangeTimezone(string $timezone): void {
2642+
public function testEditUserSelfEditChangeTimezone(?string $timezone): void {
2643+
if ($timezone === null) {
2644+
$this->markTestSkipped('No backward compatible timezone aliases in this platform\'s tz database');
2645+
}
2646+
26312647
$loggedInUser = $this->createMock(IUser::class);
26322648
$loggedInUser
26332649
->expects($this->any())

tests/lib/Authentication/Login/SetUserTimezoneCommandTest.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,32 @@ public function testProcessNoTimezoneSet(): void {
4444
$this->assertTrue($result->isSuccess());
4545
}
4646

47+
/**
48+
* Debian and Ubuntu ship the tz database's backward links in a separate
49+
* tzdata-legacy package, so pick an alias this platform actually knows
50+
* instead of hardcoding one.
51+
*/
52+
private static function findBackwardCompatibleTimezone(): ?string {
53+
$aliases = array_diff(
54+
\DateTimeZone::listIdentifiers(\DateTimeZone::ALL_WITH_BC),
55+
\DateTimeZone::listIdentifiers(),
56+
);
57+
return $aliases === [] ? null : reset($aliases);
58+
}
59+
4760
public static function dataAcceptedTimezone(): array {
4861
return [
4962
'primary identifier' => ['Europe/Vienna'],
50-
'backward compatible alias' => ['Europe/Kiev'],
51-
'legacy region alias' => ['US/Eastern'],
63+
'backward compatible alias' => [self::findBackwardCompatibleTimezone()],
5264
];
5365
}
5466

5567
#[\PHPUnit\Framework\Attributes\DataProvider('dataAcceptedTimezone')]
56-
public function testProcess(string $timezone): void {
68+
public function testProcess(?string $timezone): void {
69+
if ($timezone === null) {
70+
$this->markTestSkipped('No backward compatible timezone aliases in this platform\'s tz database');
71+
}
72+
5773
$data = $this->getLoggedInLoginDataWithTimezone($timezone);
5874
$this->user->expects($this->once())
5975
->method('getUID')

0 commit comments

Comments
 (0)