diff options
author | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
---|---|---|
committer | Yaco <franco@reevo.org> | 2020-06-04 11:01:00 -0300 |
commit | fc7369835258467bf97eb64f184b93691f9a9fd5 (patch) | |
tree | daabd60089d2dd76d9f5fb416b005fbe159c799d /www/wiki/tests/phpunit/includes/SiteStatsTest.php |
first commit
Diffstat (limited to 'www/wiki/tests/phpunit/includes/SiteStatsTest.php')
-rw-r--r-- | www/wiki/tests/phpunit/includes/SiteStatsTest.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/SiteStatsTest.php b/www/wiki/tests/phpunit/includes/SiteStatsTest.php new file mode 100644 index 00000000..56bde5da --- /dev/null +++ b/www/wiki/tests/phpunit/includes/SiteStatsTest.php @@ -0,0 +1,42 @@ +<?php + +class SiteStatsTest extends MediaWikiTestCase { + + /** + * @covers SiteStats::jobs + */ + function testJobsCountGetCached() { + $this->setService( 'MainWANObjectCache', + new WANObjectCache( [ 'cache' => new HashBagOStuff() ] ) ); + $cache = \MediaWiki\MediaWikiServices::getInstance()->getMainWANObjectCache(); + $jobq = JobQueueGroup::singleton(); + + // Delete jobs that might have been left behind by other tests + $jobq->get( 'htmlCacheUpdate' )->delete(); + $jobq->get( 'recentChangesUpdate' )->delete(); + $jobq->get( 'userGroupExpiry' )->delete(); + $cache->delete( $cache->makeKey( 'SiteStats', 'jobscount' ) ); + + $jobq->push( new NullJob( Title::newMainPage(), [] ) ); + $this->assertEquals( 1, SiteStats::jobs(), + 'A single job enqueued bumps jobscount stat to 1' ); + + $jobq->push( new NullJob( Title::newMainPage(), [] ) ); + $this->assertEquals( 1, SiteStats::jobs(), + 'SiteStats::jobs() count does not reflect addition ' . + 'of a second job (cached)' + ); + + $jobq->get( 'null' )->delete(); // clear jobqueue + $this->assertEquals( 0, $jobq->get( 'null' )->getSize(), + 'Job queue for NullJob has been cleaned' ); + + $cache->delete( $cache->makeKey( 'SiteStats', 'jobscount' ) ); + $this->assertEquals( 1, SiteStats::jobs(), + 'jobs count is kept in process cache' ); + + $cache->clearProcessCache(); + $this->assertEquals( 0, SiteStats::jobs() ); + } + +} |