Aude has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/356784 )
Change subject: Update Wikidata - Fix default echo notification preference ...................................................................... Update Wikidata - Fix default echo notification preference Bug: T166657 Change-Id: I24fdcce33e756f8cfe72f24ce5392b0b139cd95a --- M composer.lock M extensions/Wikibase/client/WikibaseClient.hooks.php M extensions/Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php M extensions/Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php M vendor/composer/installed.json 5 files changed, 162 insertions(+), 110 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata refs/changes/84/356784/1 diff --git a/composer.lock b/composer.lock index 931e9f8..0a41020 100644 --- a/composer.lock +++ b/composer.lock @@ -935,7 +935,7 @@ "support": { "irc": "irc://irc.freenode.net/wikidata" }, - "time": "2017-05-05 19:40:03" + "time": "2017-05-05T19:40:03+00:00" }, { "name": "wikibase/constraints", @@ -1000,7 +1000,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/1202/" }, - "time": "2017-05-11 12:45:23" + "time": "2017-05-10T14:34:52+00:00" }, { "name": "wikibase/data-model", @@ -1405,7 +1405,7 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/989/" }, - "time": "2017-05-08 09:23:39" + "time": "2017-05-08T09:23:39+00:00" }, { "name": "wikibase/serialization-javascript", @@ -1454,12 +1454,12 @@ "source": { "type": "git", "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "939eada2a2ac3f67171e851d11f3b691167d81de" + "reference": "de5c06f858d4d6e1543b6101ee8488d457e9f750" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/939eada2a2ac3f67171e851d11f3b691167d81de", - "reference": "939eada2a2ac3f67171e851d11f3b691167d81de", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/de5c06f858d4d6e1543b6101ee8488d457e9f750", + "reference": "de5c06f858d4d6e1543b6101ee8488d457e9f750", "shasum": "" }, "require": { @@ -1534,7 +1534,7 @@ "wikibaserepo", "wikidata" ], - "time": "2017-05-09T13:33:41+00:00" + "time": "2017-06-01T16:50:44+00:00" }, { "name": "wikibase/wikimedia-badges", @@ -1585,7 +1585,7 @@ "support": { "irc": "irc://irc.freenode.net/wikidata" }, - "time": "2017-05-05 19:40:03" + "time": "2017-05-05T19:40:03+00:00" }, { "name": "wikimedia/assert", @@ -1637,7 +1637,7 @@ "version": "v1.0.5", "source": { "type": "git", - "url": "https://gerrit.wikimedia.org/r/p/purtle", + "url": "https://github.com/wikimedia/purtle.git", "reference": "4fd41eb7d8db551c0c4895fd1a917240907d7244" }, "require": { diff --git a/extensions/Wikibase/client/WikibaseClient.hooks.php b/extensions/Wikibase/client/WikibaseClient.hooks.php index 646bbc0..850a46e 100644 --- a/extensions/Wikibase/client/WikibaseClient.hooks.php +++ b/extensions/Wikibase/client/WikibaseClient.hooks.php @@ -458,7 +458,7 @@ // These hooks should only be run if we use the Echo extension if ( class_exists( EchoEvent::class ) ) { - $wgHooks['UserGetDefaultOptions'][] = EchoNotificationsHandlers::class . '::onUserGetDefaultOptions'; + $wgHooks['LocalUserCreated'][] = EchoNotificationsHandlers::class . '::onLocalUserCreated'; $wgHooks['WikibaseHandleChange'][] = EchoNotificationsHandlers::class . '::onWikibaseHandleChange'; } diff --git a/extensions/Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php b/extensions/Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php index 35842dc..3c0ff36 100644 --- a/extensions/Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php +++ b/extensions/Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php @@ -165,22 +165,24 @@ } /** - * Handler for UserGetDefaultOptions hook - * @see https://www.mediawiki.org/wiki/Manual:Hooks/UserGetDefaultOptions - * - * @param bool[] &$defaultOptions Array of preference keys and their default values. + * Handler for LocalUserCreated hook. + * @see https://www.mediawiki.org/wiki/Manual:Hooks/LocalUserCreated + * @param User $user User object that was created. + * @param bool $autocreated True when account was auto-created */ - public static function onUserGetDefaultOptions( array &$defaultOptions ) { + public static function onLocalUserCreated( User $user, $autocreated ) { $self = self::newFromGlobalState(); - $self->doUserGetDefaultOptions( $defaultOptions ); + $self->doLocalUserCreated( $user, $autocreated ); } /** - * @param bool[] &$defaultOptions + * @param User $user + * @param bool $autocreated */ - public function doUserGetDefaultOptions( array &$defaultOptions ) { + public function doLocalUserCreated( User $user, $autocreated ) { if ( $this->sendEchoNotification === true ) { - $defaultOptions['echo-subscriptions-web-wikibase-action'] = true; + $user->setOption( 'echo-subscriptions-web-wikibase-action', true ); + $user->saveSettings(); } } diff --git a/extensions/Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php index c120e44..c32418a 100644 --- a/extensions/Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php +++ b/extensions/Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php @@ -5,6 +5,7 @@ use EchoEvent; use MediaWikiTestCase; use Title; +use User; use Wikibase\ChangeRow; use Wikibase\Client\Hooks\EchoNotificationsHandlers; use Wikibase\Client\RepoLinker; @@ -219,4 +220,53 @@ } } + public function localUserCreatedProvider() { + return [ + 'disabled no auto' => [ + 'enabled' => false, + 'times' => 0, + 'auto' => false, + ], + 'disabled auto' => [ + 'enabled' => false, + 'times' => 0, + 'auto' => true, + ], + 'enabled no auto' => [ + 'enabled' => true, + 'times' => 1, + 'auto' => false, + ], + 'enabled auto' => [ + 'enabled' => true, + 'times' => 1, + 'auto' => true, + ] + ]; + } + + /** + * @dataProvider localUserCreatedProvider + */ + public function testLocalUserCreated( $enabled, $times, $auto ) { + $handlers = new EchoNotificationsHandlers( + $this->repoLinker, + 'enwiki', + $enabled, + '', + 'repoSiteName' + ); + + $user = $this->getMockBuilder( User::class ) + ->disableOriginalConstructor() + ->getMock(); + + $user->expects( $this->exactly( $times ) ) + ->method( 'setOption' ); + $user->expects( $this->exactly( $times ) ) + ->method( 'saveSettings' ); + + $handlers->doLocalUserCreated( $user, $auto ); + } + } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 6cd183c..65ad147 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -162,7 +162,7 @@ "version_normalized": "1.0.5.0", "source": { "type": "git", - "url": "https://gerrit.wikimedia.org/r/p/purtle", + "url": "https://github.com/wikimedia/purtle.git", "reference": "4fd41eb7d8db551c0c4895fd1a917240907d7244" }, "require": { @@ -1583,96 +1583,6 @@ } }, { - "name": "wikibase/wikibase", - "version": "dev-wmf/1.30.0-wmf.1", - "version_normalized": "dev-wmf/1.30.0-wmf.1", - "source": { - "type": "git", - "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", - "reference": "939eada2a2ac3f67171e851d11f3b691167d81de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/939eada2a2ac3f67171e851d11f3b691167d81de", - "reference": "939eada2a2ac3f67171e851d11f3b691167d81de", - "shasum": "" - }, - "require": { - "data-values/common": "^0.3.0", - "data-values/data-types": "^1.0.0", - "data-values/data-values": "^1.0.0", - "data-values/geo": "^1.2.1", - "data-values/interfaces": "^0.2.0|^0.1.5", - "data-values/javascript": "^0.8.3", - "data-values/number": "^0.8.2", - "data-values/serialization": "^1.2.0", - "data-values/time": "^0.8.4", - "data-values/value-view": "^0.19.1", - "diff/diff": "^2.0.0", - "php": ">=5.5.9", - "wikibase/data-model": "^7.0.0", - "wikibase/data-model-javascript": "^3.0.1", - "wikibase/data-model-serialization": "^2.1.0", - "wikibase/data-model-services": "^3.7.0", - "wikibase/internal-serialization": "^2.2.0", - "wikibase/javascript-api": "^2.2.0", - "wikibase/serialization-javascript": "^2.0.8", - "wikimedia/purtle": "^1.0.3" - }, - "conflict": { - "mediawiki/mediawiki": "<1.25" - }, - "require-dev": { - "jakub-onderka/php-console-highlighter": "0.3.2", - "jakub-onderka/php-parallel-lint": ">=0.3 <0.10", - "wikibase/wikibase-codesniffer": "^0.1.0" - }, - "time": "2017-05-09T13:33:41+00:00", - "type": "mediawiki-extension", - "installation-source": "dist", - "autoload": { - "classmap": [ - "client/includes/", - "client/WikibaseClient.hooks.php", - "client/tests/phpunit/MockClientStore.php", - "lib/includes/", - "lib/WikibaseLib.hooks.php", - "lib/maintenance/", - "repo/includes/", - "repo/maintenance/", - "repo/Wikibase.hooks.php" - ], - "psr-4": { - "Wikibase\\Client\\": "client/includes", - "Wikibase\\Client\\Tests\\": "client/tests/phpunit/includes", - "Wikibase\\Lib\\": "lib/includes", - "Wikibase\\Lib\\Tests\\": "lib/tests/phpunit", - "Wikibase\\Repo\\": "repo/includes", - "Wikibase\\Repo\\Tests\\": "repo/tests/phpunit/includes", - "Wikibase\\View\\": "view/src", - "Wikibase\\View\\Tests\\": "view/tests/phpunit" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "authors": [ - { - "name": "The Wikidata team" - } - ], - "description": "Structured data repository for MediaWiki", - "homepage": "http://wikiba.se", - "keywords": [ - "wikibase", - "wikibaseclient", - "wikibaselib", - "wikibaserepo", - "wikidata" - ] - }, - { "name": "wikibase/constraints", "version": "dev-wmf/1.30.0-wmf.1", "version_normalized": "dev-wmf/1.30.0-wmf.1", @@ -1738,5 +1648,95 @@ "support": { "issues": "https://phabricator.wikimedia.org/project/profile/1202/" } + }, + { + "name": "wikibase/wikibase", + "version": "dev-wmf/1.30.0-wmf.1", + "version_normalized": "dev-wmf/1.30.0-wmf.1", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/mediawiki-extensions-Wikibase.git", + "reference": "de5c06f858d4d6e1543b6101ee8488d457e9f750" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/mediawiki-extensions-Wikibase/zipball/de5c06f858d4d6e1543b6101ee8488d457e9f750", + "reference": "de5c06f858d4d6e1543b6101ee8488d457e9f750", + "shasum": "" + }, + "require": { + "data-values/common": "^0.3.0", + "data-values/data-types": "^1.0.0", + "data-values/data-values": "^1.0.0", + "data-values/geo": "^1.2.1", + "data-values/interfaces": "^0.2.0|^0.1.5", + "data-values/javascript": "^0.8.3", + "data-values/number": "^0.8.2", + "data-values/serialization": "^1.2.0", + "data-values/time": "^0.8.4", + "data-values/value-view": "^0.19.1", + "diff/diff": "^2.0.0", + "php": ">=5.5.9", + "wikibase/data-model": "^7.0.0", + "wikibase/data-model-javascript": "^3.0.1", + "wikibase/data-model-serialization": "^2.1.0", + "wikibase/data-model-services": "^3.7.0", + "wikibase/internal-serialization": "^2.2.0", + "wikibase/javascript-api": "^2.2.0", + "wikibase/serialization-javascript": "^2.0.8", + "wikimedia/purtle": "^1.0.3" + }, + "conflict": { + "mediawiki/mediawiki": "<1.25" + }, + "require-dev": { + "jakub-onderka/php-console-highlighter": "0.3.2", + "jakub-onderka/php-parallel-lint": ">=0.3 <0.10", + "wikibase/wikibase-codesniffer": "^0.1.0" + }, + "time": "2017-06-01T16:50:44+00:00", + "type": "mediawiki-extension", + "installation-source": "dist", + "autoload": { + "classmap": [ + "client/includes/", + "client/WikibaseClient.hooks.php", + "client/tests/phpunit/MockClientStore.php", + "lib/includes/", + "lib/WikibaseLib.hooks.php", + "lib/maintenance/", + "repo/includes/", + "repo/maintenance/", + "repo/Wikibase.hooks.php" + ], + "psr-4": { + "Wikibase\\Client\\": "client/includes", + "Wikibase\\Client\\Tests\\": "client/tests/phpunit/includes", + "Wikibase\\Lib\\": "lib/includes", + "Wikibase\\Lib\\Tests\\": "lib/tests/phpunit", + "Wikibase\\Repo\\": "repo/includes", + "Wikibase\\Repo\\Tests\\": "repo/tests/phpunit/includes", + "Wikibase\\View\\": "view/src", + "Wikibase\\View\\Tests\\": "view/tests/phpunit" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "The Wikidata team" + } + ], + "description": "Structured data repository for MediaWiki", + "homepage": "http://wikiba.se", + "keywords": [ + "wikibase", + "wikibaseclient", + "wikibaselib", + "wikibaserepo", + "wikidata" + ] } ] -- To view, visit https://gerrit.wikimedia.org/r/356784 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I24fdcce33e756f8cfe72f24ce5392b0b139cd95a Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikidata Gerrit-Branch: wmf/1.30.0-wmf.1 Gerrit-Owner: Aude <aude.w...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits