From d7e520fbbba5c0501c19e113af19818b5fa577fb Mon Sep 17 00:00:00 2001 From: Max Semenik Date: Wed, 17 Oct 2018 19:31:21 -0700 Subject: [PATCH] Preferences class deprecation, step 2 Remove all functions that have been hard (or superhard, with exceptions) deprecated previously. They all had no callers with one exception: * getTimezoneOptions() is called from 3rd party extention, already broken anyway. Mark the remaining functions for removal in 1.34, where whole class will become {{db-empty}}. They in principle have no callers already, but let's follow the proper process and give extension developers a bit more time. Change-Id: I0e3e98ed1e6242b6ab7c5f21d71478c392fe89a9 --- RELEASE-NOTES-1.33 | 26 ++++++- includes/Preferences.php | 47 +---------- tests/phpunit/includes/PreferencesTest.php | 90 ---------------------- 3 files changed, 27 insertions(+), 136 deletions(-) delete mode 100644 tests/phpunit/includes/PreferencesTest.php diff --git a/RELEASE-NOTES-1.33 b/RELEASE-NOTES-1.33 index f6c819d3a6..a6f80583bf 100644 --- a/RELEASE-NOTES-1.33 +++ b/RELEASE-NOTES-1.33 @@ -104,7 +104,31 @@ because of Phabricator reports. * The hooks LanguageGetSpecialPageAliases and LanguageGetMagic, deprecated since 1.16, have now been removed. Instead, use $specialPageAliases or $magicWords respectively in a $wgExtensionMessagesFiles file. -* … +* The following methods of the Preferences class, deprecated in 1.31, have been + removed: + * getSaveBlacklist() + * loadPreferenceValues() + * getOptionFromUser() + * profilePreferences() + * skinPreferences() + * filesPreferences() + * datetimePreferences() + * renderingPreferences() + * editingPreferences() + * rcPreferences() + * watchlistPreferences() + * searchPreferences() + * miscPreferences() + * generateSkinOptions() + * getDateOptions() + * getImageSizes() + * getThumbSizes() + * validateSignature() + * cleanSignature() + * getTimezoneOptions() + * filterIntval() + * filterTimezoneInput() + * getTimeZoneList() === Deprecations in 1.33 === * The configuration option $wgUseESI has been deprecated, and is expected diff --git a/includes/Preferences.php b/includes/Preferences.php index ab5777fd8e..70f70609ae 100644 --- a/includes/Preferences.php +++ b/includes/Preferences.php @@ -46,13 +46,6 @@ class Preferences { return $preferencesFactory; } - /** - * @return array - */ - public static function getSaveBlacklist() { - throw new Exception( __METHOD__ . '() is deprecated and does nothing' ); - } - /** * @throws MWException * @param User $user @@ -60,6 +53,7 @@ class Preferences { * @return array|null */ public static function getPreferences( $user, IContextSource $context ) { + wfDeprecated( __METHOD__, '1.31' ); $preferencesFactory = self::getDefaultPreferencesFactory(); return $preferencesFactory->getFormDescriptor( $user, $context ); } @@ -272,45 +266,8 @@ class Preferences { $formClass = PreferencesFormLegacy::class, array $remove = [] ) { + wfDeprecated( __METHOD__, '1.31' ); $preferencesFactory = self::getDefaultPreferencesFactory(); return $preferencesFactory->getForm( $user, $context, $formClass, $remove ); } - - /** - * @param IContextSource $context - * @return array - */ - public static function getTimezoneOptions( IContextSource $context ) { - throw new Exception( __METHOD__ . '() is deprecated and does nothing' ); - } - - /** - * @param string $value - * @param array $alldata - * @return int - */ - public static function filterIntval( $value, $alldata ) { - throw new Exception( __METHOD__ . '() is deprecated and does nothing' ); - } - - /** - * @param string $tz - * @param array $alldata - * @return string - */ - public static function filterTimezoneInput( $tz, $alldata ) { - throw new Exception( __METHOD__ . '() is deprecated and does nothing' ); - } - - /** - * Get a list of all time zones - * @param Language $language Language used for the localized names - * @return array A list of all time zones. The system name of the time zone is used as key and - * the value is an array which contains localized name, the timecorrection value used for - * preferences and the region - * @since 1.26 - */ - public static function getTimeZoneList( Language $language ) { - throw new Exception( __METHOD__ . '() is deprecated and does nothing' ); - } } diff --git a/tests/phpunit/includes/PreferencesTest.php b/tests/phpunit/includes/PreferencesTest.php deleted file mode 100644 index 4d3b195c34..0000000000 --- a/tests/phpunit/includes/PreferencesTest.php +++ /dev/null @@ -1,90 +0,0 @@ -prefUsers['noemail'] = new User; - - $this->prefUsers['notauth'] = new User; - $this->prefUsers['notauth'] - ->setEmail( 'noauth@example.org' ); - - $this->prefUsers['auth'] = new User; - $this->prefUsers['auth'] - ->setEmail( 'noauth@example.org' ); - $this->prefUsers['auth'] - ->setEmailAuthenticationTimestamp( 1330946623 ); - - $this->context = new RequestContext; - $this->context->setTitle( Title::newFromText( 'PreferencesTest' ) ); - } - - protected function setUp() { - parent::setUp(); - - $this->setMwGlobals( [ - 'wgEnableEmail' => true, - 'wgEmailAuthentication' => true, - ] ); - } - - /** - * Placeholder to verify T36302 - * @covers Preferences::profilePreferences - * @deprecated replaced by DefaultPreferencesFactoryTest::testEmailAuthentication() - */ - public function testEmailAuthenticationFieldWhenUserHasNoEmail() { - $prefs = $this->prefsFor( 'noemail' ); - $this->assertArrayHasKey( 'cssclass', - $prefs['emailauthentication'] - ); - $this->assertEquals( 'mw-email-none', $prefs['emailauthentication']['cssclass'] ); - } - - /** - * Placeholder to verify T36302 - * @covers Preferences::profilePreferences - * @deprecated replaced by DefaultPreferencesFactoryTest::testEmailAuthentication() - */ - public function testEmailAuthenticationFieldWhenUserEmailNotAuthenticated() { - $prefs = $this->prefsFor( 'notauth' ); - $this->assertArrayHasKey( 'cssclass', - $prefs['emailauthentication'] - ); - $this->assertEquals( 'mw-email-not-authenticated', $prefs['emailauthentication']['cssclass'] ); - } - - /** - * Placeholder to verify T36302 - * @covers Preferences::profilePreferences - * @deprecated replaced by DefaultPreferencesFactoryTest::testEmailAuthentication() - */ - public function testEmailAuthenticationFieldWhenUserEmailIsAuthenticated() { - $prefs = $this->prefsFor( 'auth' ); - $this->assertArrayHasKey( 'cssclass', - $prefs['emailauthentication'] - ); - $this->assertEquals( 'mw-email-authenticated', $prefs['emailauthentication']['cssclass'] ); - } - - /** Helper */ - protected function prefsFor( $user_key ) { - return Preferences::getPreferences( - $this->prefUsers[$user_key], - $this->context - ); - } -} -- 2.20.1