Файловый менеджер - Редактировать - /var/www/html/mediawiki-1.43.1/tests/phpunit/includes/watchlist/ClearUserWatchlistJobTest.php
Ðазад
<?php use MediaWiki\MainConfigNames; use MediaWiki\Title\TitleValue; use MediaWiki\User\UserIdentity; use MediaWiki\User\UserIdentityValue; use MediaWiki\Watchlist\ClearUserWatchlistJob; /** * @covers \MediaWiki\Watchlist\ClearUserWatchlistJob * * @group JobQueue * @group Database * * @license GPL-2.0-or-later * @author Addshore */ class ClearUserWatchlistJobTest extends MediaWikiIntegrationTestCase { private function getUser(): UserIdentity { return new UserIdentityValue( 42, 'ClearUserWatchlistJobTestUser' ); } private function getWatchedItemStore() { return $this->getServiceContainer()->getWatchedItemStore(); } public function testRun() { $user = $this->getUser(); $watchedItemStore = $this->getWatchedItemStore(); $watchedItemStore->addWatch( $user, new TitleValue( 0, 'A' ) ); $watchedItemStore->addWatch( $user, new TitleValue( 1, 'A' ) ); $watchedItemStore->addWatch( $user, new TitleValue( 0, 'B' ) ); $watchedItemStore->addWatch( $user, new TitleValue( 1, 'B' ) ); $maxId = $watchedItemStore->getMaxId(); $watchedItemStore->addWatch( $user, new TitleValue( 0, 'C' ) ); $watchedItemStore->addWatch( $user, new TitleValue( 1, 'C' ) ); $this->overrideConfigValue( MainConfigNames::UpdateRowsPerQuery, 2 ); $jobQueueGroup = $this->getServiceContainer()->getJobQueueGroup(); $jobQueueGroup->push( new ClearUserWatchlistJob( [ 'userId' => $user->getId(), 'maxWatchlistId' => $maxId, ] ) ); $this->assertSame( 1, $jobQueueGroup->getQueueSizes()['clearUserWatchlist'] ); $this->assertEquals( 6, $watchedItemStore->countWatchedItems( $user ) ); $this->runJobs( [ 'complete' => false ], [ 'maxJobs' => 1 ] ); $this->assertSame( 1, $jobQueueGroup->getQueueSizes()['clearUserWatchlist'] ); $this->assertEquals( 4, $watchedItemStore->countWatchedItems( $user ) ); $this->runJobs( [ 'complete' => false ], [ 'maxJobs' => 1 ] ); $this->assertSame( 1, $jobQueueGroup->getQueueSizes()['clearUserWatchlist'] ); $this->assertEquals( 2, $watchedItemStore->countWatchedItems( $user ) ); $this->runJobs( [ 'complete' => false ], [ 'maxJobs' => 1 ] ); $this->assertSame( 0, $jobQueueGroup->getQueueSizes()['clearUserWatchlist'] ); $this->assertEquals( 2, $watchedItemStore->countWatchedItems( $user ) ); $this->assertTrue( $watchedItemStore->isWatched( $user, new TitleValue( 0, 'C' ) ) ); $this->assertTrue( $watchedItemStore->isWatched( $user, new TitleValue( 1, 'C' ) ) ); } public function testRunWithWatchlistExpiry() { // Set up. $this->overrideConfigValue( MainConfigNames::WatchlistExpiry, true ); $user = $this->getUser(); $watchedItemStore = $this->getWatchedItemStore(); // Add two watched items, one with an expiry. $watchedItemStore->addWatch( $user, new TitleValue( 0, __METHOD__ . 'no expiry' ) ); $watchedItemStore->addWatch( $user, new TitleValue( 0, __METHOD__ . 'has expiry' ), '1 week' ); // Get the IDs of these items. $itemIds = $this->getDb()->newSelectQueryBuilder() ->select( 'wl_id' ) ->from( 'watchlist' ) ->where( [ 'wl_user' => $user->getId() ] ) ->caller( __METHOD__ )->fetchFieldValues(); // Clear the watchlist by running the job. $job = new ClearUserWatchlistJob( [ 'userId' => $user->getId(), 'maxWatchlistId' => max( $itemIds ), ] ); $this->getServiceContainer()->getJobQueueGroup()->push( $job ); $this->runJobs( [ 'complete' => false ], [ 'maxJobs' => 1 ] ); // Confirm that there are now no expiry records. $watchedCount = $this->getDb()->newSelectQueryBuilder() ->select( '*' ) ->from( 'watchlist_expiry' ) ->where( [ 'we_item' => $itemIds ] ) ->caller( __METHOD__ )->fetchRowCount(); $this->assertSame( 0, $watchedCount ); } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка