$cookie */ #[DataProvider('loadCookiesProvider')] public function testLoad( array $cookie, string $languageCode, string|false $searchType, bool $isUserGroupTipsEnabled, ): void { $_COOKIE = $cookie; $userPreferences = new UserPreferences(); $userPreferences->load(); self::assertSame($languageCode, $userPreferences->languageCode); self::assertSame($searchType, $userPreferences->searchType); self::assertSame($isUserGroupTipsEnabled, $userPreferences->isUserGroupTipsEnabled); } /** @return array, string, string|false, bool}> */ public static function loadCookiesProvider(): array { return [ [[], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => ['en,manual,,1']], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => ''], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => ',,,'], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => ',,,0'], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => ',,ignored,,ignored'], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => 'en,,,'], 'en', UserPreferences::URL_NONE, false], [['MYPHPNET' => ',manual,,'], '', UserPreferences::URL_MANUAL, false], [['MYPHPNET' => ',quickref,,'], '', UserPreferences::URL_FUNC, false], [['MYPHPNET' => ',invalid,,'], '', UserPreferences::URL_NONE, false], [['MYPHPNET' => ',,,1'], '', UserPreferences::URL_NONE, true], [['MYPHPNET' => 'en,manual,,1'], 'en', UserPreferences::URL_MANUAL, true], ]; } #[DataProvider('urlSearchTypeProvider')] public function testSetUrlSearchType(mixed $type, string|false $expected): void { $userPreferences = new UserPreferences(searchType: UserPreferences::URL_NONE); $userPreferences->setUrlSearchType($type); self::assertSame($expected, $userPreferences->searchType); } /** @return array */ public static function urlSearchTypeProvider(): array { return [ ['manual', UserPreferences::URL_MANUAL], ['quickref', UserPreferences::URL_FUNC], [false, UserPreferences::URL_NONE], ['', UserPreferences::URL_NONE], ['invalid', UserPreferences::URL_NONE], [['manual'], UserPreferences::URL_NONE], ]; } public function testSetIsUserGroupTipsEnabled(): void { $timeBackup = $_SERVER['REQUEST_TIME']; $_SERVER['REQUEST_TIME'] = 1726600070; $userPreferences = new UserPreferences(isUserGroupTipsEnabled: false); $userPreferences->setIsUserGroupTipsEnabled(true); self::assertTrue($userPreferences->isUserGroupTipsEnabled); $userPreferences = new UserPreferences(isUserGroupTipsEnabled: true); $userPreferences->setIsUserGroupTipsEnabled(false); self::assertFalse($userPreferences->isUserGroupTipsEnabled); $_SERVER['REQUEST_TIME'] = 1726600066; $userPreferences = new UserPreferences(isUserGroupTipsEnabled: false); $userPreferences->setIsUserGroupTipsEnabled(false); self::assertTrue($userPreferences->isUserGroupTipsEnabled); $_SERVER['REQUEST_TIME'] = $timeBackup; } }